架构之旅
源码之 Java 基础
从 Hello, World! 说起
Hello, World! 之 标准输入流
从 流 到 Java IO
pulsar 文档
pulsar 本地开发集群搭建
jvm - sandbox
流量回放流程分析
nacos 笔记
nacos server 启动流程
nacos 集群管理 - ServerMemberManager
dubbo 之 No provider available for the service
-
+
首页
nacos 集群管理 - ServerMemberManager
ServerMemberManager.java 位于 com.alibaba.nacos.core.cluster 包下面,实现了 ApplicationListener 接口。核心代码大致如下: ```java protected void init() throws NacosException { registerClusterEvent(); initAndStartLookup(); } @Override public void onApplicationEvent(WebServerInitializedEvent event) { getSelf().setState(NodeState.UP); if (!EnvUtil.getStandaloneMode()) { GlobalExecutor.scheduleByCommon(this.infoReportTask, DEFAULT_TASK_DELAY_TIME); } EnvUtil.setPort(event.getWebServer().getPort()); EnvUtil.setLocalAddress(this.localAddress); Loggers.CLUSTER.info("This node is ready to provide external services"); } ``` init 里先注册集群节点变化的监听(可理解为注册对各个节点 cluster.conf 变化的监听),然后初始化,初始化时,添加对 cluster.conf 文件的监听,这个文件发生变化后,发送事件,接着执行 infoReportTask ,即每隔 2 秒调用 /cluster/report 这个接口,如果连续4次失败,则将该节点标记为 down,节点信息变化监听与同步流程如下: 综上,这个类主要做了以下三件事: 1. 监听本地 cluster.conf,变化后同步到其他节点 2. 监听其他节点 cluster.conf 变化事件,变化后更新本地信息 3. 健康监听,每隔2秒调用其他节点的 /cluster/report 接口,且为循环遍历,每次地址不一样,当该节点返回异常持续4次时,将其标记为 down
十三
2021年8月16日 21:23
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
关于 MrDoc
觅思文档MrDoc
是
州的先生
开发并开源的在线文档系统,其适合作为个人和小型团队的云笔记、文档和知识库管理工具。
如果觅思文档给你或你的团队带来了帮助,欢迎对作者进行一些打赏捐助,这将有力支持作者持续投入精力更新和维护觅思文档,感谢你的捐助!
>>>捐助鸣谢列表
微信
支付宝
QQ
PayPal
Markdown文件
分享
链接
类型
密码
更新密码