SpringCloud底层其实是利用了一个名为Ribbon的组件,来实现负载均衡功能的。
1.负载均衡基本流程
SpringCloudRibbon的底层采用了一个拦截器,拦截了RestTemplate发出的请求,对地址做了修改。
那么我们发出的请求明明是http://userservice/user/1,怎么变成了http://localhost:8081的呢?
基本流程如下:
-
拦截我们的RestTemplate请求http://userservice/user/1
-
RibbonLoadBalancerClient会从请求url中获取服务名称,也就是user-service
-
Dy