负载均衡器实现原理:
1. 在RestTemplate的配置类上添加@LoadBanlanced注解;
2. 这个注解中有一个LodeBanlancerInterceptor拦截器, 这个拦截器实现了ClientHttpRequestInterceptor接口(客户端Http请求拦截器), 它会拦截我们发送的请求;
3. 之后RibbonLoadBanlancerClient会从url请求中获取服务名称, ribbon会根据服务名称, 到eureka拉取所有的服务列表, 并将所有的服务存储在allserverList中;
4. Ribbon负载均衡器中有多种负载均衡器策略, 根接口是IRule, 默认的策略是轮询;
5. 之后选择其中一个服务, RibbonLoadBanlancerClient修改请求地址, 发起远程服务调用;
6. 调用服务的选择最终是由IRule接口的规则决定, 也可以自定义规则, 将自定义的规则加入到IoC容器中即可(返回值是IRule)
负载均衡器实现原理
最新推荐文章于 2024-04-09 19:32:00 发布