Ribbon、Feign和Eureka实现负载均衡

喜欢ヅ旅行 2022-05-24 13:38 261阅读 0赞

现有两个SpringBoot应用,应用 A和应用B:

应用A通过Feign远程调用应用B,但如果应用B单个应用无法支撑应用A的大量请求,则可如下实现应用B的多实例。

1.应用B多个实例都注册到同一个Eureka,且所有实例的配置文件中的:spring.application.name都相同:

  1. spring.application.name: appb
  1. 所有的应用B启动类都增加EnableDiscoveryClient注解,服务在启动的过程中会想Eureka中注册该服务:

    @EnableDiscoveryClient
    @SpringBootApplication
    public class ApplicationB{

    1. public static void main(String[] args) {
    2. SpringApplication.run(ApplicationB.class, args);
    3. }

    }

  2. 应用A启用EnableDiscoveryClient和EnableFeignClient注解,且应用A开启负载均衡能力:

    @EnableDiscoveryClient //用于启动服务发现功能,将应用A注册到Eureka
    @EnableFeignClients //用于启动Fegin功能,以支持服务A远程访问应用B
    @SpringBootApplication
    public class ApplicationA {

    1. public static void main(String[] args) {
    2. SpringApplication.run(ApplicationA.class);
    3. }
    4. @Bean //定义REST客户端,RestTemplate实例
    5. @LoadBalanced //开启负债均衡的能力
    6. RestTemplate restTemplate() {
    7. return new RestTemplate();
    8. }

    }

4.访问服务A,Ribbon会根据自己的算法,轮流调用Eureka中不同的ApplicationB应用的实例。

发表评论

表情:
评论列表 (有 0 条评论,261人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Feign实现负载均衡

      Feign是一个声明式WebService客户端,使用方法是定义一个接口并在上面添加注解即可。Feign支持可拔插式的编码器和解码器。   Spring Cloud对

    相关 eureka与ribbon负载均衡

    接着上一篇博文,看下ribbon的负载均衡 重点,ribbon的负载均衡功能 改造上一篇博文的内容,服务注册中心的端口号修改为5550 服务提供者,修改端口号为5551,