您现在的位置是:首页 >学无止境 >SpringCloud Ribbon 学习网站首页学无止境

SpringCloud Ribbon 学习

xjz_2002 2024-07-14 18:01:02
简介SpringCloud Ribbon 学习

SpringCloud Ribbon 学习

1. Ribbon 是什么?

  1. Spring Cloud Ribbon 是基于 Netflix Ribbon 实现的一套客户端 负载均衡的工具。
  2. Ribbon 主要功能是提供客户端负载均衡算法和服务调用
  3. Ribbon 客户端组件提供一系列完善的配置项如连接超时,重试等。
  4. Ribbon 会基于某种规则(如简单轮询,随机连接等)去连接指定服务
  5. 程序员很容易使用 Ribbon 的负载均衡算法实现负载均衡
  6. 一句话: Ribbon: 负载均衡+RestTemplate 调用

官网: https://github.com/Netflix/ribbon

2. LB(Load Balance)

  1. 集中式 LB

    即在服务的消费方和提供方之间使用独立的LB设施(可以是硬件,如F5,也可以是
    软件,如Nginx),由该设施负责把访问请求通过某种策略转发至服务的提供方;  LB(Load Balance 负载均衡)

  2. 进程内 LB

    • 将LB逻辑集成到消费方,消费方从服务注册中心获知有哪些服务地址可用,然后再从这些地址中选择出一个合适的服务地址。
    • Ribbon就属于进程内LB,它只是一个类库,集成于消费方进程,消费方通过它来获取到服务提供方的地址

3 Ribbon 架构图&机制

image-20230531221625492

Ribbon 机制

  1. 先选择 EurekaServer,它优先选择在同一个区域内负载较少的 server
  2. 再根据用户指定的策略,在从 server 取到的服务注册列表中选择一个地址
  3. Ribbon 提供了多种策略∶ 比如轮询、随机和根据响应时间加权。

4 Ribbon 常见负载均衡算法

image-20230531221607667

5 测试

观察访问的 10000/10002 端口的服务是随机的

第一步、创建RibbonRule 负载均衡算法

image-20230531221332989

第二步、在启动类中添加负载均衡注解

image-20230531221507263

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。