MSE註冊配置中心普通執行個體分為專業版和開發版(基礎版已停止售賣及功能更新),同時MSE Nacos有自身的引擎版本。本文介紹如何在MSE控制台上升級Nacos引擎版本。
升級背景
為了提供更優質的服務,簡化MSE註冊配置中心版本選型,MSE註冊配置中心將於北京時間2025年03月03日12點整,停止基礎版的服務並釋放執行個體資源。屆時您將無法通過控制台或應用端訪問停機執行個體。在2025年03月03日12點之前,基礎版執行個體的相關支援和工單服務仍正常提供。詳細通知請參見MSE註冊配置中心基礎版下線公告。
升級前的準備工作
-
執行個體版本選型:升級前,請參考執行個體版本選型指南選擇升級開發版還是專業版,不同版本的計費詳情請參考普通執行個體計費概述。
-
規格評估:為了保證資料一致性及升級過程的穩定性,MSE Nacos會在升級過程中對註冊的服務資料進行雙寫,因此升級前請確保叢集的提供者執行個體數低於對應規格的基礎版最大執行個體數,避免升級時的雙寫對業務造成影響。相關內容,請參見普通執行個體能力評估。
-
引擎版本檢查:目前僅支援Nacos引擎1.2.1.0及以上版本升級至專業版或開發版,若您目前使用的是1.1.3.x版本,則需要先升級至1.2.1版本,然後進行執行個體版本升級。具體操作,請參見Nacos引擎版本升級。
-
引擎版本相容性說明:MSE Nacos引擎不同版本的功能特性,請參見Nacos引擎版本。為了您系統的穩定性,建議您避免使用Nacos SDK限制使用版本,限制使用的原因及解決方案請參見Nacos SDK限制使用版本。
-
Eureka引擎:Eureka引擎的MSE託管商品已下線。MSE Nacos支援Eureka協議,能夠相容Eureka用戶端,建議您將 Eureka基礎版執行個體遷移到MSE Nacos專業版或開發版執行個體。
升級影響說明
-
升級期間約為 10 分鐘,期間無法在控制台對該執行個體進行任何操作。建議在業務低峰期時進行升級,避免對業務造成影響。
-
節點數量為3 節點及以上的執行個體,各個節點會進行滾動發布,並自動完成資料同步,保證升級無損。
-
對業務運行大多數情況來說,升級是無損的,但因升級導致的網路重連,會產生少量重連及訪問報錯的日誌,屬於正常現象,監控資料也會因為重啟叢集產生短暫波動。
-
在一些特殊情境下,可能無法保證升級無損,請在操作前檢查是否有如下情況:
-
節點數量為 1 節點和 2 節點的執行個體屬於非高可用執行個體,升級無法做到無損。
-
使用了較低版本用戶端,極低機率因為升級時網路丟包等特殊未知異常,觸發低版本用戶端 BUG,導致商務服務掉線,升級無法做到無損。
-
使用了低版本的 Spring Cloud Alibaba,並將 Spring Cloud 內建的 Actuator 健全狀態檢查路徑配置成為了業務的
存活探針(liveness)或就緒探針(readiness),由於低版本 Spring Cloud Alibaba 的 Bug,極低機率因為探針失敗導致業務自動重啟,升級無法做到無損。
-
-
Eureka 引擎升級 Nacos 專業版或開發版時:
-
無需修改應用代碼。
-
升級期間導致網路重連,可能存在極小部分註冊執行個體心跳續約失敗,Eureka 用戶端會在下次續約時自動重試註冊,串連到正常服務端節點後會自動回復。
-
Eureka 基礎版預設遷移升級到的 Nacos 開發版/專業版的服務引擎版本是 2.1.2.2,後續可參考Nacos 引擎版本升級,將 Nacos 開發版/專業版升級到最新版本。
-
升級路徑
目前僅支援Nacos引擎1.2.1.0及以上版本從基礎版升級至專業版或開發版,若您目前使用的是1.1.3.x版本,則需要先升級至1.2.1版本。具體操作,請參見Nacos引擎版本升級。
Nacos引擎版本升級
-
目前Nacos 1.1.3版本已經下線,不再單獨維護。為避免造成使用上的問題,請儘快將引擎版本升級至1.2.1及以上版本。
-
升級後控制台上不支援版本復原,如有問題請搜尋DingTalk群號43525005207加入DingTalk群進行反饋。
-
登入MSE註冊配置中心控制台,並在頂部功能表列選擇地區。
-
在左側導覽列,選擇注册配置中心 > 实例列表。
-
控制台上支援以下兩種方式進行升級操作:
說明如果目標執行個體類型已經是最新版本,將不會出現手动升级字樣。
方式一
在实例列表頁面,單擊目標執行個體引擎版本列下方的手动升级。
方式二
在实例列表中單擊需要升級的執行個體,在基礎資訊頁面,單擊引擎版本右側的手动升级。
-
在集群升级對話方塊,單擊确定。
Nacos/Eureka基礎版升級為專業版或開發版
-
登入MSE註冊配置中心控制台,並在頂部功能表列選擇地區。
-
在实例列表頁面,單擊目標MSE執行個體操作列下方的更多。
-
對於訂用帳戶的執行個體,根據需要單擊升配或降配。
-
對於隨用隨付的執行個體,單擊升配降配。
-
-
在變更配置頁面,根據需要選擇产品版本:
-
對於單節點執行個體:選擇開發版;
-
對於多節點執行個體:選擇專業版。
重要在變更产品版本時,有如下限制:
-
基础版執行個體可升級為开发版和专业版。
-
开发版執行個體只可升級為开发版,不可升級為专业版。
-
专业版執行個體只可升級為专业版,不可降級為开发版。
-
-
確認引擎规格和集群节点数,以及頁面右下角的金額無誤後,單擊立即購買。
升級常見問題
用戶端版本相關
升級到專業版Nacos 2.0.0後,能否支援舊版本用戶端?
答:配置中心相容並支援Nacos Client 1.0.0之後的所有用戶端版本,服務發現相容Nacos Client 1.2.0之後的所有用戶端版本。 但Nacos Client 1.x.x的用戶端版本不具有長串連能力,因此建議使用Nacos Client 2.0.0之後的用戶端版本。
我使用的是Spring Cloud Alibaba或Dubbo,如何升級用戶端?
Spring Cloud Alibaba
對於Spring Cloud Alibaba,可通過指定Nacos Client的方式,升級Nacos Client版本。例如:
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>${springcloudalibaba.version}</version>
<exclusions>
<exclusion>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>${springcloudalibaba.version}</version>
<exclusions>
<exclusion>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
<version>2.0.2</version>
</dependency>
Dubbo
對於Dubbo,也可以通過指定Nacos Client的方式升級Nacos Client版本。例如:
Dubbo 2.7.8版本存在比較嚴重的問題,會導致建立非常多Nacos Client執行個體,從而導致串連數、線程數暴漲,請在升級Nacos Client前,務必先升級Dubbo的版本。相關內容,請參見問題詳情。
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-registry-nacos</artifactId>
<version>${dubbo.version}</version>
<exclusions>
<exclusion>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
<version>2.0.2</version>
</dependency>
版本升級後報錯
報錯:Connection is unregistered或Client not connected,current status:STARTING
-
現象:MSE升級到專業版,應用升級用戶端後,出現啟動報錯:
Connection is unregistered或Client not connected,current status:STARTING。 -
原因:用戶端gRPC無法和服務端建立串連,請參考以下步驟進行排查:
-
使用
telnet ${nacos.server.address}:9848測試,查看網路是否暢通。 -
檢查應用所在網路是否與MSE網路處於同一個VPC下。
-
如果使用的是公網網路,請先設定公網白名單,具體操作,請參見設定白名單。
-
-
另外,用戶端不需要修改應用設定的連接埠配置,仍然配置為8848,Nacos Client會自動為您計算gRPC連接埠。
報錯:Nacos cluster is running with 1.X mode, can't accept gRPC request temporarily.
-
現象:MSE升級到專業版,應用升級用戶端後,出現啟動報錯:
"Nacos cluster is running with 1.X mode, can't accept gRPC request temporarily.”。 -
原因分析:MSE專業版進行中舊版本資料和新版本資料的同步雙寫和校正,以確保升級切換後資料一致。因此會在校正完成前暫時拒絕Nacos Client 2.0.0版本用戶端發來的請求,此時Nacos Client 1.x.x版本的用戶端請求和控制台請求不會受到影響。待資料同步和校正完成,MSE專業版會自動切換;同步雙寫和校正過程依據執行個體規模大小會有所不同,一般持續5~20分鐘。
-
建議:如果出現該問題,請等待一段時間後重試。