vlambda博客
学习文章列表

Nacos 2.0.0 发布,性能提升10倍

nacos2 架构模型

Nacos 2.X 在 1.X 的架构基础上 新增了对长连接模型的支持,如上图所示通信层目前通过 grpc 实现了长连接 RPC 调用和推送能力,使用长链接的好处大幅度减少了 1.x 轮询心跳频繁导致 JVM Full GC。

性能提升

Nacos2 服务发现性能测试都是针对重点功能,通过对 3 节点规模集群进行压测,可以看到接口性能负载和容量,以及对比相同/类似场景下 Nacos1.X 版本的提升。

  • 压测时服务及实例容量达到百万级,集群运行持续稳定,达到预期;(该场景没有计算频繁变更导致的频繁推送内容,仅单纯计算容量上线,附带推送的真实场景将在下轮压测报告中给出)
  • 注册/注销实例 TPS 达到 26000 以上,总体 较 Nacos1.X 提升至少 2 倍,接口达到预期;
  • 查询实例 TPS 能够达到 30000 以上,总体 较 Nacos1.X 提升 3 倍左右,接口达到预期;

兼容性

配置中心

  • 完全兼容 1.X 客户端所有 API 接口方法
  • 完全实现 2.X 客户端所有 API 接口方法
  • 完全兼容所有配置中心相关 openAPI

服务发现

  • 由于服务发现的数据模型发生了比较重大的改变,因此以下功能暂时未支持。

查看当前集群 leader(将废弃)
批量更新实例元数据(Beta,不支持)
批量删除实例元数据(Beta,不支持)

控制台

  • 完全兼容 配置中心相关页面及功能
  • 完全兼容 权限控制相关页面及功能
  • 完全兼容 命名空间相关页面及功能
  • 完全兼容 集群管理相关页面及功能
  • 完全兼容 服务发现相关页面及功能

Spring Cloud Alibaba 适配

由于目前 spring cloud alibaba 2.2.5 版本内置的 nacos-client 为 1.4.1 ,可通过指定 nacos-client 方式,提前使用 Nacos2.0 长连接功能。

    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        <version>2.2.5.RELEASE</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>2.2.5.RELEASE</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.0</version>
    </dependency>

下载地址

  • github 下载地址 [1]
  • 国内下载镜像 [2]

参考资料

[1] [2]

国内下载镜像: https://mirror.pig4cloud.com/nacos/nacos-2.0.0.zip