vlambda博客
学习文章列表

nacos源码-集群发现

nacos中,无论是单机模式,还是集群模式,其根本区别只是 Nacos 成员节点的个数是单个还是多个,并且, 要能够感知到节点的变更情况:节点是增加了还是减少了;当前最新的成员列表信息是什么;以何 种方式去管理成员列表信息;如何快速的支持新的、更优秀的成员列表管理模式等等。


nacos支持三种类型的寻址模式:

1、单机寻址

2、文件寻址


我们可以得知,nacos提供了两种不同的集群配置模式:

1、配置文件中读取

2、远程接口动态更新


二者都支持动态的更新,显然第二种模式对运维人员更加友好,下面来看nacos是怎实现的。


源码分析


1、所有的集群统一由ServerMemberManage进行管理,这个类在初始化时


nacos源码-集群发现


nacos源码-集群发现


nacos源码-集群发现


StandaloneMemberLookup单机模式中

nacos源码-集群发现


FileConfigMemberLookup配置文件中

nacos源码-集群发现


nacos源码-集群发现


2、配置文件变更的动态感知


注册文件监听

nacos源码-集群发现


依靠WatchFileCenter中的死循环任务

nacos源码-集群发现


nacos源码-集群发现



AddressServerMemberLookup中的定时任务

nacos源码-集群发现



总结