nacos一直頻繁的打印日志get changegroupkeys問題
為何nacos一直頻繁的打印日志get changegroupkeys
正常情況下應(yīng)該是30秒打印一次日志的,但是,重啟了一下微服務(wù)之后,這個(gè)日志竟然瘋狂輸出。
解決方案如下:
# 1、根據(jù)心跳日志,定位日志輸出的包名 c.a.n.client.config.impl.ClientWorker : get changedGroupKeys:[] # 2、在 IDEA 中搜索 ClientWorker 所在的包路徑 package com.alibaba.nacos.client.config.impl; # 3、在任意格式的配置文件中將該包路徑的日志設(shè)置為 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,就改成對應(yīng)的形式就好了。
升級nacos版本不一定能解決問題,我這使用的是1.3.1的版本。
生產(chǎn)環(huán)境,5個(gè)實(shí)例組成nacos集群,五個(gè)相同的微服務(wù)組成集群訪問nacos,弄了不少的namespace,nacos的數(shù)據(jù)存在mysql數(shù)據(jù)庫中。
nacos客戶端啟動(dòng)頻繁輸出get changedGroupKeys:[] 日志
現(xiàn)象
分析
// 線程運(yùn)行方法 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); } } } // 檢查修改的數(shù)據(jù) List<String> changedGroupKeys = ClientWorker.this.checkUpdateDataIds(cacheDatas, inInitializingCacheList); // 日志打印 ClientWorker.LOGGER.info("get changedGroupKeys:" + changedGroupKeys); Iterator var16 = changedGroupKeys.iterator(); while(var16.hasNext()) { // ... } // ... }
根據(jù)控制臺打印頻率規(guī)律,每30s左右都會打印這句日志;看下ClientWorker類,可以看出這是一種心跳檢測,會定時(shí)去檢測服務(wù)器的配置數(shù)據(jù)有沒有變化。
解決
在任意格式的配置文件中將該包路徑的日志設(shè)置為ERROR 或者 WARN 級別即可。
# Nacos 注冊中心客戶端心跳日志禁用get changedGroupKeys:[] 刷屏 logging: level: com.alibaba.nacos.client.config.impl: WARN
如果是 Spring Cloud Gateway 則需要配置為
logging: level: com.alibaba.nacos.client.*: WARN
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
帶你輕松搞定Java面向?qū)ο蟮木幊?-數(shù)組,集合框架
Java是面向?qū)ο蟮母呒壘幊陶Z言,類和對象是 Java程序的構(gòu)成核心。圍繞著Java類和Java對象,有三大基本特性:封裝是Java 類的編寫規(guī)范、繼承是類與類之間聯(lián)系的一種形式、而多態(tài)為系統(tǒng)組件或模塊之間解耦提供了解決方案2021-06-06struts1之ActionServlet詳解_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要介紹了struts1之ActionServlet詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-09-09jfinal中stateless模式嵌入shiro驗(yàn)證的實(shí)現(xiàn)方式
這篇文章主要介紹了jfinal中stateless模式嵌入shiro驗(yàn)證,今天,我們就來嘗試一種通過攔截器來實(shí)現(xiàn)的Stateless Jfinal嵌入方式,需要的朋友可以參考下2022-06-06Spring Security OAuth2認(rèn)證授權(quán)示例詳解
這篇文章主要介紹了Spring Security OAuth2認(rèn)證授權(quán)示例詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09SpringBoot AOP方式實(shí)現(xiàn)多數(shù)據(jù)源切換的方法
本篇文章主要介紹了SpringBoot AOP方式實(shí)現(xiàn)多數(shù)據(jù)源切換的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-03-03SpringBoot通過自定義注解實(shí)現(xiàn)配置類的自動(dòng)注入的實(shí)現(xiàn)
本文主要介紹了SpringBoot通過自定義注解實(shí)現(xiàn)配置類的自動(dòng)注入的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04使用Feign調(diào)用時(shí)添加驗(yàn)證信息token到請求頭方式
這篇文章主要介紹了使用Feign調(diào)用時(shí)添加驗(yàn)證信息token到請求頭方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03