Nacos引擎類型分為專業版和開發版(基礎版已停止售賣及功能更新),同時Nacos有自身的引擎版本。本文介紹如何在MSE控制臺上升級Nacos引擎版本。您可以將基礎版升級為專業版或開發版,或者選擇合適的Nacos引擎版本進行升級。
前提條件
背景信息
MSE注冊配置中心的產品版本分為專業版和開發版(基礎版已停止售賣及功能更新,即使用基礎版的用戶將無法享受新功能),同時Nacos有自身的引擎版本。關于Nacos引擎不同版本的功能特性,請參見Nacos引擎版本說明。
對于升配降配,如果是基礎版實例可升級為開發版和專業版;開發版只可升級為開發版,不可升級為企業版;企業版只可升級為企業版,不可降級為開發版。
Nacos基礎版升級為專業版或開發版
目前僅支持Nacos引擎1.2.1.0及以上版本升級至專業版或開發版,若您目前使用的是1.1.3.x版本,則需要先升級至1.2.1版本。具體操作,請參見Nacos 1.1.3版本升級為1.2.1版本。
為了保證數據一致性及升級過程的穩定性,Nacos會在升級過程中對注冊的服務數據進行雙寫,因此升級前請確保集群的提供者實例數低于對應規格的基礎版最大實例數,避免升級時的雙寫對業務造成影響。相關內容,請參見微服務注冊配置中心實例能力評估。
關于MSE基礎版、專業版和開發版引擎的對比信息,請參見微服務注冊配置中心版本選型。
登錄MSE注冊配置中心管理控制臺,并在頂部菜單欄選擇地域。
在左側導航欄,選擇注冊配置中心 > 實例列表。
在實例列表頁面,單擊目標MSE實例操作列下方的更多。
對于付費方式為包年包月的實例,根據需要選擇升配或降配。
對于付費方式為按量付費的實例,選擇升配降配。
說明如果目標實例類型已經是最新版本,可單擊操作列下方的升配,進入變配頁面對實例進行擴縮容。
在變配頁面,根據需要選擇產品版本,然后配置引擎規格、集群節點數等。
專業版當前為多節點實例,開發版當前為單節點實例。
在變更產品版本時,各版本變更有以下限制:
基礎版實例可升級為開發版和專業版。
開發版實例只可升級為開發版,不可升級為專業版。
專業版實例只可升級為專業版,不可降級為開發版。
確認訂單。
單擊立即購買。
在確認訂單頁面,仔細閱讀并勾選服務協議,然后單擊去支付。
Nacos引擎MSE優化版本升級
實例升級持續時間約為10分鐘,期間無法在控制臺對該實例進行任何操作。建議在業務低峰期時進行升級,避免升級對業務造成影響。
節點數量為3節點及以上的實例,各個節點會進行滾動發布,并自動完成數據同步,保證升級無損;節點數量為1節點和2節點的實例屬于非高可用實例,升級無法做到無損。
對業務運行來講升級是無損的,但因為升級導致的網絡重連,會導致鏈接重連的日志以及重啟導致監控數據短暫抖動。
登錄MSE注冊配置中心管理控制臺,并在頂部菜單欄選擇地域。
在左側導航欄,選擇注冊配置中心 > 實例列表。
在實例列表頁面,單擊目標實例產品版本列下方的手動升級。
說明如果目標實例類型已經是最新版本,將不會出現手動升級字樣。
您還可以在實例列表中單擊需要升級的實例。在基礎信息頁面,單擊引擎版本右側的手動升級。
在集群升級對話框,單擊確定。
Nacos 1.1.3版本升級為1.2.1版本
目前Nacos 1.1.3版本已經下線,不再單獨維護。為避免造成使用上的問題,請盡快將引擎版本升級至1.2.1及以上版本。
如果需要將引擎版本升級至開發版或專業版的2.x版本,需先將引擎升級至1.2.1,再進行升配。
登錄MSE注冊配置中心管理控制臺,并在頂部菜單欄選擇地域。
在左側導航欄,選擇注冊配置中心 > 實例列表。
在實例列表頁面,選擇待升級的Nacos實例,單擊操作列下的圖標,選擇升級引擎版本。
在集群升級對話框,單擊確定。
返回實例列表頁面,Nacos實例版本成功由1.1.3升級到1.2.1。
升級過程中的常見問題
問:升級到專業版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,可通過指定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,也可以通過指定Nacos Client的方式升級Nacos Client版本。例如:
<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>
重要Dubbo 2.7.8版本存在比較嚴重的問題,會導致創建非常多Nacos Client實例,從而導致連接數、線程數暴漲,請在升級Nacos Client前,務必先升級Dubbo的版本。相關內容,請參見問題詳情。
問:MSE升級到專業版,應用升級客戶端后,出現啟動報錯:
Connection is unregistered
或Client not connected,current status:STARTING
。答:原因是客戶端gRPC無法和服務端創建連接,請先使用
telnet ${nacos.server.address}:9848
測試,查看網絡是否暢通,應用所在網絡是否與MSE網絡處于同一個VPC下。如果使用的是公網網絡,請先設置公網白名單,具體操作,請參見設置白名單。另外,客戶端不需要修改應用設置的端口配置,仍然配置為8848,Nacos Client會自動為您計算gRPC端口。
問: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分鐘。如果出現該問題,請等待一段時間后重試。