问题描述
当时配置不同命名空间的时候出现了问题,终端一直打印INFO日志,获取nacos配置中心的配置修改情况。
解决过程
- 还没看过nacos的源码,网上搜了一下nacos启动后一直打印ClientWorker日志
这篇文章中写道:由于判断条件是本地配置的md5值与服务器的md5值对比。
因此,如果nacos-client 和 nacos-server 的 md5 算法不同,则会导致误判,从而不停刷新,导致不停地打印ClientWorker日志。 - 我猜测应该是缓存的问题
- 2020/12/16
- 最近看了源码,然后测试了几下,发现一些问题:
- 操作上的问题:我在项目开着的情况下删除了项目正在监听的配置,然后控制台就报错了,重启之后还是一直报错。我看了下日志,项目仍然在查找刚才我删除的配置文件,大概是因为用户目录下有一个配置的备份./nacos/config/xxx,里面备份了项目从nacos配置中心拿来的所有配置文件,nacos客户端就一直访问这个东西,应该是没有清除缓存的缘故。
- 还是操作上的问题:我开着项目的情况下新建了命名空间,然后加入bootstrap.properties中的namespace后重启了项目就一直打印ClientWorker的接收日志
解决方案
第一种是将nacos版本升级到1.4,前两天刚好发布了1.4版本,(运气不错) nacos releases 直接升级就解决了解决个屁,运气好罢了,操作稳定罢了 2333 最好还是用自己springboot对应的版本,实在不行可以回退springboot版本来对应nacos,不要逆版本行事...- 第二种方法治标不治本,即修改日志等级,找到日志打印的类的地方,比如说ClientWorker和CacheData这两个类,日志中[data-received]balabla 就是ClientWorker打印的,他们的package都是com.alibaba.nacos.client.config.impl
并且都是info日志等级,所以给他们加上WARN等级,但是这样一来呢,我们自己修改的配置输出都看不到了:
logging.level.com.alibaba.nacos.client.config.impl: WARN
- 所以说还是需要正确的操作,增加nacos配置和命名空间都是要在项目配置文件中标记的,项目肯定要重启,所以在操作前先把项目停下,然后改好了再上线。我是先关掉nacos服务(浏览器缓存也顺带清了),然后把用户目录下的备份删掉 ./nacos/,然后启动nacos,应该就可以了。 实在不行就关掉服务,删掉备份,重启服务器/pc。再不然就导出nacos服务配置,删除备份,然后重装nacos,然后建立好namespace,导入对应配置。
仅个人见解,有错误的地方望指正...