Ribbon讲解

一:Ribbon是什么?

Ribbon其实就是一个软负载均衡的客户端组件。

二:负载均衡(LB)是什么?

用户的请求平摊的分配到多个服务上,从而达到系统的HA(高可用)

三:负载均衡分类?

  1. 集中式 LB :在服务的消费方和提供方之间使用独立的LB设施,如Nginx
  2. 进程内 LB:消费方从服务注册中心或知有哪些地址可用,然后自己再从这些地址中选择出一个何时的服务器。例如Ribbon

四:Ribbon是如何通过一个@LoadBalanced注解就实现负载均衡的

  1. 在创建RestTemplate的bean时添加@LoadBalanced注解
  2. LoadBalancerAutoConfiguration自动配置筛选出添加@LoadBalanced注解的RestTemplate
  3. 为RestTemplate设置LoadBalancerInterceptor,目的是使用LoadBalancerClient来发起请求
  4. 请求过程中,根据负载均衡策略,调用LoadBalancerClient.choose()方法获取最终ServiceInstance
  5. 根据ServiceInstance获取真实host、port,发起最后请求

五:Ribbon如何选择调用哪个实例?

六:Ribbon有哪些负载均衡策略?

七:如何修改Ribbon的负载均衡策略?

八:如何自定义负载均衡策略?

相关推荐
Overt0p22 分钟前
MQ简单介绍以及RabbitMQ基础使用,快速上手
java·分布式·rabbitmq
奋进的芋圆24 分钟前
SerialCommManager 详解:从嵌入式通信管理器到 Spring Boot 后端服务
java·spring boot·接口隔离原则
奋进的芋圆24 分钟前
Spring Boot + RAG 项目中集成 MCP 接口技术文档
java·spring boot·ai
sxlishaobin26 分钟前
设计模式之装饰器模式
java·设计模式·装饰器模式
Eaxker30 分钟前
Java后端
java·开发语言
计算机程序设计小李同学30 分钟前
森林防火航空巡护任务管理系统
java·vue.js·人工智能·分类·数据挖掘
毕设源码-朱学姐32 分钟前
【开题答辩全过程】以 校园内部点餐运营与数据分析系统为例,包含答辩的问题和答案
java
豆沙沙包?34 分钟前
2026年--Lc331-933. 最近的请求次数(队列)--java版
java
h***381835 分钟前
Java进阶(ElasticSearch的安装与使用)
java·elasticsearch·jenkins
h***066539 分钟前
java进阶知识点
java·开发语言