当前位置: 首页 > news >正文

SpringCloud Ribbon 学习

SpringCloud Ribbon 学习

文章目录

  • SpringCloud Ribbon 学习
      • 1. Ribbon 是什么?
      • 2. LB(Load Balance)
      • 3 Ribbon 架构图&机制
      • 4 Ribbon 常见负载均衡算法
      • 5 测试

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

http://www.lryc.cn/news/90858.html

相关文章:

  • 预告:XuperOS Global 国际化进展
  • 炫技操作--递归实现翻转链表(java)
  • 华为OD机试真题 Java 实现【求最小公倍数】【牛客练习题】
  • [java]两数之和 II - 输入有序数组
  • Linux-0.11 boot目录head.s详解
  • 离散数学_十章-图 ( 3 ):由旧图构造新图
  • Golang每日一练(leetDay0083) 汇总区间、多数元素II
  • JAVA数组基础
  • Linux-0.11 文件系统exec.c详解
  • NET框架程序设计-第1章.NET框架开发平台体系架构
  • (哈希表 ) 349. 两个数组的交集 ——【Leetcode每日一题】
  • JavaScript基本语法(二)
  • ChatGPT3.5-4资源汇总,直连无梯子
  • 【Netty】使用 SSL/TLS 加密 Netty 程序(二十)
  • runway gen2
  • Day2:Windows网络编程-TCP
  • leetcode1985. 找出数组中的第 K 大整数
  • 基于深度学习的高精度野生动物检测识别系统(PyTorch+Pyside6+YOLOv5模型)
  • 从零开始 Spring Boot 35:Lombok
  • 深入解析Spring源码系列:Day 6 - Spring MVC原理
  • Cmake中message函数 如何优雅地输出
  • 人工智能基础部分20-生成对抗网络(GAN)的实现应用
  • JavaScript表单事件(上篇)
  • vb6 Webview2微软Edge Chromium内核执行JS取网页数据测速
  • 编码,Part 1:ASCII、汉字及 Unicode 标准
  • C++ Eigen库矩阵操作
  • Linux-0.11 boot目录bootsect.s详解
  • django组件552
  • 【枚举算法的Java实现及其应用】
  • linux led 驱动