乐趣区

关于云原生-cloud-native:2020双11Dubbo30-在考拉的超大规模实践

很多开发者始终以来好奇:阿里本人有没有在用 Dubbo,会不会用 Dubbo?在刚刚完结的双 11,咱们理解到阿里云往年提出了“三位一体”的理念,行将“自研技术”、“开源我的项目”、“商业产品”造成对立的技术体系,最大化技术的价值。终于,在 2020 的双 11,阿里巴巴经济体也用上了 Dubbo!本文是阿里双十一在考拉大规模落地 Dubbo3.0 的技术分享,零碎介绍了 Dubbo3.0 在性能、稳定性上对考拉业务的撑持。

覃柳杰(花名:未宇)Github ID: qinliujie,Apache Dubbo PMC;阿里巴巴微服务框架 HSF 负责人,负责 HSF 研发及 Dubbo 在阿里的落地。

HSF 是阿里外部的分布式的服务框架,作为团体中间件最重要的中间件之一,历经十多届双十一大促,承受万亿级别流量的锻炼,非常的稳固与高效。另外一方面,Dubbo 是由阿里中间件开源进去的另一个服务框架,并且在 2019 年 5 月以顶级我的项目身份从 Apache 毕业,坐稳国内第一开源服务框架宝座,领有十分宽泛的用户群体。

在团体业务整体上云的大背景下,首要挑战是实现 HSF 与 Dubbo 的交融,以对立的服务框架反对云上业务,同时在此基础上衍生出适应用下一代云原生的服务框架 Dubbo 3.0, 最终实现自研、开源、商业三位一体的指标。往年作为 HSF&Dubbo 交融之后的 Dubbo 3.0 在团体双十一落地的第一年,在兼容性、性能、稳定性下面都面临着不少的挑战。可喜的是,在往年双十一在考拉下面大规模应用,体现稳固,为今后在团体大规模上线提供了撑持。

Dubbo 3.0 总体方案

在下面的计划中,能够看进去咱们是以 Dubbo 为外围,HSF 作为性能扩大点嵌入到其中,同时保留 HSF 原有的编程 API,以保障兼容性。为什么咱们选址以 Dubbo 为外围根底进行交融,次要这两点的考量:

1.Dubbo 在内部领有十分宽泛的大众根底,以 Dubbo 为外围,合乎开源、商业化的指标;

2.HSF 也经验过外围降级的状况,咱们领有比拟丰盛的解决教训,对于 Dubbo 3.0 新外围外部落地也是处于可控的范畴之内。

选定这个计划之后,咱们开始朝着这个方向致力,因为 Dubbo 开源已久,不像 HSF 这样经验过超大规模集群的考验验证,那么咱们是如何去保障它的稳定性呢?

稳定性

为了保障新外围的稳固,咱们从各个方面进行坚固,保障十拿九稳

1. 功能测试

HSF3 共有集成用例数百个,100% 笼罩到了 HSF 的外围性能;HSF3 的单测共有上千个,行覆盖率达到了 51.26%

2. 混沌测试

为了面对突发的异常情况,咱们也做了相应的演练测试,例如 CS 注册核心地址停推空爱护测试、异样注入、断网等状况,以此验证咱们的健壮性;例如,咱们通过对部份机器进行断网,后果咱们发现有比拟多的异样抛多。

起因是 Dubbo 对异样服务端剔除不够及时,导致还会调用到异样服务器,呈现大量报错。

同时,咱们也构建了突发高并发状况下的场景,发现了一些瓶颈,例如:

霎时大并发消耗掉绝大部分 CPU。

3. 性能优化

Dubbo 外围之前未经验过超大规模团体的考验,性能下面必将面临着微小的挑战;对于 Dubbo 来说,优化次要从地址推送链路和调用服务链路两个链路来进行。对于地址推送链路,次要是缩小内存的调配,优化数据结构,缩小动态时地址占用内存对利用的影响,从而缩小 ygc/fgc 造成的抖动问题。咱们利用测试同学提供的风暴程序,模仿了重复推送海量地址的场景,通过优化,120 万个 Dubbo 服务地址常态内存占用从 8.5G 降落到 1.5G,无效升高 GC 频率

另外一方面,在调用链路上,咱们次要对选址过程、LoadBalancer、Filter 等进行优化,总体 CPU 降落达到 20%,RT 也有一个比拟显著的降落。

成绩

在双十一考拉零点顶峰,某个 Dubbo 接口,总的流量达到了数百万次 / 每分钟 , 全程稳固顺滑,达到了预约的指标,Dubbo 3.0 是至重启开源以来,首次在这么大规模的场景进行验证,充分证明了 Dubbo 3.0 的稳定性。

结语

在本次双 11 考拉落地 Dubbo 3.0 只是在阿里外部全面落地 Dubbo3.0 的第一步,当初 Dubbo 3.0 云原生的新个性也热火朝天的进行开发与验证,如利用级服务发现、新一代云原生通信协议 Triple 等曾经开始在团体电商利用开始进行 Beta 试点。

阿里微服务体系实现了通过开源构建生态和规范,通过云产品 MSE、EDAS 等实现产品化和能力输入,通过阿里外部场景锤炼高性能和高可用的外围竞争力。从而实现了三位一体的正向循环,通过规范继续输入阿里巴巴的外围竞争力,让内部企业疾速享有阿里微服务能力,减速企业数字化转型!

Dubbo 3.0 sample @GitHub:https://github.com/apache/incubator-dubbo-samples/tree/3.x

举荐浏览

都曾经十岁的 Apache Dubbo,还能再乘风破浪吗?(Dubbo3.0 Roadmap 公布)
https://my.oschina.net/u/4489239/blog/4321643

Dubbo3 前瞻:利用级服务发现
https://my.oschina.net/u/4489239/blog/4483677

Dubbo 3.0 前瞻:罕用协定比照及 RPC 协定新形态摸索
https://my.oschina.net/u/4489239/blog/4483677

Dubbo 3.0 前瞻:重塑 Spring Cloud 服务治理
https://my.oschina.net/u/4489239/blog/4483677

退出移动版