Ribbon 简介
Ribbon 是 Netflix 发布的云中间层服务开源项目,其主要功能是提供客户侧软件负载均衡算法,将 Netflix 的中间层服务连接在一起。
Why Ribbon?
Ribbon 的区域感知负载均衡器的功能久经考验。区域感知负载均衡器内置电路跳闸逻辑,可被配置基于区域同源关系(Zone Affinity,也就是更倾向于选择发出调用的服务所在的托管区域内,这样可用降低延迟,节省成本)选择目标服务实例。它监控每个区域中运行的实例的运维行为,而且能够实时快速丢弃一整个区域。在面对整个区域的故障时,这帮我们提升了弹性。简单的来说,在配置文件中列出LB后面所有的机器,ribbon 会自动帮你去连这些机器(基于某种规则,如随机连接、轮流连接,基于响应时间等等)。我们很方便地使用 Ribbon 实现自定义负载均衡算法。
Ribbon 的其他一些特性
Ribbon 是 Netflix 发布的云中间层服务开源项目,其主要功能是提供客户侧软件负载均衡算法,将 Netflix 的中间层服务连接在一起。
Why Ribbon?
Ribbon 的区域感知负载均衡器的功能久经考验。区域感知负载均衡器内置电路跳闸逻辑,可被配置基于区域同源关系(Zone Affinity,也就是更倾向于选择发出调用的服务所在的托管区域内,这样可用降低延迟,节省成本)选择目标服务实例。它监控每个区域中运行的实例的运维行为,而且能够实时快速丢弃一整个区域。在面对整个区域的故障时,这帮我们提升了弹性。简单的来说,在配置文件中列出LB后面所有的机器,ribbon 会自动帮你去连这些机器(基于某种规则,如随机连接、轮流连接,基于响应时间等等)。我们很方便地使用 Ribbon 实现自定义负载均衡算法。
Ribbon 的其他一些特性
- 发现服务,比如需要增加一些机器,可以实现 Ribbon 的一个接口将这个机器加到列表里(请参考《Ribbon 和 wowza 的集成开发》的动态修改负载节点案例);
- 对 Cloud 平台的支持:比如对 AWS 来说,有参数支持只返回同一个 zone 的服务器地址,这样避免跨 zone 调用所引起的网络延时;
- 故障恢复能力:可以将一些不