负载均衡:Ribbon源码剖析(4)选举出一个服务后如何发出请求
这篇文章算是前面三篇的一个总结,从一个请求被执行的角度,将Spring以及Ribbon的关键组件串起来思考。
RestTemplate被加入针对Ribbon的定制的拦截器LoadBalancerInterceptorLoadBalancerInterceptor中将请求委托给RibbonLoadBalancerClientRibbonLoadBalancerClient调用真正的Ribbon组件完成请求- 负载均衡器
ZoneAwareLoadBalancer - 负载均衡规则
ZoneAvoidanceRule
- 负载均衡器
request.getURI()–>ServiceRequestWrapper#getURI–>loadBalancer.reconstructURI在这里完成服务名到ip:port的替换- 实际上最后是
ClientHttpRequestExecution发起HTTP请求
总结
.jpg)
- Title: 负载均衡:Ribbon源码剖析(4)选举出一个服务后如何发出请求
- Author: 侯乾
- Created at : 2020-05-05 12:02:11
- Updated at : 2020-05-05 12:02:11
- Link: http://houqian.github.io/2020/05/05/负载均衡:Ribbon源码剖析(4)选举出一个服务后如何发出请求/
- License: This work is licensed under CC BY-NC-SA 4.0.
Comments