当前位置: 首页 > article >正文

SpringCloud源码-Ribbon

一、Spring定制化RestTemplate,预留出RestTemplate定制化扩展点

org.springframework.cloud.client.loadbalancer.LoadBalancerAutoConfiguration

二、Ribbon定义RestTemplate Ribbon扩展点功能

org.springframework.cloud.netflix.ribbon.RibbonAutoConfiguration

LoadBalancerInterceptor使用ribbon LoadBalancerClient

ribbon定时拉取机器列表

ribbon通过eureka获取机器列表

ribbon自己缓存了机器列表,然后定时通过eureka进行同步。

ribbon核心的负载均衡逻辑,就在com.netflix.loadbalancer.IRule,怎根据key选择服务器的逻辑,也就在怎么实现这个接口。

ribbon配置,先使用loadDefaultValues加载默认的配置,然后再获取配置中服务下的ribbon配置,用subset获取。

使用NamedContextFactory进行子上下文获取时,会对org.springframework.cloud.netflix.ribbon.RibbonClientConfiguration进行初始化

子上下文初始化的过程中,会进行configuration初始化,可以看到ribbonClientConfig里面就会加载这个服务级别的ribbon配置

@RibbonClient注解解析原理

二、与nacos注册发现整合

ribbon与nacos整合只在低版本,nacos注册发现依赖提供了对ribbon的支持,高版本不在提供对ribbon的支持。

依赖地址:

<!-- Spring Cloud Alibaba Nacos Discovery -->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    <version>1.5.1.RELEASE</version>
</dependency>

从2020.0.x及之后的版本,spring-cloud-starter-alibaba-nacos-discovery取消了对ribbon的支持。

三、社区活跃与维护

可以看到,从2021年后,ribbon就没有发布过新版本。


http://www.kler.cn/a/468472.html

相关文章:

  • Python爬虫基础——案例:爬取豆瓣电影动画排行榜
  • 蓝桥杯备赛:C++基础,顺序表和vector(STL)
  • Zabbix5.0版本(监控Nginx+PHP服务状态信息)
  • Earth靶场
  • SQL 基础教程 - SQL UPDATE 语句
  • [python3]Excel解析库-calamine,10倍openpyxl性能
  • 19.3、Unix Linux安全分析与防护
  • MongoDB相关使用问题
  • ansible-Ad-hoc命令行模式
  • java 字典表加载内存
  • Bash Shell的操作环境
  • NLP中特征提取方法的总结
  • 使用javacv获取海康威视rtsp流的详细教程
  • Samsung手机首次主要采用竞对Micron LPDDR5内存
  • WPF通过反射机制动态加载控件
  • 专家混合(MoE)大语言模型:免费的嵌入模型新宠
  • Linux -- 端口号、套接字、网络字节序、sockaddr 结构体
  • 工业5G路由器让无人机数据传输 “飞” 起来
  • 数据结构C语言描述9(图文结合)--二叉树和特殊书的概念,二叉树“最傻瓜式创建”与前中后序的“递归”与“非递归遍历”
  • 如何将服务器的镜像推送到阿里的容器镜像服务中