使用nacos-server1.2.1版本,项目启动时疯狂的循环打印日志问题
一、起因环境:nacos:1.2.1spring cloud:Greenwich.SR2spring cloud alibaba:2.1.1.RELEASEspring boot:2.1.6.RELEASEjdk: 1.8项目是微服务架构,注册中心和配置中心使用的是nacos,之前项目一切正常,在加入下面图中的一行配置之后,enable-exceptio...
一、起因
1. 环境:
nacos: 1.2.1
spring cloud: Greenwich.SR2
spring cloud alibaba: 2.1.1.RELEASE
spring boot: 2.1.6.RELEASE
jdk: 1.8
项目是微服务架构,注册中心和配置中心使用的是nacos,之前项目一切正常,在加入下面图中的一行配置之后,enable-exception-type-http-header: false
为自定义的一个属性值,如果值为false
,项目启动则会频繁的刷日志,如果值为true
,则不会出现这个问题
2. 疯狂的刷日志:
二、分析原因
遇到这个问题,首先别想着去一些SpringCloud
群里问,也别想着问一些好友,别人未必用过nacos
,未必遇到过这种问题。其实这个问题不大影响服务注册与发现的使用,但是这个重复拉取nacos-server端配置文件的这个问题还是需要去解决,不然就不像是做程序员开发的了。
一开始我也觉得这个太奇怪了,我首先怀疑的就是nacos
本身的bug
,所以直接去GitHub
上查找类似的问题,发现框架确实存在bug。
从这个官方的Issue提问中可以知道原因所在: https://github.com/alibaba/nacos/pull/2647
根本原因:
nacos
中的MD5
和服务收到的MD5
不一致,导致日志不断打印。
GitHub
中Issue
导航:
- https://github.com/alibaba/nacos/issues/2706
- https://github.com/alibaba/nacos/issues/2607
- https://github.com/alibaba/nacos/issues/372
三、解决办法
1. 解决方式:
在nacos-server 1.2.1
版本中,注意是nacos-server1.2.1
版本,nacos-client端和nacos-server端MD5
值计算那块有问题,已经修复了,就是还没有发布,那么解决方式有3种:
-
自己去
build develop
代码,打一个新的nacos-server.jar
包,具体做法是:
拉一下最新代码,然后在develop
分支上执行mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U
nacos
的develop
分支代码地址:https://github.com/alibaba/nacos/tree/develop -
将
nacos-server1.2.1
退回到nacos-server1.2.0
可以解决这个问题。 -
设置nacos的日志级别为:
com.alibaba.nacos.client.naming: warn
。(不推荐)这里说明一下:第3种方式不治本,建议使用第一种或者第二种。
2. 我的做法:
拉nacos
源代码,在develop
分支执行: mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U
编译后的nacos-server.jar
在nacos\distribution\target
目录下,如果需要已经编译好的jar包可以联系我:
更多推荐
所有评论(0)