其他
阿里的 Nacos 2.0 正式发布,性能大幅提升 10 倍!
# 1.X架构存在的问题
# Nacos 2.x 架构的优缺点
优点
客户端不再需要定时发送实例心跳,只需要有一个维持连接可用 keepalive 消息即可。重复 TPS 可以大幅降低。 TCP 连接断开可以被快速感知到,提升反应速度。 长连接的流式推送,比 UDP 更加可靠;nio 的机制具有更高的吞吐量,而且由于可靠推送,可以加长客户端用于对账服务列表的时间,甚至删除相关的请求。重复的无效 QPS 可以大幅降低。 长连接避免频繁连接开销,可以大幅缓解 TIME_ WAIT 问题。 真实的长连接,解决配置模块 GC 问题。 更细粒度的同步内容,减少服务节点间的通信压力。
缺点
内部结构复杂度上升,管理连接状态,连接的负载均衡需要管理。 数据由原来的无状态,变为与连接绑定的有状态数据,流程链路更长。 RPC 协议的观测性不如 HTTP。即使 gRPC 基于 HTTP2.0 Stream 实现,仍然不如直接使用 HTTP 协议来的直观。
# 性能提升
压测时服务及实例容量达到百万级,集群运行持续稳定,达到预期;(该场景没有计算频繁变更导致的频繁推送内容,仅单纯计算容量上线,附带推送的真实场景将在下轮压测报告中给出) 注册/注销实例 TPS 达到 26000 以上,总体较 Nacos1.X 提升至少 2 倍,接口达到预期; 查询实例 TPS 能够达到 30000 以上,总体较 Nacos1.X 提升 3 倍左右,接口达到预期;
# 兼容性
配置中心
完全兼容 1.X 客户端所有 API 接口方法 完全实现 2.X 客户端所有 API 接口方法 完全兼容所有配置中心相关 openAPI
服务发现
查看当前集群 leader(将废弃) 批量更新实例元数据(Beta,不支持) 批量删除实例元数据(Beta,不支持)
控制台
完全兼容配置中心相关页面及功能 完全兼容权限控制相关页面及功能 完全兼容命名空间相关页面及功能 完全兼容集群管理相关页面及功能 完全兼容服务发现相关页面及功能
Spring Cloud Alibaba 适配
<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>