年终献礼 | Nacos Star 2W+ 的回顾与展望

简介: 截止目前,Nacos 已发布 40 个迭代版本,无缝支持Dubbo/Spring-Cloud/服务网格生态。吸引了 200 多位优秀贡献者,积累了虎牙、好未来、小米等多家企业案例,官网累计获取 139w+ 用户浏览;借此机会,我们代表 Nacos 社区一起回顾开源三年以来的发展历程和未来的发展方向。

作者:彦林


截止目前,Nacos Star 已突破 20000,从此迈上了一个新的里程碑,真心感谢每一位贡献者、关注者、使用者对 Nacos 的支持、信任与帮助!(鞠躬)


1.png


Nacos 是阿里巴巴三位一体[1]战略中的重要一环,它是一个更易于构建云原生生态的动态服务发现、配置管理和服务管理平台,起源于阿里巴巴内部,历经十年双十一洪峰考验的 VIPServer/Configserver/Diamond 三款产品,沉淀了简单易用、稳定可靠、性能卓越的核心竞争力,为广大开源用户提供了经过充分生产验证过的服务注册与配置中心产品。


截止目前,Nacos 已发布 40 个迭代版本,无缝支持Dubbo/Spring-Cloud/服务网格生态。吸引了 200 多位优秀贡献者,积累了虎牙、好未来、小米等多家企业案例,官网累计获取 139w+ 用户浏览;借此机会,我们代表 Nacos 社区一起回顾开源三年以来的发展历程和未来的发展方向。


2.png


2021 年 3 月我们正式发布了 Nacos 2.0 版本,至此已经有普遍的生产使用经验,在性能大幅度提升的前提下,稳定的进行技术迭代。Nacos3.0 的架构社区内已经开始逐步规划,预计很快也会和大家见面。


正处于被大规模使用的 Nacos 的第三阶段是成为基础设施,面向于基础设施进行演进,深度的拥抱各个领域内的场景,并且更深度的帮助企业解决问题。面向这个阶段,为了向大家更好的解释 Nacos 的设计理念和架构原理,帮助更多用户,更快速的熟悉并且使用Nacos,解决在实际应用中出现的问题,我们集结社区 20+ 位同学共建《Nacos 架构与原理》这本电子书,于 2021 年 12 月 21 日下午两点正式发布。


点击文末阅读原文或者复制下方链接,免费下载电子书:https://developer.aliyun.com/topic/download?id=8230


3.png


项目演进


自从 Nacos1.X 版本突破 10000 Star 后,随着用户深入和大规模使用开始逐渐暴露 Nacos1.X的性能问题,借此 Nacos 开启了 2.0 的发展阶段,全面升级了通信协议、服务一致性模型、支持服务网格生态和多语言生态,下面我们分别进行介绍。


长连接


Nacos1.x 版本主要基于 HTTP 短连接构建服务注册与发现、配置管理系统。随着用户的服务量级的增大,HTTP 短连接架构暴露了一些问题。为了克服短连接的固有的技术瓶颈,Nacos 社区针对 HTTP 短连接架构进行了一次基于长连接的重构升级。
image.gif

4.png


在 Nacos 1.X 架构中,配置中心的推送功能通过长轮询构建,周期性地由客户端主动发送 HTTP 请求并在发生更新时返回变更内容;而服务注册中心的推送则通过 UDP 推送 +HTTP 定期对账来实现。然而,配置中心的长轮训、服务注册中心的定期对账,都需要周期性地对于服务端进行一次主动建连和配置传送,增大服务端的内存开销;随着 Nacos 用户的服务数和配置数规模的增大,服务端的内存泄漏风险也大大增加。


为了更好的支撑用户的性能要求,克服 HTTP 短连接架构固有的性能瓶颈,Nacos 社区在阿里巴巴集团内部充分验证的基础上,进行了一次基于长连接的重构升级。长连接时代的 Nacos2.x 在原本 1.x 的架构基础上新增了对 gRPC 长连接模型的支持,同时保留对旧客户端和 OpenAPI 的兼容。


5.png


通信层目前通过 gRPC 实现了长连接 RPC 调用和推送能力。升级完成之后,服务变化、配置变更等信息会通过 gRPC 的双向流主动推送给客户端,而客户端只需要针对各个长连接主动发送轻量级的心跳即可。升级后的技术架构极大地减少了服务端处理数据的开销;同时,由于长连接基于可复用 TCP 的机制,也大大降低了网络堵塞的风险。压测验证:升级长连接之后,我们对 Nacos2.0 进行了大量压测。压测结果显示,Nacos2.0 能够在 10W 级规模下,稳定运行;相比 Nacos1.X 版本的 1.2W 规模,提升约 10 倍。


