Nacos 2.0 性能提升十倍,贡献者 80% 以上来自阿里之外

简介: 3 月 20 日,Nacos 2.0 正式发布。Nacos 是阿里巴巴在 2018 年开源的一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台,也可以理解为微服务的注册中心 + 配置中心。

1.png

来源 | 阿里巴巴云原生公众号

3 月 20 日,Nacos 2.0 正式发布。Nacos 是阿里巴巴在 2018 年开源的一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台,也可以理解为微服务的注册中心 + 配置中心。

Nacos 目前在获取用户和开源社区运维上都取得了不错的成绩。据 Nacos 联合创始人李艳林介绍,在一次 2245 人样本的开发者调研中显示,用户在注册中心的选择上,选择 Nacos 的开发者已经达到了 49%。Nacos 在同领域中已经是国内开发者的首选。

此外 Nacos 开源社区的贡献者有 80% 以上来自阿里之外,贡献了 Nacos 的 20% 左右的代码,尤其 Nacos 多语言部分,全部由外部开发者贡献,并且保持着不错的迭代速度。

而此次大升级,相较 1.x 版本,Nacos 2.0 性能提升了 10 倍,内核进行了分层抽象,并且实现插件扩展机制。未来 Nacos 计划通过集成主流 Sidecar 技术完成对 Nacos 多语言生态和云原生生态的整合。

为进一步了解 Nacos 是如何完成 2.0 架构大升级,实现 10 倍性能提升的,以及 Nacos 社区运营经验和未来规划。OSCHINA 邀请 Nacos 联合创始人为我们做了深入解读。

Nacos 之于微服务 = Etcd 之于 K8s

Q:首先介绍下自己吧,如个人背景、与 Nacos 项目是如何结缘的等等?

A:大家好,我是李艳林,花名彦林,阿里云软负载团队负责人,Nacos 联合创始人。阿里云产品 MSE 创始人。

随着开源对云计算行业影响越来越大,2018 年阿里加大了对开源的投入,我有幸参与 Nacos 开源工作,围绕着 Dubbo/Spring-cloud-alibaba 阿里微服务生态,提供开发者完整的微服务解决方案。

Q:介绍下 Nacos 诞生、发展的历史吧

A:Nacos 在阿里巴巴起源于 2008 年五彩石项目(完成微服务拆分和业务中台建设),成长于十年双十一的洪峰考验,沉淀了简单易用、稳定可靠、性能卓越的核心竞争力。随着云计算兴起,2018 年我们深刻感受到开源软件行业的影响,因此决定将 Nacos(阿里内部 Configserver/Diamond/Vipserver 内核) 开源,输出阿里十年的沉淀,推动微服务行业发展。

2.png

2018 年我们将 Nacos 正式开源,并快速成为国内最受关注开源产品,虎牙也最早跟进参与了 Nacos 的开发,并且大规模生产落地,后续视频行业快速跟随采用。

3.png

2018 年 Nacos 开源,meetup @ 深圳

 

2019 年我们发布 Nacos 1.0版本,标志着 Nacos 功能稳定成熟,并且支持了几乎所有的微服务框架和编程语言,由此 Nacos 被广泛使用,Nacos 也进入了高速发展期。

4.png

2019 年 Nacos 1.0 发布,Nacos Meetup @ 杭州

 

2020 年新年伊始 Nacos Star 数破万,并且我们陆续发 1.X 多个版本,完成了存储和一致性模型的抽象分层,架构跟清晰和稳健,Nacos 也进入大规模使用期。

2021 年我们发布 Nacos2.0 版本,性能提升十倍,Nacos 进入第二发展曲线,以性能、高可用、生态为核心竞争力,继续保持高速发展。

Q:您认为 Nacos 在云原生中间件江湖中的地位如何

