![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Nacos服务注册与发现服务端系列
文章平均质量分 76
Nacos服务注册与发现服务端源码解析
@@@八爪鱼
这个作者很懒,什么都没留下…
展开
-
Nacos源码学习系列服务端第8篇服务查询之实例查询
我们接着上篇的服务订阅部分,本篇我们继续讲解服务查询的实例列表是如果查询出来的流程图服务查询(InstanceOperatorClientImpl)public class InstanceOperatorClientImpl implements InstanceOperator { //客户端管理器 private final ClientManager clientManager; //客户端操作服务 有2种具体实现 // ...原创 2022-05-27 22:39:19 · 978 阅读 · 0 评论 -
Nacos源码学习系列服务端第3篇服务注册之客户端心跳检查
客户端初始化public class IpPortBasedClient extends AbstractClient { .... /** * Init client. */ public void init() { if (ephemeral) { //这里开始创建心跳检查任务并加入定时任务执行 beatCheckTask = new ClientBeatCheckTaskV2(th原创 2022-05-25 22:12:23 · 560 阅读 · 0 评论 -
Nacos源码学习系列服务端第12篇心跳管理
流程图接收心跳请求public class InstanceController { ..... @PutMapping("/beat") @Secured(action = ActionTypes.WRITE) public ObjectNode beat(HttpServletRequest request) throws Exception { //设置心跳间隔时间 ObjectNode result = JacksonU原创 2022-06-01 07:02:01 · 502 阅读 · 0 评论 -
Nacos源码服务端系列第16篇事件中心
学习目标:了解notifyCenter 跟之前的DefaultPublisher 、Subscriber、 DefaultSharedPublisher之间的关系是什么,起的作用又是什么,怎么使用,哪些场景用到的了。属性public class NotifyCenter { ..... public static int ringBufferSize; public static int shareBufferSize; private st..原创 2022-05-31 19:27:29 · 107 阅读 · 0 评论 -
Nacos源码服务端系列第15篇事件中心之共享发布者
目录DefaultSharePublisheruml 类图实现方式更优的发布者(NamingEventPublisher)总结学习目标: 了解什么是共享发布者,跟DefaultPublisher有什么区别,它有哪些实现类。DefaultSharePublisher从代码中可以看出DefaultSharePublisher 的逻辑跟上一节的DefaultPublisher 的区别和联系区别:1、DefaultPublisher 是针对Event类型 而...原创 2022-05-31 19:28:45 · 298 阅读 · 0 评论 -
Nacos源码服务端系列第14篇事件中心之发布订阅者
目录事件订阅者一起回顾下常用的订阅实现类默认事件发布者uml 类图初始化事件处理事件发布总结学习目标:要了解事件订阅者和事件发布者的基本功能以及事件订阅者和发布者之间的关系。事件发布者是如何发布事件和处理事件的。事件订阅者是如何注册事件和处理事件的。事件订阅者订阅事件Event 有一个全局的序号自增属性.所有集成该类的事件类型共用该属性的值private static final AtomicLong SEQUENCE = ne...原创 2022-05-31 19:29:39 · 168 阅读 · 0 评论 -
Nacos源码学习系列服务端第13篇udp推送与ack机制
UdpConnector 基本属性pubic class UdpConnector { //存储要发送的数据和key //创建发送任务时塞入ackmap //直到以下情况发送会从map移除 //1、收到客户端的ack 2、重试已达最大次数 3、发送出现异常 private final ConcurrentMap<String, AckEntry> ackMap; //ackkey <-> 回调对象(包括有成..原创 2022-05-31 19:30:23 · 517 阅读 · 0 评论 -
Nacos源码学习系列服务端第11篇元数据管理之数据更新
上一篇我们讲述了元数据处理器是怎么注册到JRaftProtocol的,用户提交更新请求后,又是如果把请求提交给JraftProtocol,以及JraftProtocol是如何分发请求的。本篇,我们讲请求处理器接收到任务和是如果处理本地元数据的。元数据更新处理器@Componentpublic class InstanceMetadataProcessor extends RequestProcessor4CP { //元数据管理器统一的入口 private final ..原创 2022-05-28 21:45:46 · 1477 阅读 · 0 评论 -
Nacos源码学习系列服务端第10篇元数据管理之Jraft一致性更新
从控制台修改服务的元数据从控制台修改实例的元数据修改后的结果向JRaftProtocol注册元数据变更处理器服务在启动的时候通过构造函数进行初始化bean构造函数里面除了需要自动注入的属性后 还向JRaftProtocol 注册了当前对象处理器。实例和服务的处理器bean的实例化和注册过程是一样的。//实例元数据处理器@Componentpublic class InstanceMetadataProcessor extends RequestProcess原创 2022-05-28 19:49:23 · 1358 阅读 · 0 评论 -
Nacos源码学习系列服务端第9篇服务查询之实例过滤与阈值保护
流程图服务查询(InstanceOperatorClientImpl)public class InstanceOperatorClientImpl implements InstanceOperator { //客户端管理器 private final ClientManager clientManager; //客户端操作服务 有2种具体实现 // EphemeralClientOperationServiceImpl // Persistenc原创 2022-05-28 10:36:52 · 601 阅读 · 0 评论 -
Nacos源码学习系列服务端第7篇服务查询之订阅
服务订阅入口 @GetMapping("/list") @Secured(action = ActionTypes.READ) public Object list(HttpServletRequest request) throws Exception { //获取命名空间id String namespaceId = WebUtils.optional(request, CommonParams.NAMESPACE_ID,原创 2022-05-27 18:10:29 · 472 阅读 · 0 评论 -
Nacos源码学习系列服务端第6篇服务下线
服务的下线相比服务的注册主要少了客户端创建及客户端的健康检查任务和客户端发布事件的功能,初次之外,服务端跟客户端的逻辑基本都是再相同的处理类里面,如果很好的理解了服务注册的流程和逻辑,服务下线的流程就很容易理解。目录流程图请求处理入口服务下线处理入口服务下线核心逻辑总结流程图请求处理入口 public String deregister(HttpServletRequest request) throws Exception { //...原创 2022-05-27 14:26:18 · 1152 阅读 · 0 评论 -
Nacos源码学习系列服务端第5篇服务注册服务之变更事件
接上篇我们继续讲解 服务端变更事件 和 客户端变更事件ServiceEvent.ServiceChangedEvent 和ServiceEvent.ClientChangedEventServiceChangedEventpublic class NamingSubscriberServiceV2Impl extends SmartSubscriber implements NamingSubscriberService { private static final..原创 2022-05-27 11:26:29 · 613 阅读 · 0 评论 -
Nacos源码学习系列服务端第4篇服务注册之注册事件
Nacos通过前面3篇的讲解我们已经见识到了事件几乎充斥再各个方法里面各种事件让人眼花缭乱,服务注册要发布ClientRegisterServiceEvent和InstanceMetadataEvent事件, 客户端初次要发布ClientChangedEvent事件,而且一个事件的处理完毕又会触发另外一个事件,同时因为事件都是基于异步的处理方式所以调试起来不方便,基于Nacos事件机制的复杂性,这里我不一上来就讲解事件机制。而是先根据几个具体的事件及处理逻辑让大家对Nacos事件有一个逐步的了解,有了一定.原创 2022-05-27 09:27:28 · 720 阅读 · 2 评论 -
Nacos源码学习系列服务端第2篇服务注册之客户端管理
官方对Client说明:The abstract concept of the client stored by on the server of Nacos naming module. It is used to store whichservices the client has published and subscribedThe client is bind to the ip and port users registered. It's a abstract content to ..原创 2022-05-25 19:16:18 · 440 阅读 · 0 评论 -
Nacos源码学习系列服务端第1篇服务注册之主流程
服务端注册会分三块讲解主流程讲解 client管理 注册过程中发布的事件服务注册流程图注册请求入口方法上的 @CanDistro 和 @Secured注解后面再作说明这里的Instance 对象的属性跟 客户端篇 的Instance 对象的属性是一样的这里部赘述@RequestMapping(UtilsAndCommons.NACOS_NAMING_CONTEXT + UtilsAndCommons.NACOS_NAMING_INSTANCE_CONTEXT).原创 2022-05-25 14:12:18 · 475 阅读 · 0 评论