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的负载均衡策略?

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

相关推荐
BerrySen1788 分钟前
迈向 Next-Gen Java:企业级高并发架构演进与大模型 Agent 落地深度实战
java·开发语言·架构
technology_x24 分钟前
2026年财务报表分析软件测评:兼容与安全解析
java·服务器·前端
兰令水28 分钟前
hot100【acm版】【2026.7.25/26打卡-java版本】
java·算法·排序算法
Nebula_g1 小时前
Java实现本地Socket通信(三)
java·开发语言·学习·socket·可视化
一水1 小时前
java运行排错,新码旧jar
java·开发语言·jar
wuqingshun3141591 小时前
JAVA中的注解原理是什么?
java
Python+991 小时前
Java 编程语言入门指南
java·开发语言
huahailing10243 小时前
Spring Boot 集成 XXL-Job 完整实现方案(支持动态CRUD)
java·spring boot·后端
薛定谔的猫-菜鸟程序员3 小时前
基于 Electron 的本地短视频解析与下载工具:架构设计与工程实践
java·electron·音视频
音符犹如代码4 小时前
Arthas Profiler 火焰图实战:CPU 热点在哪一目了然
java·jvm·spring boot