A:Nacos 首先在同领域中已经是国内开发者的首选,Nacos 2.0 发布后有开发者自发发起调研,看大家注册中心的选项,从调研结果来看,选择 Nacos 的开发者已经达到了 49%。随着 2.0 发布,Nacos 的竞争优势正在不断扩大。

5.png

Nacos 代表的注册中心和配置中心在云原生中间件中就是最核心的服务,因为分布式后首先要解决的就是寻址问题。

我也可以做一个类比,Nacos 相对于微服务的地位,就跟 Etcd 相对 K8s 地位是一样的。

2.0 架构升级

Q:Nacos 2.0 服务发现、配置管理性能提升 10 倍具体是怎么做到的,具体是哪些场景,测试方式是什么?背后对应的是哪些技术架构的升级

A:18 年开源的时候考虑到简单易用,我们基于内部产品内核做了一些取舍,如通信协议改成了 http 模式,这样简单,多语言容易实现,但是短链接确实性能弱了一些。

服务模型上我们有持久化和非持久化两种模式,开源的时候我们考虑持久化模式可以做更多的服务治理能力,但是发展一段时间够发现外面主流场景都是非持久化服务,但是也为性能问题埋了一些坑,主要模型不太匹配,当然我们现在做了很好的抽象和统一才能比较好的解决这个问题。对于 Dubbo 和 Spring-cloud-alibaba 这种最常规的非持久化服务性能提升最明显。

测试方式主要是针对服务和配置的关键的使用场景构建了几个典型的压测模型进行压测。

核心升级了通信协议、一致性模型、架构分层和抽象。

Q:这次升级到 2.0 过程中有没有遇到一些技术难题,是怎么解决的

A

  • 长连接协议选型:我们内部有一个私有长链接协议,市场上有 gRPC/Rsocket 两个主流选择,我们为了兼容必须做好扩展抽象,为了多语言容易实现和集成我们也做了很多压测验证。最终选择了 gRPC。从模型上看 Rsocket 的推模型对于 Nacos 更合适,在生态和多语言支持上 gRPC 更合适,综合平衡我们选择了 gRPC,并且做好扩展,以便后续有更好的选择。
  • 服务一致性模型:Nacos 底层服务分为持久化服务和非持久化服务,在一致性模式和存储方式上有比较大差别,经过漫长时间打磨,我们把模型做好了抽象和融合,把每个场景性能都发挥到极致。
  • 无缝升级方案:一般开源产品协议的跨代升级基本都是不考虑兼容的,但是由于 Nacos 有广泛用户基础,因此我们还是消耗了巨大的精力做好兼容工作,以便让所有用户能够升级享受到这些红利。

Q:听说阿里内部已经有了百万实例的案例,具体是指什么,可以详细介绍下吗
A:2020 年面对云原生大的趋势和阿里内部实例规模突破百万的大背景下,我们发起了中间件 4.0 项目,核心解决扩展性和标准化问题。实例指的是微服务实例节点,微服务实例节点。对于 Nacos 模型来说,关键性能指标一个是实例规模(业务发布启动写频繁),一个是单实例注册的服务规模(需要维持心跳消耗内存和网络),后续我们可以找一个单独机会,我详细给大家分享一下阿里百万实例软负载的实践。

6.png

2020 年内部 KO,中间件 4.0 开启云原生中间件时代

 

Q:Nacos 在阿里内外部的落地情况如何?可以对比介绍下吗

A:目前 Nacos 已经完成了自研、开源、商业化三位一体的建设,阿里内部的钉钉、考拉、饿了么、优酷等业务域已经全部采用云产品 MSE 中的 Nacos 服务,并且与阿里和云原生的技术栈无缝整合。

发展规划及商业化

Q:Nacos 2.X 规划中,很多关于插件的方面的优化,这样设计的原因和目标是什么

A:随着 Nacos 代码库日益庞大,之前耦合比较紧密的代码不方便扩展,用户定制性有比较高,又提交不到社区,如安全功能,因此通过扩展机制提升用户根据自己场景定制能力,当然也能更好的跟各个生态集成。

