客户端负载均衡是相对于服务端负载均衡而言的。
服务端的负载均衡就是传统的Nginx方式,它的一个特点是调用的客户端不知道具体是哪一个Server提供的服务,只需要将请求发送给Nginx,再由Nginx转发给
Tomcat,客户端只需要记住Nginx的地址即可。
而在客户端负载均衡中,客户端可以知道所有服务端的详细信息,当需要调用
Server上的接口时,客户端从自身已知的Server列表中,根据提前配置的负载均衡策略,自己挑选一个服务端来调用,此时客户端知道自己调用的是哪一个
Server
在RestTemplate中,想要使用负载均衡功能,只需要给RestTemplate实例上添加一个@LoadBalanced注解即可。添加完成后,RestTemplate就会自动具备负载均衡功能,这个负载均衡是客户端的负载均衡
负载均衡原理
在RestTemplate中只需要给RestTemplate实例上添加一个@LoadBalanced注解RestTemplate就会自动具备负载均衡功能。这是如何实现的?
这个功能的实现大致分三步:
1.从Eureka Client本地缓存的服务注册信息中,选择一个可调用的服务
2.根据1中选择的服务,重构请求URL地址
3.将1、2步的功能嵌入到RestTemplate中
网友评论