Ribbon 简介
Jihongchang(讨论 | 贡献)2023年3月22日 (三) 12:00的版本
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。