重磅官宣:Nacos2.0发布,性能提升10倍
Posted 程序猿技术大咖
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了重磅官宣:Nacos2.0发布,性能提升10倍相关的知识,希望对你有一定的参考价值。
Nacos 是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。它孵化于阿里巴巴,成长于十年双十一的洪峰考验,沉淀了简单易用、稳定可靠、性能卓越的核心竞争力。
全新 2.0 架构不仅将性能大幅提升 10 倍,而且内核进行了分层抽象,并且实现插件扩展机制。
Nacos 2.0 架构层次如下图,它相比Nacos1.X的最主要变化是:
通信层统一到 gRPC 协议,同时完善了客户端和服务端的流量控制和负载均衡能力,提升的整体吞吐。
将存储和一致性模型做了充分抽象分层,架构更简单清晰,代码更加健壮,性能更加强悍。
设计了可拓展的接口,提升了集成能力,如让用户扩展实现各自的安全机制。
Nacos2.0 服务发现升级一致性模型
Nacos2.0 配置管理升级通信机制
Nacos2.0 大幅降低了资源消耗,提升吞吐性能,优化客户端和服务端交互,对用户更加友好;虽然可观测性略微下降,但是整体性价比非常高。
由于 Nacos 由服务发现和配置管理两大模块构成,业务模型略有差异,因此我们下面分别介绍一下具体压测指标。
容量及稳定状态测试
该场景主要关注随着服务规模和客户端实例规模上涨,系统性能表现。
可以看到 2.0.0 版本在 10W 级客户端规模下,能够稳定的支撑,在达到稳定状态后,CPU 的损耗非常低。虽然在最初的大量注册阶段,由于存在瞬时的大量注册和推送,因此有一定的推送超时,但是会在重试后推送成功,不会影响数据一致性。
反观 1.X 版本,在 10W、5W 级客户端下,服务端完全处于 Full GC 状态,推送完全失败,集群不可用;在 2W 客户端规模下,虽然服务端运行状态正常,但由于心跳处理不及时,大量服务在摘除和注册阶段反复进行,因此达不到稳定状态,CPU 一直很高。1.2W 客户端规模下,可以稳定运行,但稳态时 CPU 消耗是更大规模下 2.0 的 3 倍以上。
频繁变更测试
该场景主要关注业务大规模发布,服务频繁推送条件下,不同版本的吞吐和失败率。
Nacos2.0 连接容量测试
该场景主要关注不同客户端规模下的系统压力。
Nacos2.0 频繁推送测试
该场景关注不同推送规模下的系统表现。
目前 Nacos 已经完成了自研、开源、商业化三位一体的建设,阿里内部的钉钉、考拉、饿了么、优酷等业务域已经全部采用云产品 MSE 中的 Nacos 服务,并且与阿里和云原生的技术栈无缝整合。下面我们以钉钉为例简单做一下介绍。
用户流量从北向进入集团的 VPC 网络中,先通过一个统一接入 Ingress-Tengine 网关,他可以将域名解析并路由到不同的机房、单元等。本周我们也同步更新了 Tengine 2.3.3(https://github.com/alibaba/tengine/releases/tag/2.3.3)版本,内核升级到 nginx Core 1.18.0 ,支持 Dubbo 协议 ,支持 DTLSv1 和 DTLSv1.2,支持 Prometheus 格式,从而提升阿里云微服务生态完整性、安全性、可观测性。
通过统一接入层网关后,用户请求会通过 Ingress-Envoy 微服务网关,转发到对应的微服务中,并进行调用。如果需要调用到其他网络域的服务,会通过 Ingress-Envoy 微服务网关将流量导入到对应的 VPC 网络中,从而打通不同安全域、网络域和业务域的服务。
微服务之间的相互调用,会通过 Envoy Sidecar 或传统的微服务自订阅的方式进行。最终,用户请求在各个微服务的互相调用中,完成并返回给用户。
Nacos2.0 作为一个跨代版本,彻底解决了 Nacos1.X 的性能问题,将性能提升了 10 倍。并且通过抽象和分层让架构更加简单,通过插件化更好的扩展,让 Nacos 能够支持更多场景,融合更广生态。相信 Nacos2.X 在后续版本迭代后,会更加易用,解决更多微服务问题,并向着 Mesh 化进行更深入地探索。
感谢您的阅读,也欢迎您发表关于这篇文章的任何建议,关注我,技术不迷茫!
以上是关于重磅官宣:Nacos2.0发布,性能提升10倍的主要内容,如果未能解决你的问题,请参考以下文章