Q:官宣 2.0 版本时提到,Nacos 以后会向 Mesh 化方向深入探索。这里的 Mesh 是指 Service Mesh 吗,有什么技术难点,具体要做哪些事情

A:是的,由于 Service Mesh 通过 Sidecar 模式能比较好的解决多语言问题,因此我们期望通过集成主流 Sidecar 技术完成对 Nacos 多语言生态和云原生生态的整合。

目前核心是 Istio 目前的性能指标挑战还很大,Sidecar 目前自动灰度升级是一个挑战,对于中小公司目前落地风险可控。 

Q:Nacos 作为一款产品来看,其发展目标是偏向为阿里业务做好支撑,还是希望能发展更多外部用户?如果是后者,有没有大致的商业计划

A:从 2020 年开始,阿里云就提出了“三位一体”理念,即将“自研技术”、“开源项目”、“商业产品”形成统一的技术体系,最大化技术的价值。通过开源扩大生态,通过阿里集团场景锻造高性能和高可用能力,通过云产品构建产品化能力。

2020 年 1 月,我们就发布了 Nacos 有对应的商业化产品-微服务引擎(Micro Service Engine)简称 MSE,并对外提供商业化服务。它是一个面向业界主流开源微服务生态的一站式微服务平台, 提供注册中心、配置中心全托管(兼容 Nacos/ZooKeeper/Eureka),网关(兼容 Zuul/Kong/Spring Cloud Gateway),和无侵入的开源增强服务治理能。

2020 年双 11 ,我们就全面使用 EDAS、Dubbo、RocketMQ、AHAS、ARMS、MSE、PTS 等阿里云云产品来支撑双 11,做到了和客户在同一架“飞机”上。可以说阿里巴巴集团是阿里云的最大的公有云用户,目前已经有大量业务已经跑在阿里云 MSE 托管的 Nacos 上面了。预计 2021 年双十一阿里集团将 100% 跑到我们公有云产品上面。目前阿里云上已有数万企业采用了我们商业化产品 MSE 中托管的 Nacos,而且我们会加大对此投入,以便更好的服务阿里云用户。

最后,我们希望广大的开发者可以通过 Nacos 的开源,享受到阿里微服务体系的技术红利;另外通过阿里云的规模效应,企业用户可以通过 Nacos 商业化产品 MSE,获得比开源自建更稳定、成本更经济的产品红利。

Nacos 开源社区

Q:Nacos 2.0 发布之后开发者的热烈反响,为什么,怎么做开发者维护的

A:首先 Nacos 经过近三年发展已经成为国内首选,有着广泛的群众基础;其次 Nacos2.0 是一个跨代产品,性能提升十倍,诚意十足的贡献了阿里核心能力,最后感谢媒体朋友,在这开放的时代让好的产品、技术大规模推广。

我们在开发者关系上简单分为贡献者和使用者。对于几百名贡献者,我们是通过定期周会机制交流一些前沿技术的想法和贡献的思路,根据贡献程度授予不同的社区名誉,帮助我们贡献者扩大技术影响力。

对于使用者,我们通过定期的 Meetup 和要求用户分享最佳实践的方式进行互通。从而形成正向循环。另外我们非常重视降低新手使用者使用 Nacos 的门槛,所以我们在文档建设、教程建设上都投入了很多精力。今年,我们将在知行动手实验室上线完整的 Nacos 入门教程,帮助开发者们更好地上手。

Q:Nacos 开源社区现况如何?是否调查过贡献者构成

A:目前应该也是二八定律,80% 以上是外面的贡献者,贡献了 Nacos 的 20% 左右的代码,其中 chuntaojun、KeRan213539、paderlol、horizonzy 等小伙伴一直保持贡献。这个对于中国开源是有非常重要的意义,尤其 Nacos 多语言部分,全部是外部开发者贡献,而且保持着不错的迭代速度。

