
Nacos源码
文章平均质量分 85
埃泽漫笔
OceanBase开源项目ODC(OceanBase Developer Center)的核心贡献者,Github地址:https://github.com/oceanbase/odc,希望大家能赏脸支持下我们OceanBase公司的开源项目,点亮一颗小星星就行。
Maven中央仓库OceanBase开源组件 https://central.sonatype.com/artifact/com.oceanbase/db-browser 和 https://central.sonatype.com/artifact/com.oceanbase/ob-sql-parser 的核心贡献者。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Nacos客户端服务订阅的事件机制剖析
整体服务订阅的事件机制还是比较复杂的,因为用到了事件的形式,逻辑比较绕,并且其中还有守护线程,死循环,阻塞队列等。 需要重点理解NotifyCenter对事件发布者、事件订阅者和事件之间关系的维护,而这一关系的维护的入口就位于NacosNamingService的init方法当中。原创 2025-06-17 00:35:04 · 693 阅读 · 0 评论 -
Nacos客户端服务订阅机制的核心流程
Nacos的订阅机制,如果用一句话来描述就是:Nacos客户端通过一个定时任务,每6秒从注册中心获取实例列表,当发现实例发生变化时,发布变更事件,订阅者进行业务处理(更新实例,更改本地缓存)。 以下是订阅方法的主线流程,涉及内容比较多,细节比较复杂,所以这里我们主要学习核心部分。订阅方法的调用,并进行EventListener的注册,后面UpdateTask要用来进行判断;通过委托代理类来处理订阅逻辑,此处与获取实例列表方法使用了同一个方法;原创 2025-05-27 22:31:15 · 565 阅读 · 0 评论 -
Nacos客户端服务发现源码分析
如果是订阅模式,则直接从本地缓存获取服务信息(ServiceInfo),然后从中获取实例列表,这是因为订阅机制会自动同步服务器实例的变化到本地。 但是如果我们要是细化这个流程,会发现不仅包括了通过NamingService获取服务列表,在获取服务列表的过程中还涉及到通信流程协议(Http or gPRC)、订阅流程、故障转移流程等。 在这里我们主要要关注getAllInstances方法,那我们就需要看一下这个方法的具体操作,当然这其中需要经过一系列的重载方法调用。 集群列表:默认为空数组。原创 2025-05-27 22:26:10 · 409 阅读 · 0 评论 -
Nacos服务端健康检查源码分析
在之前的1.x版本中临时实例走Distro协议内存存储,客户端向注册中心发送心跳来维持自身healthy状态,持久实例走Raft协议持久化存储,服务端定时与客户端建立tcp连接做健康检查。 但是2.0版本以后持久化实例没有什么变化,但是2.0临时实例不在使用心跳,而是通过长连接是否存活来判断实例是否健康。注册中心客户端2.0之后使用gRPC代替http,会与服务端建立长连接,但仍然保留了对旧http客户端的支持。,在连接保持期间,如果没有数据包发送,需要双方发链路检测包。的客户端,向客户端发起。原创 2025-05-27 22:22:32 · 688 阅读 · 0 评论 -
Nacos服务端服务注册源码分析
负责存储当前客户端的服务注册表,即Service与Instance的关系。注意。原创 2025-05-26 23:36:49 · 842 阅读 · 0 评论 -
Nacos客户端实例注册源码分析
然后再通过SpingBoot的自动装配(首先找到)来加载EnableAutoConfiguration对应的类,然后这里我们就能看见很多Nacos相关的内容,那我们怎么能知道这个服务在注册的时候具体走的时候哪一个,其实一般这种文件我们都会找“Auto”关键子的文件来进行查看,然后我们现在要了解的是客户端的注册,所以我们要找“NacosServiceRegistryAutoConfiguration”。然后在start()方法中调用register()方法来注册服务。原创 2025-05-26 23:31:18 · 720 阅读 · 0 评论 -
Nacos客户端服务注册源码分析
我们从Nacos-Client开始说起,那么说到客户端就涉及到服务注册,我们先了解一下Nacos客户端都会将什么信息传递给服务器,我们直接从Nacos Client项目的NamingTest说起其实这就是客户端注册的一个测试类,它模仿了一个真实的服务注册进Nacos的过程,包括NacosServer连接、实例的创建、实例属性的赋值、注册实例,所以在这个其中包含了服务注册的核心代码,仅从此处的代码分析,可以看出,Nacos注册服务实例时,包含了两大类信息:Nacos Server连接信息和实例信息。Na原创 2025-05-25 23:01:56 · 682 阅读 · 0 评论 -
Nacos核心功能与模块简介
服务消费者(Nacos Client)在调用服务提供者的服务时,会发送一个REST请求给Nacos Server,获取上面注册的服务清单,并且缓存在Nacos Client本地,同时会在Nacos Client本地开启一个定时任务定时拉取服务端最新的注册表信息更新到本地缓存。那么知道了这些,现在我们就来进行Nacos的源码下载,然后我们具体分析。下载好之后我们需要启动Nacos,那么我们首先要找到nacos-console这个模块,找到启动类,同时还要配置启动模式为单机(我们还是以单机模式为演示)原创 2025-05-25 23:00:29 · 434 阅读 · 0 评论