本篇內(nèi)容主要講解“Nacos的常見問題及解決方法”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“Nacos的常見問題及解決方法”吧!
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:申請域名、虛擬主機、營銷軟件、網(wǎng)站建設(shè)、武進網(wǎng)站維護、網(wǎng)站推廣。如何依賴最新的 Nacos 客戶端?
很多用戶都是通過 Spring Cloud Alibaba 或者 Dubbo 依賴的 Nacos 客戶端,那么 Spring Cloud Alibaba 和 Dubbo 中依賴的 Nacos 客戶端版本,往往會落后于 Nacos 最新發(fā)布的版本。在一些情況下,用戶需要強制將 Nacos 客戶端升級到最新,此時卻往往不知道該升級哪個依賴,這里將 Spring Cloud Alibaba 和 Dubbo 的依賴升級說明如下:
Spring Cloud Alibaba
用戶通常是配置以下Maven依賴來使用的 Nacos:
com.alibaba.cloud spring-cloud-starter-alibaba-nacos-discovery [latest version] com.alibaba.cloud spring-cloud-starter-alibaba-nacos-config [latest version]
這兩個 JAR 包實際上又依賴了以下的 JAR 包:
com.alibaba.nacos nacos-client [a particular version]
如果 nacos-client 升級了,對應(yīng)的 spring-cloud 客戶端版本不一定也同步升級,這個時候可以采用如下的方式強制升級 nacos-client(以 nacos-discovery 為例):
com.alibaba.cloud spring-cloud-starter-alibaba-nacos-discovery [latest version] com.alibaba.nacos nacos-client com.alibaba.nacos nacos-client [latest version]
Dubbo
Dubbo 也是類似的道理,用戶通常引入的是以下的依賴:
com.alibaba dubbo-registry-nacos [latest version] com.alibaba dubbo [latest version]
需要升級 Nacos 客戶端時,只需要如下修改依賴:
com.alibaba.nacos nacos-client [latest version]
客戶端 CPU 高,或者內(nèi)存耗盡的問題
問題的現(xiàn)象是依賴 Nacos 客戶端的應(yīng)用,在運行一段時間后出現(xiàn) CPU 占用率高,內(nèi)存占用高甚至內(nèi)存溢出的現(xiàn)象,可以參考 Issue
這種情況首先要做的是分析 CPU 高或者內(nèi)存占用高的原因,常用的命令有 top、jstack、jmap、jhat 等。其中一種情況是 Nacos 客戶端實例在 Spring Cloud Alibaba 服務(wù)框架中被反復(fù)構(gòu)造了多次,可以參考 Issue
這個問題已經(jīng)得到了修復(fù),預(yù)期會在下個 Spring Cloud Alibaba 版本中發(fā)布。
日志打印頻繁的問題
在老的 Nacos 版本中,往往會有大量的無效日志打印,這些日志的打印會迅速占用完用戶的磁盤空間,同時也讓有效日志難以查找。目前社區(qū)反饋的日志頻繁打印主要有以下幾種情況: 1、access 日志大量打印,相關(guān) Issue 點擊 這里。
主要表現(xiàn)是 {nacos.home}/logs/access_log.2019-xx-xx.log 類似格式文件名的日志大量打印,而且還不能自動清理和滾動。這個日志是 Spring Boot 提供的 Tomcat 訪問日志打印,Spring Boot 在關(guān)于該日志的選項中,沒有大保留天數(shù)或者日志大小控制的選項。因此這個日志的清理必須由應(yīng)用新建 Crontab 任務(wù)來完成,或者通過以下命令關(guān)閉日志的輸出(在生產(chǎn)環(huán)境我們還是建議開啟該日志,以便能夠有第一現(xiàn)場的訪問記錄):
server.tomcat.accesslog.enabled=false
2、服務(wù)端業(yè)務(wù)日志大量打印且無法動態(tài)調(diào)整日志級別。這個問題在 1.1.3 已經(jīng)得到優(yōu)化,可以通過 API 的方式來進行日志級別的調(diào)整,調(diào)整日志級別的方式如下:
# 調(diào)整naming模塊的naming-raft.log的級別為error: curl -X PUT '$nacos_server:8848/nacos/v1/ns/operator/log?logName=naming-raft&logLevel=error' # 調(diào)整config模塊的config-dump.log的級別為warn: curl -X PUT '$nacos_server:8848/nacos/v1/cs/ops/log?logName=config-dump&logLevel=warn'
3、客戶端日志大量打印,主要有心跳日志、輪詢?nèi)罩镜?。這個問題已經(jīng)在 1.1.3 解決,請升級到 1.1.3 版本。
集群管理頁面,Raft Term 顯示不一致問題
在 Nacos 1.0.1 版本中,Nacos 控制臺支持了顯示當(dāng)前的集群各個機器的狀態(tài)信息。這個功能受到比較多用戶的關(guān)注,其中一個被反饋的問題是列表中每個節(jié)點的集群任期不一樣。如下圖所示,圖片信息來自 Issue
對于這個任期不一致的問題,原因主要是因為獲取這個信息的邏輯有一些問題,沒有從對應(yīng)的節(jié)點上獲取集群任期。這個問題會在下一個 Nacos 版本中修復(fù)。目前一個手動檢查集群任期的辦法是在每個節(jié)點上執(zhí)行以下命令:
curl '127.0.0.1:8848/nacos/v1/ns/raft/state'
然后在返回信息中查找本節(jié)點的集群任期。因為每個節(jié)點返回的集群任期中,只有當(dāng)前節(jié)點的信息是準(zhǔn)確的,返回的其他節(jié)點的信息都是不準(zhǔn)確的。
到此,相信大家對“Nacos的常見問題及解決方法”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!