在社区数字化运营上,我们联合 X-lab,通过数据化、自动化的方式,清晰地展示出 Nacos 和对标的项目的活跃度、关注度趋势,和社区协作网络图,能快速定位社区里的活跃开发者。

借此机会感谢我们 200 多名为 Nacos 贡献代码的小伙伴!也期望更多的小伙伴能够参与到 Nacos 开源工作中来,一起把 Nacos 做强。

原文链接

本文为阿里云原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/513794.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

以系统化视角反观产品运营,解读提升用户转化的“四部曲”

简介: 正常的活动运营通常会围绕公司经营目标,针对不同性质、不同类型的活动开展工作。这样的活动一般会分四个阶段:活动准备、活动策划、活动执行与活动复盘阶段。 作者:友盟数据大使 Suffering 如今,移动互联网的红…

移动云亮相 2021 IDC 年度盛典 共话变革与赋能

“过去一年,是考验各行业在面临多重挑战时保持数字弹性能力的一年。未来十年,是数字化转型成为企业主旋律、加速推进的十年。”10月15日,由IDC中国主办的“2021第六届IDC中国数字化转型年度盛典”在上海圆满落幕。盛典以“数字焕颜 科技有型”…

春色满园关不住,带你体验阿里云 Knative

简介: Knative 是基于 Kubernetes 的开源 Serverless 应用编排框架。阿里云 Knative 在社区Knative基础之上,与阿里云产品进行了深度的融合,给你带来最纯粹的容器化 Serverless 体验。 Knative 是基于 Kubernetes 的开源 Serverless 应用编排…

python选择排序算法图解_python基本算法之实现归并排序(Merge sort)

