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

本文涉及的产品
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
可观测可视化 Grafana 版,10个用户账号 1个月
可观测监控 Prometheus 版,每月50GB免费额度
简介: 截止目前,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

相关文章
|
存储 Go 数据安全/隐私保护
Golang 语言怎么使用 Viper 管理配置信息?(下)
Golang 语言怎么使用 Viper 管理配置信息?(下)
199 0
|
文件存储 Docker 智能硬件
DIY nas之casaOS云系统&Home Assistant
CasaOS是一个基于Docker生态系统的开源家庭云系统,专为家庭场景而设计,它可以让您创建自己的云服务器
2427 1
|
监控 网络协议 Go
Golang抓包:实现网络数据包捕获与分析
Golang抓包:实现网络数据包捕获与分析
|
3月前
|
存储 安全 文件存储
改造旧手机,秒变家庭存储服务器
本文介绍了如何利用旧手机安装AList Flutter搭建内网服务器,以替代传统云存储和NAS。方案兼顾文件安全与下载速度,且成本低廉,适合个人用户。内容包括所需工具、安装步骤及基础配置,帮助用户快速实现本地化文件管理。后续还将介绍如何实现公网访问。
642 1
|
3月前
|
测试技术 数据安全/隐私保护 Python
刷视频脚本,抖音快手小红书,自动看广告刷视频【python】
这个代码示例展示了如何使用Selenium和PyAutoGUI模拟视频观看行为,包括登录、观看视频
|
8月前
|
自然语言处理 Prometheus 监控
基于DeepSeek的智能客服系统实战:从开发到部署
本文详细介绍如何将基于DeepSeek的智能客服系统从开发到部署,涵盖服务器选择、环境配置、代码部署及Web服务器设置。通过具体案例和代码示例,讲解系统上线步骤,并介绍使用Prometheus、Grafana等工具进行性能监控的方法。此外,针对高并发、API调用失败等常见问题提供解决方案,确保系统的稳定运行。最后强调数据安全与隐私保护的重要性,帮助读者全面掌握智能客服系统的部署与维护。
|
9月前
|
人工智能 自然语言处理 搜索推荐
《深度剖析:开源与闭源模型,AI舞台上的不同角色》
在人工智能领域,开源与闭源模型各有优劣。闭源模型由大公司精心打造,初始性能优越,但优化受限;开源模型则依靠社区力量,灵活性高、迭代迅速,长期潜力大。在学术研究中,开源模型透明性高,利于创新;商业应用上,闭源模型稳定性强,适合高要求场景。资源受限环境中,开源模型更易裁剪优化。企业和开发者应根据需求选择合适模型,两者共同推动AI发展。
974 9
|
JavaScript 开发工具 git
Vue 获得 vue.min.js 文件
Vue 获得 vue.min.js 文件
517 0
|
存储 资源调度 大数据
云计算在大数据分析中的弹性资源调度策略
云计算在大数据分析中的弹性资源调度策略
|
安全 数据可视化 Java
linux安装ElasticSearch7.1和 kibana 启动
linux安装ElasticSearch7.1和 kibana 启动
229 1