您的位置:首页 > 教育 > 培训 > 怎么制作公众号推送_微信公众号设计网站_网站建设山东聚搜网络_软文是什么文章

怎么制作公众号推送_微信公众号设计网站_网站建设山东聚搜网络_软文是什么文章

2025/2/25 19:19:42 来源:https://blog.csdn.net/qq_30500575/article/details/142747097  浏览:    关键词:怎么制作公众号推送_微信公众号设计网站_网站建设山东聚搜网络_软文是什么文章
怎么制作公众号推送_微信公众号设计网站_网站建设山东聚搜网络_软文是什么文章

OpenFeign内部调用二

4.修改各业务服务的调用代码为feignClient

开启nacos注册 把Client变成bean

该服务仅内部调用,不是给前端的

将某个服务标记为“内部调用”的目的主要有以下几个方面:

  1. 安全性: 内部API通常不对外部用户公开,这样可以防止未授权的访问。通过限制只允许内部服务调用,可以降低潜在的安全风险。

  2. 服务架构: 在微服务架构中,服务之间的通信往往是通过内部API进行的。这种设计使得各个服务能相互协作,同时避免了直接暴露给外部的复杂性。

  3. 性能优化: 内部调用通常可以优化网络请求,例如使用轻量级的通信协议(如gRPC或HTTP/2),而不是传统的RESTful API,这样可以提高性能。

  4. 版本控制: 内部API可以独立于外部API进行版本控制,使得内部服务能够在不影响外部用户的情况下进行更新和迭代。

  5. 简化开发: 开发人员可以在内部API中使用更复杂的逻辑和数据结构,而不需要考虑外部用户的兼容性问题。

  6. 监控与日志: 内部调用可以更方便地进行监控和日志记录,以便于分析和调试内部服务之间的交互。

通过这些措施,可以确保系统的稳定性和安全性,同时提升开发效率和服务可维护性。

编写服务的实现类 注意要和之前定义的客户端保持一致

这服务只是内部调用的

package com.yupi.yuojbackenduserservice.controller.inner;import com.yupi.yuojbackendmodel.model.entity.User;
import com.yupi.yuojbackendserviceclient.service.UserFeignClient;
import com.yupi.yuojbackenduserservice.service.UserService;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;import javax.annotation.Resource;
import java.util.Collection;
import java.util.List;/*** 该服务仅内部调用,不是给前端的*/
@RestController
@RequestMapping("/inner")
public class UserInnerController implements UserFeignClient {@Resourceprivate UserService userService;/*** 根据 id 获取用户* @param userId* @return*/@Override@GetMapping("/get/id")public User getById(@RequestParam("userId") long userId) {return userService.getById(userId);}/*** 根据 id 获取用户列表* @param idList* @return*/@Override@GetMapping("/get/ids")public List<User> listByIds(@RequestParam("idList") Collection<Long> idList) {return userService.listByIds(idList);}}

什么时候用Client呢

5.开启nacos的配置 让服务互相发现

注册配置中心

现在所有服务引入依赖

        <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-sentinel</artifactId></dependency>

每个服务都配置一下

是针对 Spring Cloud 使用 Nacos 作为服务发现的设置

spring:cloud:nacos:discovery:server-addr: 127.0.0.1:8848

给项目启动类打上注解

开启服务发现

找到对应客户端Bean的位置

这边建议的是给每个服务都加上

@EnableDiscoveryClient
@EnableFeignClients(basePackages = {"com.yupi.yuojbackendserviceclient.service"})

全局要引入负载均衡器依赖

主要功能包括:

  1. 客户端负载均衡:根据策略(如轮询、随机等)将请求分发到不同的服务实例。

  2. 与 Spring Cloud 生态系统的集成:可以与其他 Spring Cloud 组件(如 Eureka、Consul 等)一起使用,以实现服务发现和负载均衡。

  3. 自定义负载均衡策略:支持用户定义自己的负载均衡算法。

使用场景:

  • 在微服务架构中,多个服务实例提供相同的功能时,可以通过负载均衡器将请求合理分配到这些实例上,以提高可用性和性能。

        <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-loadbalancer</artifactId><version>3.1.5</version></dependency>

注册中心有响应

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com