背景知识
负载均衡的形式
负载均衡具有两种形式:服务端负载均衡和客户端负载均衡。
服务端负载均衡:以Nginx为案例。所有客户端所有请求统一交给Nginx,Nginx会依据负载均衡的策略进行转发。
客户端负载均衡:以Ribbin为案例 。它从Eureka注册中心获得服务注册信息列表,并缓存到本地,然后根据配置的负载均衡策略调用相应的客户端。
Ribbon是什么?
Ribbon是给予Netflix Ribbon实现的一套客户端负载均衡的工具。
Ribbon的功能是什么?
主要功能是提供客户端的软件负载均衡算法和服务调用。
它通过从Eureka注册中心获取服务注册信息列表,并缓存到本地。当本地发起远程微服务调用时,根据配置的负载均衡策略调用相应的服务提供者服务器。
关于Ribbon必须知道的事情
- 一般都会和Eureka一起使用,也支持Nacos。
- 相似Ribbon的组件有LoadBalancer
Ribbon如何使用?
版本选择
使用Ribbon,就必须引入Ribbon对应的包。在这个引入的过程中,需要特别关注Ribbon版本的选择,通过Ribbon和Spring Cloud版本对应关系来查询。
部分版本对应关系如下:
Ribbon 版本 | SpringBoot版本 |
---|---|
Hoxton | 2.1.x |
Finchley | 2.0.x |
特别需要注意:SpringCloud 2020.0.1版本之后删除了Eureka组件中的Ribbon,替代Ribbon的是SpringCloud自带的LoadBalancer,默认使用轮询的策略。
在RestTemplate上添加注解
@Bean
@LoadBalanced
public RestTemplate restTemplate(){
return new RestTemplate();
}
其他步骤未完待续…