Ribbon负载均衡原理

2020-03-14  本文已影响0人  技术灭霸

1、Ribbon介绍

Ribbon 是netflix 公司开源的基于客户端的负载均衡组件。


image.png

2、Ribbon工作原理

image.png

3、负载均衡器的核心--LoadBalancer

LoadBalancer 的职能主要有三个:

负载均衡器的内部基本实现原理


image.png

(1)如何维护Server列表?(新增、更新、删除)?

Server列表的维护从实现方法上分为两类:

Server列表可能在运行的时候动态的更新,而具体的更新方式有如下两种实现方式:

(2)负载均衡器如何维护服务实例的状态?

Ribbon负载均衡器将服务实例的状态维护托交给PingerPingerStrategyIPing 来维护,Ribbon默认的IPing实现是DummyPing,具体交互模式如下所示:

image

(3)如何从服务列表中挑选一个合适的服务实例?

在Ribbon的实现中,在ServerList中,维护着Server的实例,并返回最新的List<Server>集合,供LoadBalancer使用。

从服务列表中挑选最合适的服务实例。LoadBalancer内部采用了如下图所示的组件完成:

image

定义IRule,从服务实例列表中,选择最合适的Server实例。
完整的算法包含如下:

上一篇 下一篇

猜你喜欢

热点阅读