nacos一直频繁的打印日志get changegroupkeys问题

 更新时间:2024年05月21日 10:13:41   作者:请叫我大师兄_  
这篇文章主要介绍了nacos一直频繁的打印日志get changegroupkeys问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

为何nacos一直频繁的打印日志get changegroupkeys

正常情况下应该是30秒打印一次日志的,但是,重启了一下微服务之后,这个日志竟然疯狂输出。

解决方案如下:

# 1、根据心跳日志,定位日志输出的包名
c.a.n.client.config.impl.ClientWorker    : get changedGroupKeys:[]
 
# 2、在 IDEA 中搜索 ClientWorker 所在的包路径  
package com.alibaba.nacos.client.config.impl;
 
# 3、在任意格式的配置文件中将该包路径的日志设置为 ERROR 或者 WARN 级别即可
# Nacos 注册中心客户端心跳日志禁用 get changedGroupKeys:[] 刷屏
logging:
  level:
    com.alibaba.nacos.client.config.impl: WARN
  
# 4、如果是 Spring Cloud Gateway 则需要配置为
logging:
  level:
    com.alibaba.nacos.client.*: WARN 

看你配置文件格式了,yml或者properties,就改成对应的形式就好了。

升级nacos版本不一定能解决问题,我这使用的是1.3.1的版本。

生产环境,5个实例组成nacos集群,五个相同的微服务组成集群访问nacos,弄了不少的namespace,nacos的数据存在mysql数据库中。

nacos客户端启动频繁输出get changedGroupKeys:[] 日志

现象

分析 

// 线程运行方法
public void run() {
     List<CacheData> cacheDatas = new ArrayList();
     ArrayList inInitializingCacheList = new ArrayList();

     try {
       Iterator var3 = ((Map)ClientWorker.this.cacheMap.get()).values().iterator();

       while(var3.hasNext()) {
         CacheData cacheData = (CacheData)var3.next();
         if (cacheData.getTaskId() == this.taskId) {
            cacheDatas.add(cacheData);

           try {
             ClientWorker.this.checkLocalConfig(cacheData);
             if (cacheData.isUseLocalConfigInfo()) {
               cacheData.checkListenerMd5();
             }
           } catch (Exception var13) {
             ClientWorker.LOGGER.error("get local config info error", var13);
           }
         }
       }
       // 检查修改的数据
       List<String> changedGroupKeys = ClientWorker.this.checkUpdateDataIds(cacheDatas, inInitializingCacheList);
       // 日志打印
       ClientWorker.LOGGER.info("get changedGroupKeys:" + changedGroupKeys);
       Iterator var16 = changedGroupKeys.iterator();

       while(var16.hasNext()) {
      // ...
      }
      // ...
}

根据控制台打印频率规律,每30s左右都会打印这句日志;看下ClientWorker类,可以看出这是一种心跳检测,会定时去检测服务器的配置数据有没有变化。

解决

在任意格式的配置文件中将该包路径的日志设置为ERROR 或者 WARN 级别即可。

 # Nacos 注册中心客户端心跳日志禁用get changedGroupKeys:[] 刷屏
logging:
  level:
    com.alibaba.nacos.client.config.impl: WARN

如果是 Spring Cloud Gateway 则需要配置为

logging:
  level:
    com.alibaba.nacos.client.*: WARN

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • SpringCloud gateway+zookeeper实现网关路由的详细搭建

    SpringCloud gateway+zookeeper实现网关路由的详细搭建

    这篇文章主要介绍了SpringCloud gateway+zookeeper实现网关路由,本文通过图文实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-08-08
  • springboot项目连接不上nacos配置,报‘url‘异常问题

    springboot项目连接不上nacos配置,报‘url‘异常问题

    这篇文章主要介绍了springboot项目连接不上nacos配置,报‘url‘异常问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • SpringBoot集成IJPay实现微信v3支付的示例代码

    SpringBoot集成IJPay实现微信v3支付的示例代码

    本文主要介绍了SpringBoot集成IJPay实现微信v3支付的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • springboot单元测试依赖踩坑记录

    springboot单元测试依赖踩坑记录

    这篇文章主要介绍了springboot单元测试依赖踩坑记录及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • Maven之导入thymeleaf依赖飘红问题及解决

    Maven之导入thymeleaf依赖飘红问题及解决

    这篇文章主要介绍了Maven之导入thymeleaf依赖飘红问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • 面向对象和面向过程的区别(动力节点java学院整理)

    面向对象和面向过程的区别(动力节点java学院整理)

    很多朋友不清楚面向对象和面向过程有什么区别,接下来小编给大家整理了关于面向对象和面向过程的区别讲解,感兴趣的朋友可以参考下
    2017-04-04
  • Java Socket实现聊天室功能

    Java Socket实现聊天室功能

    这篇文章主要为大家详细介绍了Java Socket实现聊天室功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-09-09
  • Spring boot异步任务原理全面分析

    Spring boot异步任务原理全面分析

    这篇文章主要介绍了Spring boot异步任务原理,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • SpringCloud Gateway实现请求解密和响应加密的过程解析

    SpringCloud Gateway实现请求解密和响应加密的过程解析

    这篇文章主要介绍了SpringCloud Gateway实现请求解密和响应加密的相关知识,本文环境使用比较新的 Java 17 和 SpringBoot 3.1.5,对应到Spring的版本是 6.0.13,本文重心是网关项目,需要的朋友可以参考下
    2023-11-11
  • java启动线程的3种方式对比分析

    java启动线程的3种方式对比分析

    这篇文章主要为大家对比分析了java启动线程的3种方式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12

最新评论