Ribbon 简介
https://www.bilibili.com/video/BV1AN411Z7mx/?p=2
Ribbon 介绍
Ribbon 是由 Netflix 公司推出的开源软件,是基于 HTTP 和 TCP 协议的,其主要功能是实现客户端软件的负载均衡算法。
Spring Cloud 中 Ribbon 就是基于 Netflix 公司的 Ribbon 实现的。它不需要单独部署,但是却存在于整个微服务中。前面学习的 Eureka 里面有 Ribbon,后面学习的 OpenFeign 也是基于 Ribbon 实现的。
Ribbon 原理
内部基于 ILoadBalancer 实现(代码层面)。
使用 Ribbon 工作原理:
所有的项目都会注册到 Eureka 中,Eureka 允许不同项目的 spring.application.name 相同。
当相同时会认为这些项目是一个集群。
所以同一个项目部署多次时都是设置应用程序名相同。
Application Client 会从 Eureka 中根据 spring.application.name 加载 Application Service 的列表。
根据设定的负载均衡算法,从列表中取出一个 URL,到此 Ribbon 的事情结束了。
剩下的事情由程序员自己进行技术选型,选择一个 HTTP 协议工具,通过这个 URL 调用 Application Service。
注意
以下事情和 Ribbon 没有关系:
Application Service 注册到 Eureka 的过程。这是 Eureka 的功能。
Application Client 从 Eureka 取出注册列表。这也是 Eureka 的功能。
Application Client 通过 URL 访问 Application Service。具体实现可以自己进行选择使用哪个 HTTP 工具。
只有 Application Client 从 Eureka 中取出列表后进行负载均衡算法的过程和 Ribbon 有关