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

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

相关推荐
colman wang3 分钟前
Java期末
java·开发语言
Coder_Boy_4 分钟前
基于MQ实现秒杀订单系统的异步化架构
java·开发语言·架构
勇往直前plus6 分钟前
Jackson 反序列化首字母大写字段映射失败的底层原因与解决方案
java·开发语言·前端
业精于勤的牙10 分钟前
最长特殊序列(一)
java·javascript·数据结构
咋吃都不胖lyh13 分钟前
在任务管理器中筛选、查看进程
java·开发语言
大学生资源网15 分钟前
基于JavaWeb的邮件收发系统的设计与实现(源码+文档)
java·开发语言·spring boot·mysql·毕业设计·源码·课程设计
此剑之势丶愈斩愈烈22 分钟前
Spring获取URL信息
java·后端·spring
Vic1010124 分钟前
Redis防重复点击与分布式锁
java·数据库·redis·分布式
itwangyang52026 分钟前
macOS(Sequoia 15.x)+ MacTeX 2025 + TeXShop + 期刊模板
java·开发语言·macos
spencer_tseng28 分钟前
Eclipse HeapDump
java·ide·eclipse