0、前言 评判一个算法的好坏的标准: 时间复杂度 空间复杂度 1、归并排序算法是什么? 冒泡排序(Bubble Sort)是一种建立在归并操作上面的一种有效的排序算法,由John von neumann于1945年发明。采用分治法(Divide and Conquer&#…

从前端智能化看“低代码/无代码”

简介: 什么是低代码/无代码开发?业界对于低代码/无代码开发是否存在其他不同的理解?低代码开发和无代码开发之间的区别是什么? 作者 | 甄子 来源 | 阿里技术公众号 一 概念 1 什么是低代码/无代码开发?业界对于低代码…

初二物理模型有哪些_暑假新初二、新初三的数学该怎么学,教辅怎么买,题该怎么刷?看这里~...

这个暑假对于新初二和新初三的孩子都非常关键,因为下一学期的数学难度都要上升一个台阶,自古相传一句老话“初二两极分化,初三天上地下”,其实引起这么大化学反应的原因就是在于数学和科学这两门理科在八上和九上有了一个质变。我…

低代码会让程序员更加内卷吗?

作者| Mr.K 编辑| Emma来源| 技术领导力(ID:jishulingdaoli)今天的主题呢主要是来源于最近的一个很火的话题——『低代码』。低代码会不会让程序员更加内卷?要回答这个问题,需要先弄清楚:低代码适合做什么,不适合做什…

技术干货 | 应用上线前的“体检”,你知道需要检测哪些指标吗?

简介: 应用上线前检测哪些项目?如何检测?检测数据指标包括哪些? 随着越来越多的企业基于 mPaaS 搭建并上线新的 App,App 的上线质量也成为各个客户关注的重点。上线前检测哪些项目?如何检测?检…

python 机器学习_基于 Python 语言的机器学习工具Sklearn

本篇介绍了Sklearn机器学习基础,从Sklearn的简介,模块以及与tensorflow的优劣势对比来了解基于Python语言的机器学习工具。01、Sklearn简介sklearn(scikit-learn)是Python重要的学习库,它封装了机器学习中常用的算法,包括监督学习…

那些你不知道的TCP冷门知识!

简介: 最近在做数据库相关的事情,碰到了很多TCP相关的问题,新的场景新的挑战,有很多之前并没有掌握透彻的点,大大开了一把眼界,选了几个案例分享一下。 最近在做数据库相关的事情,碰到了很多TC…

CPU 可以跑多快?地球到火星的距离告诉你!

来源:码农的荒岛求生作者:码农的荒岛求生这张出自Google大神 Jeff Dean的图,展示系统中各种关键操作的时延具体有多少。需要注意的是这张图上的数据自2012年后就没有再更新过了,统计自2020年的最新数据见这里:这张图中…

步进电机五根线怎么接_步进驱动和伺服驱动的区别

概述步进电机主要是依相数来做分类,而其中又以二相、五相步进电机为目前市场上所广泛采用。二相步进电机每转最细可分割为400等分,五相则可分割为1000等分,所以表现出来的特性以五相步进电机较佳、加减速时间较短、动态惯性较低。随着全数字式…

可观测告警运维系统调研——SLS告警与多款方案对比

简介: 本文介绍对比多款告警监控运维平台方案,覆盖阿里云SLS、Azure、AWS、自建系统(ELK、Prometheus、TICK)等方案。 前言 本篇是SLS新版告警系列宣传与培训的第三篇,后续我们会推出20系列直播与实战培训视频&#…

Flagger on ASM·基于Mixerless Telemetry实现渐进式灰度发布系列 1 遥测数据

简介: 服务网格ASM的Mixerless Telemetry技术,为业务容器提供了无侵入式的遥测数据。遥测数据一方面作为监控指标被ARMPS/prometheus采集,用于服务网格可观测性;另一方面被HPA和flaggers使用,成为应用级扩缩容和渐进式…

Flagger on ASM——基于Mixerless Telemetry实现渐进式灰度发布系列 2 应用级扩缩容

简介: 应用级扩缩容是相对于运维级而言的。像监控CPU/内存的利用率就属于应用无关的纯运维指标,针对这种指标进行扩缩容的HPA配置就是运维级扩缩容。而像请求数量、请求延迟、P99分布等指标就属于应用相关的,或者叫业务感知的监控指标。 本篇…

自动替换 Kubernetes 镜像

来源:云原生指北作者:Addo Zhang最近萌生了个想法,维护一个后网络友好的仓库镜像,在 Pod 创建时将镜像仓库切换到自维护的仓库,从自维护的仓库拉取镜像。前几天体验了极狐Gitlab 的容器镜像库,便是为这个想…

Flagger on ASM——基于Mixerless Telemetry实现渐进式灰度发布系列 3 渐进式灰度发布

简介: 作为CNCF[成员](https://landscape.cncf.io/card-mode?categorycontinuous-integration-delivery&groupingcategory&selectedweave-flagger),[Weave Flagger](flagger.app)提供了持续集成和持续交付的各项能力。Flagger将渐进式发布总结为…

react 使用 leaflet 百度地图_【React】react项目中应用百度地图添加起始点绘制路线...

如图:项目中百度地图的应用添加起始点、终点并绘制路线在展示代码的时候首先展示一下后台返回给我的接口{其中position_list参数代表的是用户的行驶点, area参数代表的是服务区的坐标点,下面会用到参数下面开始展示代码了index.html引入百度地…

基线长度中误差的计算_电子战支援实施中的测向技术

派遣一个机载电子战机组执行支援压制敌防空系统任务,在任务计划阶段,全体人员将会获取任务区域内的EOB,机载电子战人员会优先识别他们在任务期间可能会遇到的威胁辐射源,以及其他中立、友好辐射源。当机载电子战人员进入目标作战区…

洞察设计模式的底层逻辑

简介: 设计模式是开发同学经常聊到的话题,也经常被用到实际的开发项目中,熟练的人可以做到信手拈来,不熟悉的人陷入苦思冥想中。笔者认为,不仅仅要掌握设计模式的用法,更要洞察设计模式的底层逻辑&#xff…