Ribbon负载均衡原理

Ribbon + restTemplate相结合实现负载均衡,具体原理图详见以下截图:

  • LoadBalancerClient 类执行具体的负载均衡,其继承于 LoadBalancerBase。
  • LoadBalancerInterceptor 中注入了 LoadBalancerClient 对象,LoadBalancerClient执行具体的负载均衡,其执行原理为:根据负载规则IRule选择具体的服务,并且IPing会每隔10S向Eureka Client请求同步一次服务列表且检查服务健康状况。
  • restTemplate通过@LoadBalanced的修饰符将LoadBalancerInterceptor 注入到了restTemplate对象中。
  • restTemplate拦截器中注入 LoadBalancerInterceptor 对象,当用户http请求到达时 LoadBalancerInterceptor 对象对齐进行拦截处理,选择具体的请求服务路径,然后restTemplate执行远程服务调用。
  • restTemplate进行rest远程请求的原理详见restTemplate详解,其实质上封装了http请求,默认为HttpUrlConnection,可选Apache的httpClient、Okhttp等。
  • 综上所述,restTemplate的作用即是执行远程服务调用,而LoadBalancerClient作用即选择具体的服务地址来执行负载均衡;在restTemplate进行远程服务调用前因注入了拦截器LoadBalancerInterceptor对http进行了拦截处理,拦截后LoadBalancerClient获取IRule规则选择 IPing维护的本地缓存的服务地址,并将地址返回给restTemplate;restTemplate根据服务地址则执行远程请求调用。
  • <
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值