Spring Cloud中可以使用RestTemplate+Ribbon的解決方案來將負載均衡以代碼的形式封裝到客戶端中。
通過查閱官方文檔可以知道,只需要在程序的IoC容器中注入一個restTemplate的bean,并在這個Bean上加@LoadBalanced注解就開啟了Ribbon的負載均衡功能:
@Configuration public class RibbonConfig {@Bean@LoadBalancedRestTemplate restTemplate() {return new RestTemplate();}}
LoadBalancerClient是從Eureka Client中獲取服務的注冊信息的,并將這些服務注冊信息緩存了一份。,在LoadBalancedClient調用choose方法的時候,更具負載均衡策略選擇一個服務實例信息,從而進行了負載均衡。它也可以不從Eureka Client中獲取注冊列表信息,這時候就需要自己去維護一份服務注冊列表信息,但通常都不會這樣做:
stores:ribbon:listOfServers: baidu.com.google.com ribbon:eureka:enabled: false
?