项目启动后nacos客户端狂刷Info日志问题排查

项目启动后狂刷如下INFO日志,看内容大概可以猜到是config内容的change事件推送,但配置项的值其实并没改变:

项目启动后nacos客户端狂刷Info日志问题排查_第1张图片

在github上的nacos项目的issues#2684下找到相同问题:
项目启动后nacos客户端狂刷Info日志问题排查_第2张图片

本地nacos client为1.2.0版本(由nacos-spring-context:0.3.6决定),而远程nacos server为1.2.1版本,两边对配置值的MD5加密结果不一致的BUG导致;
—解决:可能需要重新部署一套1.2.0版本的nacos

1.2.1的nacos-common中MD5加密如图

项目启动后nacos客户端狂刷Info日志问题排查_第3张图片
项目启动后nacos客户端狂刷Info日志问题排查_第4张图片

客户端与服务端对config.content 的md5编写方式不一致,导致在特定参数下,服务端生成了31位的MD5,从而使客户端一直刷新数据。BigInteger.toString(16)会删除前导0,所以不应该用这种方式。

nacos1.2.0版本客户端client的MD5加密方式:
项目启动后nacos客户端狂刷Info日志问题排查_第5张图片

Nacos1.2.0版本服务端server的MD5加密方式:
项目启动后nacos客户端狂刷Info日志问题排查_第6张图片

1.3.1的修改服务端server的MD5方法修改:
项目启动后nacos客户端狂刷Info日志问题排查_第7张图片
后续:试了nacos1.3.1和1.2.0版本的服务端,发现1.2.0的客户端连1.3.1的服务端还是有这个问题,最终服务端降为1.2.0版本解决该问题。

你可能感兴趣的:(系统)