负载均衡原理

加上@LoadBalanced注解后,loadBalanceInterceptor类使用intercept方法会拦截RestTemplate的请求得到服务的名称,loadBalanceInterceptor实现了ClientHttpRequestInterceptor(客户端HTTP请求拦截器)接口,所以有了拦截请求的功能
image.png
RibbonLoadBalancerClient类-Ribbon负载均衡客户端
Ribbon负载均衡客户端拿到服务名之后会获取到该服务的实例服务列表,然后根据负载均衡策略来负载均衡,irule接口决定负载均衡策略

负载均衡策略

轮询调度( Round Robin ): 这种方法会将收到的请求循环分配到服务器集群中的每台机器,即有效服务器。 选择这种方式就意味着能力比较弱的服务器也会在下一轮循环中接受轮循,即使这个服务器已经不能再处理当前这个请求了。 这可能导致能力较弱的服务器超载。
随机(Random):