后台服务日志显示Nacos客户端(每个后台服务就是一个Nacos客户端)不断从Nacos服务端拉取配置。
Nacos客户端判断Nacos服务端的配置文件发生了变化(config changed),所以Nacos客户端才会从Nacos服务端拉取配置,但是Nacos服务端上的配置并没有改变。
在Nacos控制台上打开该配置文件的详情,会发现该配置文件的MD5值与后台服务日志中打印的MD5值不一致,Nacos控制台上显示的MD5值前面少了0。
问题原因
因为使用的Nacos 1.2.1版本有一个已知的MD5问题,对同一个配置文件,Nacos客户端和Nacos服务端计算出的MD5值(校验和)不一致,会导致Nacos客户端认为该配置在Nacos服务端有更新,导致Nacos客户端不断从Nacos服务端拉取配置。
参见:
https://github.com/alibaba/nacos/issues/2722
解决方法
临时解决方法
在Nacos控制台上,修改配置文件(比如加一些不会影响格式的空格),修改再保存!!!修改再保存!!!修改再保存!!!这时Nacos客户端会重新拉取配置,并计算MD5值,只要计算出的MD5值不以0开头,就不会触发Nacos的MD5 bug。
永久解决方法
在Nacos GitHub上已经将1.2.1版本标注为“Not Suggest Have MD5 Problem“,因此可以将Nacos升级到高版本来解决。
参见:
https://github.com/alibaba/nacos/releases