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

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

相关推荐
spencer_tseng2 分钟前
Eclipse JDT Core for Java Code Formatter
java·ide·eclipse
秋邱2 分钟前
Java 运算符与流程控制:全类型运算符用法 + 分支 / 循环语句实战
java·开发语言
Chase_______8 分钟前
【JAVA基础指南(二)】快速掌握流程控制
java·开发语言
Slow菜鸟9 分钟前
Java基础架构设计(四)| 通用响应与异常处理(单体/分布式通用增强方案)
java·开发语言·分布式
wheelmouse77889 分钟前
Java工程师Python实战教程:通过MCP服务器掌握Python核心语法
java·服务器·python
nix.gnehc11 分钟前
Spring AI/Spring AI Alibaba简介
java·人工智能·spring·ai
任子菲阳11 分钟前
学JavaWeb第三天——Maven
java·maven·intellij-idea
wadesir11 分钟前
Java消息队列入门指南(RabbitMQ与Spring Boot实战教程)
java·rabbitmq·java-rabbitmq
一只懒鱼a13 分钟前
SpringBoot整合canal实现数据一致性
java·运维·spring boot
Hello.Reader14 分钟前
Flink SQL 新特性Materialized Table 一文讲透(数据新鲜度驱动的自动刷新管道)
java·sql·flink