nacos集群无法正确显示服务列表问题
起因是在使用dubbo的过程中,选用的注册中心是nacos,并且使用的nacos集群。
应用启动后,在nacos控制台查看注册的服务列表,包括消费者和服务者,都无法及时刷新。刷新的唯一方式是重启nacos。
后面经过一系列排查,发现我们的nacos集群是三个节点的,这是正常的并且也是nacos推荐的。但是,nacos启动的时候会把内网ip也自动的加入到cluster列表中。比如,启动前,nacos集群的/nacos/conf/cluster.conf文件如下配置:

然后使用集群方式启动nacos,再次查看cluster.conf文件,会发现cluster.conf文件中的ip列表变成了四个,如:

多出来的一个就是启动节点的内网ip。这会导致本来是三个节点的nacos集群,变成了四个节点。而偶数个节点会导致nacos集群无法选举出leader节点。没有leader点会导致nacos集群中的通信异常,所以导致集群无法正确及时的显示服务列表。为了避免这种情况,可以在nacos的/nacos/conf/application.properties文件中配置nacos.inetutils.ip-address,如图:

这样子启动后,nacos就不会自动加入内网ip到nacos集群了。
nacos集群节点数恢复到奇数后,服务页面便能正常显示
浙公网安备 33010602011771号