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

Nacos源码之服务拉取(RestTemplate)

我们来看一下Demo:

在这里插入图片描述

RestTemplate的处理逻辑

​ 从代码也可以看出,拉取服务的入口就是RestTemplategetForObject方法,先看看RestTemplate里面的调用链:

在这里插入图片描述

​ 可以看到,RestTemplate会将发送拉取服务的请求委托给了ClientHttpRequestexcute方法,ClientHttpRequest是一个接口,这里是它的一个实现类InterceptingClientHttpRequest,我们继续看看InterceptingClientHttpRequestexcute方法的调用链:

在这里插入图片描述

InterceptingRequestExecution其实是InterceptingClientHttpRequest的内部类,因此共享InterceptingClientHttpRequest的成员变量:

在这里插入图片描述

LoadBanlancerInterceptor的处理逻辑

​ 我们继续看看LoadBalancerInterceptorintercept方法:

在这里插入图片描述

BlockingLoadBalancerClientexecute方法:

在这里插入图片描述

​ 可以看到拉取服务实例的核心逻辑在choose方法,我们进到choose方法看看:

在这里插入图片描述

​ 负载均衡器去拉取服务的逻辑比较复杂,我们直接来看看最后的处理逻辑,最后会调用CompositeDiscoveryClient的getInstances方法:

在这里插入图片描述

​ 我们直接看NacosDiscoveryClientgetInstances方法:

在这里插入图片描述

​ 继续看NacosServiceDiscoverygetInstances方法:

在这里插入图片描述

​ 可以看到最底层的发送请求的逻辑还是交给了NamingService来做,我们之前服务注册的底层也是它来负责的。

在这里插入图片描述

http://www.lqws.cn/news/558703.html

相关文章:

  • 访问不了/druid/index.html (sql.html 或 login.html)
  • CPU内部总线方式对比
  • 领域驱动设计(DDD)【20】之值对象(Value Object):入门
  • Spring Cloud 微服务(负载均衡策略深度解析)
  • nt!IoSynchronousPageWrite函数分析之atapi!IdeReadWrite----非常重要
  • 23种设计模式——策略模式:像换口红一样切换你的算法
  • Learning to Prompt for Continual Learning
  • 数据结构与算法 --- 双向链表
  • 问卷标记语言(QML):简化调查问卷设计与部署的XML解决方案
  • 【YOLOv13保姆级教程#03】自建数据集训练与验证(Train Val)全流程 | 手把手教你构建数据集、标签格式转换与yaml配置
  • Go开发工程师-Golang基础知识篇
  • Vue工程化实现约定式路由自动注册
  • 使用vue3构建一套网站
  • TCP 和 UDP 是什么?
  • 【Python基础】06 实战:视频压缩迷你脚本设计
  • 深入理解C#委托操作:添加、移除与调用全解析
  • 港澳地区,海外服务器ping通可能是地区运营商问题
  • MySQL为什么要使用b+树
  • 1 Studying《Computer Architecture A Quantitative Approach》1-4
  • 鸿蒙HarmonyOS 5小游戏实践:数字记忆挑战(附:源代码)
  • 信号处理学习——文献精读与code复现之TFN——嵌入时频变换的可解释神经网络(下)
  • 给定一个整型矩阵map,求最大的矩形区域为1的数量
  • Insar 相位展开真实的数据集的生成与下载(随机矩阵放大,zernike 仿真包裹相位)
  • Launcher3中的CellLayout 和ShortcutAndWidgetContainer 的联系和各自职责
  • 剑指offer50_0到n-1中缺失的数字
  • python -日期与天数的转换
  • autoas/as 工程的RTE静态消息总线实现与端口数据交换机制详解
  • 解决flash-attn安装报错的问题
  • 【C】陷波滤波器
  • 鸿蒙开发:资讯项目实战之底部导航封装