6.png


MCP 及 XDS 协议支持


通过对于 MCP 协议及 XDS 协议的支持,目前服务网格生态领域已完全兼容 Nacos,为 Istio接入 Nacos 注册中心提供零侵入、高性能的微服务以及网关解决方案[2],帮助用户在使用非 K8s 服务发现的情况下,仍然可以无缝享用服务网格的无侵入式的服务治理策略。


7.png


插件化支持


在插件化支持方面,Nacos 社区通过为鉴权、配置加解密、多数据源等模块进行了插件化改造,支持用户进行灵活的插件实现和改造。用户可以根据自己的业务需要,通过实现相应的 SPI 接口和 jar 包的引入,方便地进行自定义的鉴权、加解密、多数据源等附加功能的实现。


插件化升级之后,Nacos 充分实现了多种附加功能与核心功能的解耦合,可扩展性大大加强。


8.png


多语言支持


随着 Nacos2.0 对于长连接的支持,多语言客户端也迈出了一大步。


当前 Golang、Java、Python、C#等主流语言已完全拥抱 Nacos2.0,支持通过 gRPC 协议进行高性能服务注册与发现、配置管理;另外,C++、Node.js、PHP 的 2.0 客户端仍在快速迭代开发、生产验证过程中,同时希望更多社区朋友参与进来,共同构建更加完善的 Nacos 多语言生态。


生态构建


开源 3 年以来,Nacos 社区沿着三位一体[1]战略规划进行生态演进和构建,通过开源、自研、商业化相互融合提供 Nacos 产品的优异可扩展性。


自研:利用阿里巴巴集团内部超高并发的场景,对 Nacos 开源产品进行性能和高可用的充分验证;同时利用自研的技术优势,给商业化微服务引擎[3]产品赋予了更高的性能和超强的稳定性。


9.png


商业化:Nacos 充分在 2.X 系列版本中充分拥抱了云原生时代核心生态。Nacos 团队内部利用公有云技术支持阿里巴巴集团和成千上万家公司大规模上云,为 Nacos 开源以及公有云[4]产品提供了宝贵的生产实践经验,Nacos 用户可以充分享受公有云弹性红利、安全、高可用能力。


开源:开源 Nacos 进行了大量的云原生生态演进。当前Nacos社区开源生态已相对完善:(1)无缝整合 Dubbo、Nacos、Spring-cloud-alibaba/Seata/Sentinel 阿里微服务 DNS 框架,并成为国内首选;(2)无缝整合服务网格生态,让用户平滑进入服务网格时代。(3)支持 Dapr 为用户多语言多一种选择,也为微服务多语言生态多一种探索方向,欢迎感兴趣小伙伴一起推动。


10.png


展望未来


进一步云原生化


随着云原生时代的到来,Nacos 正在开展进行全面云原生化的探索。Nacos 已支持了 MCP 协议及 XDS 协议,进行了初步的生产环境实践,为用户未来平滑迁移云原生服务框架做好了准备。


未来,我们将通过开展以下工作来提供云原生支持:


1、提供轻量级的 Nacos Sidecar,为用户提供零侵入、轻量级的服务注册与发现能力;


2、支持通过 Dapr 进行 sidecar 构建,支持用户通过业务 Pod+Dapr 的方式构建微服务系统;


3、提供 ServiceMesh 化支持,将 Nacos 发展成云原生时代高性能注册中心,接入 K8s 核心生态。


更加完善的插件化体系


后期 Nacos 社区将会提供更加灵活的插件化体系,主要思路包括:


1、支持用户根据自己的业务场景,进行自定义的限流、熔断、容灾、多数据源等插件的开发和接入;


2、支持将配置中心和服务注册中心解耦,用户可以根据自己的需要将两者自由接入或删除。


更活跃的生态


Nacos 社区将和 Spring Cloud、Dubbo、Envoy、Dapr 等社区一起推动微服务架构演进和标准化。


11.png


感谢每一位贡献者


随着 Nacos2.0 的快速发展,Nacos 社区产生了一些新晋的 Committer:brotherlu-xcq、li-xiao-shuang、haoyann、horizonzy 等,这些同学在长连接实现、配置加解密模块实现、多数据源支持、插件化等核心方面作出了大量的贡献。


12.png


