Ribbon负载均衡流程

大概流程:

     RestTemplate发起http请求,因为RestTemplate添加了@LoadBalanced注解,因此发起的Http请求会被LoadBalanceInterceptor拦截,通过Ribbon负载均衡,从eureka-server中获取服务列表,进行均衡选择,替换请求中的服务名,发送有效的Http请求。


Ribbon负载均衡具体流程:


       RestTemplate发起的Http请求会被LoadBalanceInterceptor拦截,在intercept方法中获取请求的URI,通过URI获取主机名称,也就是我们的服务名称。

获取服务列表

选择服务

交给父类进行出来

使用默认的Rule对象

IRule接口的实现类

返回具体的服务ip以及端口,进行发起请求

内置负载均衡规则类

修改负载均衡规则的两种方式:

(1) 在代码中定义一个新的IRule,用@Bean添加到Spring容器中。

(2) 在配置文件中修改属性

饥饿加载

创建DynamicServerListLoadBalance的时间消耗会很长

posted @ 2022-09-07 19:23  别停  阅读(17)  评论(0)    收藏  举报