MSE Nacos SDK是微服務架構中的關鍵組件,用於提供高效、靈活的服務註冊與發現能力。本文將介紹如何根據技術棧和架構選擇合適的SDK版本,避開限制使用的版本。
MSE Nacos SDK的應用
MSE Nacos支援多種程式設計語言和架構的整合,以適應不同的微服務系統和業務情境。您可根據所需的技術棧和選用的架構,選擇適合您的最佳實務。
在微服務系統中,如果您業務使用的技術棧是Java:
原生SDK:通過Nacos Java SDK串連引擎,詳情請參見Java SDK。
Spring Boot:Nacos為Spring Boot架構的使用者提供了完善的接入方案,詳情請參見Nacos融合Spring Boot,成為註冊配置中心。
Spring Cloud:Nacos整合Spring Cloud,簡化Naocs的組態管理,詳情請參見Nacos整合Spring Cloud快速開始。
Dubbo:Dubbo架構通過高效能的RPC技術實現服務註冊到Nacos並相互調用,詳情請參見如何在MSE上為Dubbo應用構建服務註冊中心。
如果您業務使用的技術棧是Golang:
原生SDK:您可參考樣本工程Nacos-SDK-Go,快速搭建註冊配置中心。
Dubbo-Go:Apache Dubbo-Go支援Go使用者基於Nacos搭建RPC服務,詳情請參見Apache Dubbo-Go。
Kitex:Kitex是一款基於Golang微服務RPC架構,預設整合了Nacos註冊中心。
如果您業務使用的技術棧是Node.js:
原生SDK:Nacos提供Node.js的串連方式,詳情請參見樣本Nacos-SDK-Nodejs實現服務註冊與發現。
如果您業務使用的技術棧是Python:
您可以參考Nacos-SDK-Python,整合Nacos搭建微服務系統。
另外,MSE Nacos已全面融入服務網格Istio的生態體系,為開發人員在雲原生情境下的使用提供便利,Nacos支援以MCP標準接入,詳情請參見建立服務來源實現Nacos與服務網格的整合。
Nacos SDK限制使用版本
為了微服務系統的穩定性,建議您避免使用的Nacos SDK限制使用版本。本文給出了限制使用的版本及原因和推薦的解決方案:
Java
不推薦版本 | 不推薦原因 | 解決方案 |
0.X~1.1.X | 不支援輕量級服務心跳,導致心跳包過大,影響效能。更多資訊,請參見詳情。 | 升級至1.2.0及以上版本。 |
1.4.1 ~ 1.4.2 |
| 升級至1.4.3及以上版本。 |
2.0.0~2.0.1 | 該版本無法攜帶RAM的身份資訊,在開啟引擎用戶端鑒權後,即使配置了對應資訊,也無法擷取配置、註冊和探索服務等。 | 升級至2.0.2及以上版本。 |
2.2.0~2.2.1 | 使用EDAS或SAE部署應用程式時,若配置了參數 | 升級至2.2.2及以上版本。 |
2.3.1 | 訂閱配置時,即使配置並未發生變更,服務端也會頻繁地推送配置,造成CPU及網路的額外損耗,可能影響穩定性,請參見詳情。 | 升級至2.3.2及以上版本。 |
Go
不推薦版本 | 不推薦原因 | 解決方案 |
1.0.1~1.1.3 | 用戶端版本顯示均為1.0.1,無法準確識別用戶端版本,且同時存在兩個較嚴重Bug,可能導致頻繁通知變更或出現心跳中斷等問題。 |
|
1.1.4 | 如果訂閱的配置被刪除了, 用戶端的bug會導致不停的查詢此不存在的服務,導致大量的配置查詢請求出現,導致觸發配置查詢介面限流,影響其他應用查詢配置。更多資訊,請參見詳情。 | |
2.0.0~2.1.0 | 用戶端版本均顯示為2.0.0,無法準確識別用戶端版本,且當出現串連重連後,該版本的執行個體不會自動重新註冊和訂閱服務,導致服務掉線且無法自愈。更多資訊,請參見詳情。 | 升級至2.3.3及以上版本。 |
2.2.7~2.3.1 | 用戶端版本均顯示為2.2.7,無法準確識別用戶端版本,且可能存在兩個較嚴重BUG,可能導致無法收到服務變更通知或在串連中斷後出現服務丟失。 |
Python
不推薦版本 | 不推薦原因 | 解決方案 |
2.0.0~2.0.6 | 在串連重連後,該版本將不自動重新註冊和訂閱服務及配置,這將導致服務中斷且無法自我恢複。 | 升級至2.0.7及以上版本。 |
相關架構
Dubbo
不推薦版本 | 不推薦原因 | 解決方案 |
2.7.5及以下版本 | 訂閱多個服務時,無法擷取到Provider的地址清單變化,導致流量路由到下線或不存在的Provider上。更多資訊,請參見詳情。 | 升級至2.7.6及以上版本。 |
2.7.8 | Dubbo會建立非常多Nacos Client執行個體,從而導致串連數,線程數暴漲,極大影響用戶端和服務端穩定性。更多資訊,請參見詳情。 | 升級至2.7.9及以上版本。 |
2.7.11 | 預設依賴了Nacos-Java-Client 1.4.1版本。 |
|
2.7.19及以下版本 | Dubbo在訂閱服務時,會同時訂閱一個服務的多個服務名,但在彙總地址清單時會導致Consumer機率性找不到Provider。更多資訊,請參見詳情。 | 升級至2.7.20以上版本。 |
3.0.0~3.1.5 | 升級至3.1.6以上版本。 |
Spring Cloud Alibaba
不推薦版本 | 不推薦原因 | 解決方案 |
2.2.4以下版本 | 會覆蓋Nacos Client的日誌配置,導致大量Nacos的日誌輸出到應用的業務日誌中,對應用的問題排查造成影響。更多資訊,請參見詳情。 | 升級至2.2.6.RELEASE以上版本。 |
2.2.4.RELEASE & 2.2.5.RELEASE | 預設依賴Nacos-Java-Client 1.4.1版本。 |
|