Nacos 常見問題及解決方法
Nacos 開源至今已有一年,在這一年裡,得到了很多使用者的支援和反饋。在與社群的交流中,我們發現有一些問題出現的頻率比較高,為了能夠讓使用者更快的解決問題,我們總結了這篇常見問題及解決方法,這篇文章後續也會合併到 Nacos 官網的 FAQ 裡。
如何依賴最新的 Nacos 客戶端?
很多使用者都是透過 Spring Cloud Alibaba 或者 Dubbo 依賴的 Nacos 客戶端,那麼 Spring Cloud Alibaba 和 Dubbo 中依賴的 Nacos 客戶端版本,往往會落後於 Nacos 最新發布的版本。在一些情況下,使用者需要強制將 Nacos 客戶端升級到最新,此時卻往往不知道該升級哪個依賴,這裡將 Spring Cloud Alibaba 和 Dubbo 的依賴升級說明如下:
Spring Cloud Alibaba
使用者通常是配置以下Maven依賴來使用的 Nacos:
<!--Nacos Discovery-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>[latest version]</version>
</dependency>
<!--Nacos Config-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>[latest version]</version>
</dependency>
這兩個 JAR 包實際上又依賴了以下的 JAR 包:
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
<version>[a particular version]</version>
</dependency>
如果 nacos-client 升級了,對應的 spring-cloud 客戶端版本不一定也同步升級,這個時候可以採用如下的方式強制升級 nacos-client(以 nacos-discovery 為例):
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>[latest version]</version>
<excludes>
<exclude>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
</exclude>
</excludes>
</dependency>
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
<version>[latest version]</version>
</dependency>
Dubbo
Dubbo 也是類似的道理,使用者通常引入的是以下的依賴:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo-registry-nacos</artifactId>
<version>[latest version]</version>
</dependency>
<!-- Dubbo dependency -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>[latest version]</version>
</dependency>
需要升級 Nacos 客戶端時,只需要如下修改依賴:
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
<version>[latest version]</version>
</dependency>
客戶端 CPU 高,或者記憶體耗盡的問題
問題的現象是依賴 Nacos 客戶端的應用,在執行一段時間後出現 CPU 佔用率高,記憶體佔用高甚至記憶體溢位的現象,可以參考 Issue
這種情況首先要做的是分析 CPU 高或者記憶體佔用高的原因,常用的命令有 top、jstack、jmap、jhat 等。其中一種情況是 Nacos 客戶端例項在 Spring Cloud Alibaba 服務框架中被反覆構造了多次,可以參考 Issue
這個問題已經得到了修復,預期會在下個 Spring Cloud Alibaba 版本中釋出。
日誌列印頻繁的問題
在老的 Nacos 版本中,往往會有大量的無效日誌列印,這些日誌的列印會迅速佔用完使用者的磁碟空間,同時也讓有效日誌難以查詢。目前社群反饋的日誌頻繁列印主要有以下幾種情況:
1、access 日誌大量列印,相關 Issue 點選
這裡。
主要表現是 {nacos.home}/logs/access_log.2019-xx-xx.log 類似格式檔名的日誌大量列印,而且還不能自動清理和滾動。這個日誌是 Spring Boot 提供的 Tomcat 訪問日誌列印,Spring Boot 在關於該日誌的選項中,沒有最大保留天數或者日誌大小控制的選項。因此這個日誌的清理必須由應用新建 Crontab 任務來完成,或者透過以下命令關閉日誌的輸出(在生產環境我們還是建議開啟該日誌,以便能夠有第一現場的訪問記錄):
server.tomcat.accesslog.enabled=false
2、服務端業務日誌大量列印且無法動態調整日誌級別。這個問題在 1.1.3 已經得到最佳化,可以透過 API 的方式來進行日誌級別的調整,調整日誌級別的方式如下:
# 調整naming模組的naming-raft.log的級別為error:
curl -X PUT '$nacos_server:8848/nacos/v1/ns/operator/log?logName=naming-raft&logLevel=error'
# 調整config模組的config-dump.log的級別為warn:
curl -X PUT '$nacos_server:8848/nacos/v1/cs/ops/log?logName=config-dump&logLevel=warn'
3、客戶端日誌大量列印,主要有心跳日誌、輪詢日誌等。這個問題已經在 1.1.3 解決,請升級到 1.1.3 版本。
叢集管理頁面,Raft Term 顯示不一致問題
在 Nacos 1.0.1 版本中,Nacos 控制檯支援了顯示當前的叢集各個機器的狀態資訊。這個功能受到比較多使用者的關注,其中一個被反饋的問題是列表中每個節點的叢集任期不一樣。如下圖所示,圖片資訊來自 Issue
對於這個任期不一致的問題,原因主要是因為獲取這個資訊的邏輯有一些問題,沒有從對應的節點上獲取叢集任期。這個問題會在下一個 Nacos 版本中修復。目前一個手動檢查叢集任期的辦法是在每個節點上執行以下命令:
curl '127.0.0.1:8848/nacos/v1/ns/raft/state'
然後在返回資訊中查詢本節點的叢集任期。因為每個節點返回的叢集任期中,只有當前節點的資訊是準確的,返回的其他節點的資訊都是不準確的。
本文為雲棲社群原創內容,未經允許不得轉載。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69949601/viewspace-2662730/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- As常見問題解決方法
- Git常見問題及解決Git
- WordPress:常見問題及解決方案
- UltraEdit常見問題及解決教程
- Flink生產環境常見問題及解決方法
- Kafka常見的問題及解決方案Kafka
- 快取常見問題及解決方案快取
- 爬蟲常見問題及解決方式爬蟲
- 5大常見開源軟體問題及解決方法
- 客戶服務常見問題及解決方法介紹
- git常見問題解決Git
- 問卷調查中常見問題及解決方法
- Android應用安全常見問題及解決方案Android
- 【FAQ】推送服務常見問題及解決方案
- 物聯網路卡常見問題及解決方案
- CrashSight 接入上報常見問題及解決方案
- Windows共享資料夾常見問題解決方法Windows
- git 常見問題及操作方法Git
- keepalived 1.3.5常見配置以及常見問題解決
- Windows 安裝 MySQL 5.7.20 教程(及常見問題解決)WindowsMySql
- RabbitMQ訊息佇列入門及解決常見問題MQ佇列
- Firefox 使用常見問題和解決方法Firefox
- Python爬蟲程式設計常見問題解決方法Python爬蟲程式設計
- 解決常見介面跨域問題跨域
- SQL Server常見問題介紹及快速解決建議SQLServer
- SAP質量管理模組常見問題及解決方案
- 【FAQ】整合分析服務的常見問題及解決方案
- 大快發行版DKhadoop安裝與配置常見問題及解決方法整理Hadoop
- 手機APP測試之ADB常見問題解決方法APP
- 【知識分享】伺服器常見異常問題及解決辦法伺服器
- h5移動端常見的問題及解決方案H5
- Java™ 教程(常見問題及其解決方案)Java
- ES系列二之常見問題解決
- 常見的死鎖情況及解決方法
- Redis常見的效能問題和解決方法UWRedis
- 開發微信小程式之HTTPS報錯常見問題彙總及解決方法微信小程式HTTP
- mount命令詳解及常見問題彙總
- 【能力提升】SQL Server常見問題介紹及快速解決建議SQLServer