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

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

相关推荐
scott.cgi5 小时前
Unity直接编译Java文件作为插件,导致失败的两个打包设置
java·unity·unity调用java·unity的java文件·unity的android插件·unity调用android·unity加载java代码
澈2079 小时前
C++并查集:高效解决连通性问题
java·c++·算法
2401_8734794010 小时前
运营活动被薅羊毛怎么防?用IP查询+设备指纹联动封堵漏洞
java·网络·tcp/ip·github
ShiJiuD66688899910 小时前
大事件板块一
java
摇滚侠10 小时前
@Autowired 和 @Resource 的区别
java·开发语言
SeaTunnel11 小时前
(八)收官篇 | 数据平台最后一公里:数据集成开发设计与上线治理实战
java·大数据·开发语言·白鲸开源
吴声子夜歌12 小时前
Java——线程的基本协作机制
java·线程协作
谙弆悕博士12 小时前
【附C++源码】从零开始实现 2048 游戏
java·c++·游戏·源码·项目实战·2048
独自归家的兔13 小时前
OCPP 1.6 协议详解:GetLocalListVersion 获取本地列表版本指令
java·后端·物联网·spring·ocpp1.6
Apache RocketMQ14 小时前
RocketMQ源码解析——秒级定时消息介绍
java·云原生·消息队列·rocketmq·java-rocketmq