另外,Nacos 社区参与了由中国科学院软件研究所和openEuler社区托管的开源之夏 2021,由Wuyunfan-BUPT、li-xiao-shuang、Holdonbei、newJimmyChu 及chenhongjing 5 位同学分别完成了鉴权插件、配置加解密插件等 5 个课题,并取得了不错的进展,相信很快就可以和大家见面。


13.png


除了这些已经成为 Committer 和参加了官方活动的贡献者,Nacos 还收获了其他大量优秀的贡献者,目前已有 200+ Contributors,非常感谢你们的付出!我们一起让 Nacos 更强大!!!


14.png


最后欢迎钉钉扫码或钉钉搜索群号(31222241)加入社区贡献者队伍,共同进行 Nacos 云原生化实践!


15.png


相关链接


[1]三位一体:

https://yqh.aliyun.com/live/detail/26356


[2] 微服务以及网关解决方案

https://help.aliyun.com/document_detail/270868.html


[3] 商业化微服务引擎

https://cn.aliyun.com/product/aliware/mse?spm=nacos-website.topbar.0.0.0


[4] 公有云

https://cn.aliyun.com/product/aliware/mse?spm=nacos-website.topbar.0.0.0

相关文章
|
消息中间件 RocketMQ
rocketmq 超过4M消息体怎么发送
rocketmq 超过4M消息体怎么发送
797 1
|
人工智能 架构师 关系型数据库
第二届固件技术峰会盛大召开,共探 AI 时代固件创新之路
阿里云联合字节跳动、固件联盟主办的第二届固件技术峰会在长沙顺利召开,探索AI时代固件技术发展新趋势。
|
9月前
|
人工智能 弹性计算 Java
活动回顾:Arm 龙蜥齐携手,共筑 AI 时代开源 OS 新生态
共同探讨了开源操作系统与 Arm Neoverse 平台在人工智能(AI)时代的深度融合与创新实践。
|
8月前
|
存储 弹性计算 固态存储
阿里云服务器多少钱一年?2026年最新价格表更新,良心阿里云值得买!
2026年阿里云服务器优惠来袭!轻量应用服务器38元/年起,ECS经济型实例2核2G仅99元/年,企业级u1实例2核4G低至199元/年。香港地域轻量服务器25元/月起,4核16G、8核32G高配机型限时抢购。全地域覆盖,不限流量,续费同价,性价比超高!
1400 0
|
9月前
|
人工智能 弹性计算 自然语言处理
搭建一个网站平台需要多少钱?阿里云建站费用价格全解析
阿里云建站费用全解析:38元起/年!三种建站方式任选:自购服务器(适合有技术)、万小智AI模板建站(698元/年起,送CN域名),或云企业官网定制(5480元/年起)。价格透明,优惠多,满足个人到企业不同需求。
1461 1
|
JavaScript
成功解决:如何通过this.$router.push(“/Login“)的方式传参,在另外一个页面接收数据的问题
这篇文章介绍了如何在Vue框架中通过路由跳转传递参数,并在另一个页面接收这些参数。具体方法是使用`this.$router.push`方法的`params`属性传递对象,然后在目标页面通过`this.$route.params`接收传递的参数。
成功解决:如何通过this.$router.push(“/Login“)的方式传参,在另外一个页面接收数据的问题
|
机器学习/深度学习 人工智能 Rust
如何在AI中使用Rust
【9月更文挑战第4天】Rust 以其高性能、安全性和并发性在人工智能领域崭露头角。尽管 Python 和 R 仍为主流,Rust 的库生态系统及其独特特性使其成为需要高性能和内存安全的 AI 项目的理想选择。本文探讨 Rust 在 AI 中的应用,包括关键库(如 Candle、Linfa)和用例,并提供了一个简单的文档聚类项目示例。Rust 能够构建高效且安全的 AI 应用,是追求高性能和可靠性的开发者们的有力工具。
1323 12
|
存储 Linux 数据处理
Linux中的link命令:深入解析与实际应用
**Linux的`ln`命令详解:创建硬链接和软链接。硬链接共享相同inode,不占额外空间;软链接(符号链接)如快捷方式,可跨文件系统。使用`-s`创建软链接,`-f`强制覆盖。注意选择合适链接类型,避免循环链接,确保目标存在。**
|
前端开发 Java 数据处理
每日一道面试题之介绍一下Java Bean并谈谈它的命名规范~
每日一道面试题之介绍一下Java Bean并谈谈它的命名规范~
869 0