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

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

相关推荐
pippocao2 分钟前
王者荣耀日志组件BqLog为什么这么快之1——高性能实时压缩日志
java
AC赳赳老秦6 分钟前
公开 CSV 数据集批量处理实战:用 OpenClaw 高效完成下载、清洗与标准化分析样本生成
java·开发语言·汇编·c++·python·deepseek·openclaw
ym hyd 11120 分钟前
慢性病精细化管理平台源码 Java+SpringBoot+Vue3 前后分离
java·vue.js·spring boot·毕设
程序猿乐锅25 分钟前
【黑马点评 | 第七篇】Redis 分布式锁的两种实现
java·数据库·redis·分布式·spring·缓存
SL_staff30 分钟前
JVS私有化交付为何敢承诺100%源码开放与无兜底风险?
java·低代码·全栈
需要82642 分钟前
MySQL MVCC 与事务隔离级别:从一条 update 看版本链
java·数据库·spring boot·mysql·spring cloud
Memory_荒年42 分钟前
订单超时未支付?从“定时扫库”一步步到最终形态
java·后端
hai_android2 小时前
LruCache 图片浏览器内存缓存
android·java·kotlin
玩美移动2 小时前
AI Skin Analysis API 技术解析:文件上传、异步任务与结果读取
java·人工智能·python
我是小白呀2 小时前
19-Temporal项目实战:将客户开通流程迁移到持久执行架构
java·开发语言·人工智能·架构·workflow