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

SpringCloud复习:(2)@LoadBalanced注解的工作原理

@LoadBalanced注解标记了一个RestTemplate或WebClient bean使用LoadBalancerClient来进行负载均衡。

LoadBalancerAutoConfiguration类给带注解的@RestTemplate添加了拦截器:LoadBalancerInterceptor.
具体流程如下:
首先定义一个LoadBalancerInterceptor
在这里插入图片描述
然后定义了一个RestTemplateCustomizer bean,这个bean 通过customize方法将传入的RestTemplate添加上边定义的LoadBalancerInterceptor,最后再定义一个SmartInitializingSingleton bean,容器创建时,会调用其afterSingletonsInstantiated方法,在这个方法里传入使用了@LoadBalanced注解标记的RestTemplate,然后调用上一步中的RestTemplateCustomizer的customize方法来给RestTemplate添加Interceptor.
在这里插入图片描述

总结: 通过@LoadBalanced注解,来判断哪些RestTemplate需要负载均衡功能。通过给RestTemplate添加拦截器来具体实现负载功能。

可以在方法中注入LoadBalancerClient,然后调用choose方法,来获取ServiceInstance对象,以进一步获取某个服务的信息,比如主机名、端口号等。
在这里插入图片描述

http://www.lryc.cn/news/205627.html

相关文章:

  • vue钩子函数以及例子
  • redis场用命令及其Java操作
  • UG\NX二次开发 同时设置多个对象的高亮状态 UF_DISP_set_highlights
  • Qt+树莓派4B 手动设置系统日期和时间
  • 用大顶堆和小顶堆实现优先队列
  • PDCA项目开发环境搭建说明
  • Git简明教程
  • 数据结构顺序表(C语言版)
  • 新手如何备考学习PMP?
  • [卷积神经网络]FasterNet论文解析
  • 知识图谱+推荐系统 文献阅读
  • shell_39.Linux参数测试
  • 3D模型格式转换工具HOOPS Exchange助力SIMCON搭建注塑项目
  • Linux_虚拟内存机制
  • 淘宝官方开放平台API接口获得店铺的所有商品、商品id、商品标题、销量参数调用示例
  • Java Spring 通过 AOP 实现方法参数的重新赋值、修改方法参数的取值
  • Real3D FlipBook jQuery Plugin 3.41 Crack
  • Pytorch:model.train()和model.eval()用法和区别,以及model.eval()和torch.no_grad()的区别
  • Linux CentOS 8(firewalld的配置与管理)
  • C复习-指针
  • Runnable和Thread的区别,以及如何调用start()方法
  • 云音乐Android Cronet接入实践
  • Linux dup和dup2
  • Spring Boot实战 | 如何整合高性能数据库连接池HikariCP
  • Spring依赖注入
  • Linux下Jenkins自动化部署SpringBoot应用
  • 【git 学习】--- ubuntu18.04 搭建本地git服务器
  • JAVA电商平台免费搭建 B2B2C商城系统 多用户商城系统 直播带货 新零售商城 o2o商城 电子商务 拼团商城 分销商城
  • Android 13 Framework 裁剪
  • 【Axios封装示例Vue2】