Nacos引擎类型分为专业版和基础版,并且每个版本根据其开源特性又推出了开源核心版本和MSE优化版本。本文介绍如何在MSE控制台上升级Nacos引擎版本,您可根据当前Nacos版本类型选择合适的引擎版本进行升级。

前提条件

背景信息

Nacos根据其开源特性分为开源核心版本MSE优化版本,关于Nacos引擎不同版本的功能特性,请参见版本特性

Nacos基础版升级为专业版

说明
  • 目前仅支持Nacos引擎升级到专业版,Zookeeper和Eureka没有专业版,只能进行引擎规格、节点数和公网带宽的变更。具体操作,请参见变更实例规格
  • 目前仅支持Nacos引擎1.2.1.0及以上版本升级至专业版,若您目前使用的是1.1.3.x版本,则需要先升级至1.2.1版本。具体操作,请参见Nacos 1.1.3版本升级为1.2.1版本
  • 为了保证数据一致性及升级过程的稳定性,Nacos会在升级过程中对注册的服务数据进行双写,因此升级前请确保集群的提供者实例数低于对应规格的基础版最大实例数,避免升级时的双写对业务造成影响。相关内容,请参见微服务注册配置中心实例能力评估
  • 关于MSE基础版和专业版引擎对比信息,请参见微服务注册配置中心版本选型
  1. 登录MSE管理控制台
  2. 在左侧导航栏选择注册配置中心 > 实例列表
  3. 在顶部菜单栏选择地域。
  4. 实例列表页面选择待变更规格模式的MSE实例,单击操作列的实例规格变更
  5. 变配页面产品版本区域选择专业版,然后配置引擎规格集群节点数等。
    专业版升级
  6. 选中《MSE后付费服务协议》
  7. 单击立即购买
    引擎版本升级成功后,在实例列表页面,单击目标实例的实例ID或名称,在实例基础信息页面,可以查看您的实例产品版本变更为专业版

Nacos引擎MSE优化版本升级

注意
  • 实例升级持续时间10分钟左右,期间无法在控制台对该实例进行任何操作。建议在业务低峰期时进行升级,避免升级对业务造成影响。
  • 节点数量为3节点及以上的实例,各个节点会进行滚动发布,并自动完成数据同步,保证升级无损;节点数量为1节点和2节点的实例属于非高可用实例,升级无法做到无损。
  • 对业务运行来讲升级是无损的,但因为升级导致的网络重连,会链接重连的日志以及重启导致监控数据短暂抖动。
  1. 登录MSE管理控制台
  2. 在左侧导航栏选择注册配置中心 > 实例列表
  3. 在顶部菜单栏选择地域。
  4. 实例列表页面单击目标实例版本列下方的可升级
    说明 如果目标实例类型已经是最新版本,将不会出现可升级字样。
  5. 集群升级对话框中单击确认
    引擎版本升级成功后,在实例列表页面,目标Nacos实例版本列下方将不再出现可升级字样。

Nacos 1.1.3版本升级为1.2.1版本

说明 目前Nacos 1.1.3版本已经下线,不再单独维护。为避免造成使用上的问题,请尽快升级至1.2.1及以上版本。
  1. 登录MSE管理控制台
  2. 在左侧导航栏选择注册配置中心 > 实例列表
  3. 在顶部菜单栏选择地域。
  4. 实例列表页面选择待升级的Nacos实例,单击操作列的升级图标,选择升级
  5. 升级对话框中单击确认
    返回实例列表页面,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 unregisteredClient 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分钟。如果出现该问题,请等待一段时间后重试。