Ribbon、Feign和Eureka实现负载均衡

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/menggudaoke/article/details/80482627

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

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

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

spring.application.name: appb

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

@EnableDiscoveryClient
@SpringBootApplication
public class ApplicationB{

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

}

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

@EnableDiscoveryClient //用于启动服务发现功能,将应用A注册到Eureka
@EnableFeignClients //用于启动Fegin功能,以支持服务A远程访问应用B
@SpringBootApplication
public class ApplicationA {
        public static void main(String[] args) {
        SpringApplication.run(ApplicationA.class);
    }
    
    @Bean //定义REST客户端,RestTemplate实例
    @LoadBalanced //开启负债均衡的能力
    RestTemplate restTemplate() {
        return new RestTemplate();
    }
}
4.访问服务A,Ribbon会根据自己的算法,轮流调用Eureka中不同的ApplicationB应用的实例。





猜你喜欢

转载自blog.csdn.net/menggudaoke/article/details/80482627
今日推荐