[alibaba/nacos]nacos2.0.3集群中节点shutdown后再次启动, readyToUpgrade 字段丢失
回答
@anryHan 跟踪源码发现,shutdown 节点之后,首先进行参数处理的 MemberUtil.multiParse(params) 方法内部,又调用了 singleParse 方法,最终在 singleParse 方法内部,并没有同步更新 readyToUpgrade 属性: 图中红框圈起来的注释部分是我改动的代码,该方法的最后部分,节点 shutdown 之后,只写回了默认的 Nacos 端口,并没有同步更新 readyToUpgrade 属性,放开代码注释部分,readyToUpgrade 字段正常显示。
你可以提交一个pr 让 @realJackSun 帮你review 下
感觉,是不是把自己的元数据持久化到cluster.conf比较好?
@chuntaojun 貌似不可以,这个是对 Nacos 中的服务节点之元数据进行操作,如果持久化到 cluster.conf ,当发生服务节点切换时,会频繁更新 cluster.conf 文件,增加 Nacos 的 IO 压力,这种更新操作应该比只更新一个对象元数据的引用开销要高很多。
@realJackSun 针对本 issue 的修改,已经提交了 PR ,希望您能看下,谢谢
提交了 PR 没人管了吗,有没有结果说句话啊??
这里可以直接设置true吗? 要全部ready才能设置为true,如果之前是false的话,会不会走到这里来
单节点模式下可以直接设置,集群模式下需要同步修改,无论是单节点模式还是集群模式,源码中都遗漏了对于 readyToUpgrade 字段逻辑的更新。
所以我说源码中都遗漏了对于 readyToUpgrade 字段逻辑的更新。 还有就是这部分的逻辑,我跟官方沟通了下,这部分逻辑可能后期需要变更,具体的看官方怎么说吧。
收到,感谢贡献。社区正在Review,之后同步给您进展。