使用Ribbon实现客户端侧负载均衡

Ribbon是NetFlix发布的负载均衡器,有助于控制HTTP和TCP客户端的行为.为Ribbon配置服务提供者地址列表后,Ribbon配置服务提供者地址列表后,Ribbon默认为我们提供了许多负载均衡算法,例如轮询,随机等,当然我们也可以为Ribbon自定义负载均衡算法

在SpringCloud中,Ribbon与Eureka配合使用的时候
Ribbon可以自动从Eureka Server获取服务提供者地址列表,并基于负载均衡算法请求其中一个服务提供者实例

Ribbon其实就是使用负载均衡算法:轮询,随机等,进行对Eureka中注册的多个同类服务提供者进行访问
这样实现了负载均衡操作

实现步骤:
先给项目引入ribbon所需要的依赖,然后使用RestTemplate进行远程调用
其中RestTemplate的@Bean之后记得贴@LoadBalanced注解(给予这个RestTemplate负载均衡的能力)
默认是轮询规则
我们将RestTemplate的远程调用地址使用Eureka中映射的项目名,这样能够让Ribbon调用多个项目
但是实际上Ribbon本身还是会将虚拟主机名映射成微服务的网络地址

Ribbon底层原理:
1.请求发送到服务器,现在开始轮询
debug放行 到LoadBalancerInterceptor类中
其中intercept方法中获取服务器的URI和服务器名称
这里调用了RibbonLoadBalancerClient类中的execute方法
其中ILoadBalancer获取一个负载均衡器
Server根据负载均衡器算法在Server列表中选中指定的Server 此时已经获取到了整个url的信息
包括ip地址和端口

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值