请选择 进入手机版 | 继续访问电脑版

石家庄老站长

点击联系客服
客服QQ:509006671 客服微信:mengfeiseo
 找回密码
 立即注册
查看: 15|回复: 1

Headline:正式发布:Nacos2.0上市 性能提高10倍

[复制链接]

1

主题

1

帖子

-7

积分

限制会员

积分
-7
发表于 2021-4-2 15:15:03 | 显示全部楼层 |阅读模式
![头。png](https://UCC  . alicdn.com/pic/developer-ecology/63220024 c82 e  4284 b  4378 c11 a  546347 c  . png)

作者|石雍

来源| [阿里巴巴云基本公众号](https://MP  . weixin  . QQ.com/s/w21x  8 Dhomqq-1xkbwlurkw)

Nacos  1.0发布后,Nacos迅速被数千家企业采用,建立了强大的生态系统。但是,随着用户的深入使用,性能问题逐渐暴露,Nacos  2.0的跨代产品设计开始了,半年内全部实现,实测性能提高10倍,相信可以满足所有用户的性能要求。我代表社区向大家介绍这一代人之间的产品。

# Nacos简介

Nacos是一个动态服务发现、配置管理和服务管理平台,使云基础应用程序的构建更加容易。在阿里巴巴孵化,在10年双十一年的洪峰考验中成长,沉淀了简单、稳定、高性能的核心竞争力。

![1 . png](https://UCC  . alicdn.com/pic/developer-ecology/8533 cf  5 b  2 ef  412382191 e  935 e  9d  7 be  8 . png)

# Nacos  2.0体系结构

新的2.0体系结构不仅将性能提高10倍,还将内核分层并实施插件扩展机制。

Nacos  2.0体系结构层如下图所示。Nacos1。与x相比,最大的更改如下:

-通信层集成为gRPC协议,改善客户端和服务器端的流量控制和负载平衡功能,提高整体吞吐量。

-将存储和一致性模型完全抽象地分层,体系结构更加简单明确,代码更加坚固,性能更好。

-设计可扩展的接口,提高集成功能,如通过用户扩展实现自我安全机制。

![2 . png](3359 UCC  . alicdn.com/pic/developer-ecology/56 ba  3d  a  2 b  1704 e  39 b  29 BFA  7 b  8 b  795 e  20 . png)

## 1。Nacos2.0服务发现升级一致性模型

在Nacos2.0体系结构中,服务搜索结果客户端通过gRPC启动服务注册或订阅请求。服务器端使用Client对象记录客户端使用gRPC连接发布的服务、订阅的服务和服务之间的同步。因为实际使用习惯是服务到客户端的映射,即服务下的客户端实例。因此,2.0服务器通过构建索引和元数据来实现1 .快速生成服务信息(如x),并通过gRPC流推送服务数据。

![3 . png](3359 UCC  . alicdn.com/pic/developer-ecology/5d  7365 e  6 ea  482d  9 c  1 f  9225d  782 b  9 aa  . png)

## 2。Nacos2.0配置管理升级通信机制

在配置管理之前,使用Http1.1的Keep  Alive模式30s发送心跳模拟长链路。协议难以理解,内存消耗大,推送性能弱,2.0通过gRPC完全解决了这些问题,内存消耗大幅减少。

![4 . png](3359 UCC  . alicdn.com/pic/developer-ecology/aa4 a9c  8 ba  74150 b  0528 FB  354 de  748d  . png)

## 3。Nacos2.0体系结构优势

Nacos2.0可以大幅减少资源消耗,提高处理性能,优化客户端和服务器之间的交互,让用户更加熟悉。可观测性略有下降,但总体性价比很高。

![5 . png](3359 UCC  . alicdn.com/pic/developer-ecology/d  362961039d  744 da9d  1542024 a7 e  04 EB  . png)

# Nacos2.0性能提高

Nacos由服务发现和配置管理两个主要模块组成,业务模式略有不同,让我们分别讨论具体的压力测量指标。

## 1。提高Nacos2.0服务搜索性能

服务发现方案我们主要集中在客户端数、服务数实例数、服务用户数等大方案下,同步、推送和稳定时服务器的性能。同时,大量服务上线离线时,系统的性能也受到关注。(服务,服务,服务)。

![6 . png](3359 UCC  . alicdn.com/pic/developer-ecology/d  5 f  08d  588 dbb  444 CB  397 CB  47 b  4234 f  . png)

-* *容量和稳定性测试* *

本方案随着服务规模和客户端实例大小的增加,重点关注系统性能。

![7 . png](3359 UCC  . alicdn.com/pic/developer-ecology/d74e  23 a  0685745439 e  679d  508 adead  2 . png)

版本2.0.0可以稳定地支撑到10W级客户端规模,达到稳定状态后,CPU的损失非常低。在初始批量注册阶段,临时的批量注册和推送导致了一段时间的推送超时,但重试后推送成功,不会影响数据一致性。

相反1。x版本在10W、5W级客户端上,服务器端处于完全GC状态,推送完全失败,无法使用群集。在2W客户端大小下,服务器端的操作状态正常。
但由于心跳处理不及时,大量服务在摘除和注册阶段反复进行,因此达不到稳定状态,CPU 一直很高。1.2W 客户端规模下,可以稳定运行,但稳态时 CPU 消耗是更大规模下 2.0 的 3 倍以上。
- **频繁变更测试**
该场景主要关注业务大规模发布,服务频繁推送条件下,不同版本的吞吐和失败率。
![8.png](https://ucc.alicdn.com/pic/developer-ecology/03814038323d4617b3ed9fbb4c6ffd39.png)
频繁变更时,2.0 和 1.X 在达到稳定状态后,均能稳定支撑,其中 2.0 由于不再有瞬时的推送风暴,因此推送失败率归 0,而 1.X 的 UDP 推送的不稳定性导致了有极小部分推送出现了超时,需要重试推送。
## 2. Nacos2.0 配置管理的性能提升
由于配置是少写多读场景,所以瓶颈主要在单台监听的客户端数量以及配置的推送获取上,因此配置管理的压测性能主要集中于单台服务端的连接容量以及大量推送的比较。
![9.png](https://ucc.alicdn.com/pic/developer-ecology/31ad0ab3e81d41caaca112f1db52a69c.png)
- **Nacos2.0 连接容量测试**
该场景主要关注不同客户端规模下的系统压力。
![10.png](https://ucc.alicdn.com/pic/developer-ecology/78072667f2014a488aae3acafcb64229.png)
Nacos2.0 最高单机能够支撑 4.2w 个配置客户端连接,在连接建立的阶段,有大量订阅请求需要处理,因此 CPU 消耗较高,但达到稳态后,CPU 的消耗会变得很低。几乎没有消耗。
反观 Nacos1.X, 在客户端 6000 时,稳定状态的 CPU 一直很高,且 GC 频繁,主要原因是长轮训是通过 hold 请求来保持连接,每 30s 需要回一次 Response 并且重新发起连接和请求。需要做大量的上下文切换,同时还需要持有所有 Request 和 Response。当规模达到 1.2w 客户端时,已经无法达到稳态,所以无法支撑这个量级的客户端数。
- **Nacos2.0 频繁推送测试**
该场景关注不同推送规模下的系统表现。
![11.png](https://ucc.alicdn.com/pic/developer-ecology/7bed04f550a745779e1b75a05584aebf.png)
在频繁变更的场景,两个版本都处于 6000 个客户端连接中。明显可以发现 2.0 版本的性能损耗要远低于 1.X 版本。在 3000tps 的推送场景下,优化程度约优化了 3 倍。
## 3. Nacos2.0 性能结论
**针对服务发现场景,Nacos2.0 能够在 10W 级规模下,稳定运行;相比 Nacos1.X 版本的 1.2W 规模,提升约 10 倍**。
**针对配置管理场景,Nacos2.0 单机最高能够支撑 4.2W 个客户端连接;相比 Nacos1.X,提升了 7 倍。且推送时的性能明显好于1.X**。
![12.png](https://ucc.alicdn.com/pic/developer-ecology/9efec3af7ffe4b5b907c2d0a52ce185d.png)
# Nacos 生态及 2.X 后续规划
随着 Nacos 三年的发展,几乎支持了所有的 RPC 框架和微服务生态,并且引领云原生微服务生态发展。
![13.png](https://ucc.alicdn.com/pic/developer-ecology/ebbd87b035e34c6cb06df916ea5d0fd5.png)
Nacos 是整个微服务生态中非常核心的组件,它可以无缝和 K8s 服务发现体系互通,通过 MCP/XDS 协议与 Istio 通信,将 Nacos 服务下发 Sidecar;同样也可以和 CoreDNS 联合,将 Nacos 服务通过域名模式暴露给下游调用。
Nacos 目前已经和各类微服务 RPC 框架融合进行服务发现;另外可以协助高可用框架 Sentinel 进行各类管理规则的控制和下发。
如果只使用 RPC 框架,有时候并不足够简单,因为部分 RPC 框架比如 gRPC 和 Thrift,还需要自行启动 Server 并告知 client 该调用哪个 IP。这时候就需要和应用框架进行融合,比如 SCA、Dapr 等;当然也可以通过 Envoy Sidecar 来进行流量控制,应用层的RPC就不需要知道服务 的 IP 列表了。
最后,Nacos 还可以和各类微服务网关打通,实现接入层的分发和微服务调用。
## 1. Nacos 生态在阿里的实践
目前 Nacos 已经完成了自研、开源、商业化三位一体的建设,阿里内部的钉钉、考拉、饿了么、优酷等业务域已经全部采用云产品 MSE 中的 Nacos 服务,并且与阿里和云原生的技术栈无缝整合。下面我们以钉钉为例简单做一下介绍。
![14.png](https://ucc.alicdn.com/pic/developer-ecology/63e8a53ad8bc4cdca14cef1e719c50e1.png)
Nacos 运行在[微服务引擎 MSE](https://cn.aliyun.com/product/aliware/mse?spm=nacos-website.topbar.0.0.0)(全托管的 Nacos 集群)上,进行维护和多集群管理;业务的各类 Dubbo3 或 HSF 服务在启动时,通过 Dubbo3 自身注册到 Nacos 集群中;然后 Nacos 通过 MCP 协议将服务信息同步到 Istio 和 Ingress-Envoy 网关。
用户流量从北向进入集团的 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 或传统的微服务自订阅的方式进行。最终,用户请求在各个微服务的互相调用中,完成并返回给用户。
## 2. Nacos 2.X 的规划
Nacos2.X 将在 2.0 解决性能问题的基础上,通过插件化实现新的功能并改造大量旧功能,使得 Nacos 能够更方便,更易于拓展。
![15.png](https://ucc.alicdn.com/pic/developer-ecology/c9ca78dfea414789806419152b16b28a.png)
# 总结
Nacos2.0 作为一个跨代版本,彻底解决了 Nacos1.X 的性能问题,将性能提升了 10 倍。并且通过抽象和分层让架构更加简单,通过插件化更好的扩展,让 Nacos 能够支持更多场景,融合更广生态。相信 Nacos2.X 在后续版本迭代后,会更加易用,解决更多微服务问题,并向着 Mesh 化进行更深入地探索。
## 加入我们
欢迎大家在 **Nacos Github **上提交 issue 与 PR 进行讨论和贡献,或加入 Nacos 社区群参与社区讨论。也趁此机会感谢参与 Nacos 贡献的 200+小伙伴!感谢你们对中国开源事业的推动 !
**Nacos Github**:[_https://github.com/alibaba/nacos_](https://github.com/alibaba/nacos)
除了参与开源,我们也欢迎更多有能力及有意愿的同学加入阿里云共建云原生,详情可查看职位链接:
[_https://job.alibaba.com/zhaopin/position_detail.htm?trace=qrcode_share&positionCode=GP708029_](https://job.alibaba.com/zhaopin/position_detail.htm?trace=qrcode_share&positionCode=GP708029)
回复

使用道具 举报

0

主题

151

帖子

-134

积分

限制会员

积分
-134
发表于 2021-4-2 17:33:05 | 显示全部楼层
小手一抖,积分到手!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|无图版|手机版|小黑屋|石家庄@IT精英团

GMT+8, 2021-5-10 16:40 , Processed in 0.064589 second(s), 25 queries .

Powered by Discuz! X3.4

© 2001-2021 Comsenz Inc.

快速回复 返回顶部 返回列表