Ribbon是Spring Cloud的負載均衡組件。Ribbon默認的提供了很多負載均衡算法。當Ribbon和Eureka配合使用的時候,Ribbon會自動從Eureka Server獲取服務提供者列表,並基於負載均衡算法,請求其中一個服務提供者的實例。
服務消費端整合Ribbon
(1)在pom中添加ribbon依賴
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-ribbon</artifactId>
</dependency>
(2)由於服務之間調用用的是RestTemplate,所以在RestTemplate上加入@LoadBlanced註解就可以
@Bean
@LoadBalanced
public RestTemplate restTemplate(){
return new RestTemplate();
}
現在就整合了Ribbon,使其具備了負載均衡的能力。
@Bean放在方法上,就是產生一個bean並交給Spring管理。
屬性自定義Ribbon配置
在application.yml中配置Ribbon即可.
配置的前綴是.ribbon.後邊可以跟的屬性有:
NFLoadBalancerClassName: 配置ILoadBalancer的實現類。
NFLoadBalancerRuleClassName:配置IRule的實現類。
NFLoadBalancerPingClassName:配置IPing的實現類。
NIWSServerListClassName:配置serverList的實現類。
NIWSServerListFilterClassName:配置ServerListFilter的實現類。