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分钟。如果出现该问题,请等待一段时间后重试。