Ribbon、Feign和Eureka實現負載均衡

現有兩個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應用的實例。





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章