Dubbo 3.0 前瞻系列 | 2020双11,Dubbo3.0 在考拉的超大规模实践
很多開(kāi)發(fā)者一直以來(lái)好奇:阿里自己有沒(méi)有在用Dubbo,會(huì)不會(huì)用Dubbo?在剛剛結(jié)束的雙11,我們了解到阿里云今年提出了“三位一體”的理念,即將“自研技術(shù)”、“開(kāi)源項(xiàng)目”、“商業(yè)產(chǎn)品”形成統(tǒng)一的技術(shù)體系,最大化技術(shù)的價(jià)值。終于,在2020的雙11,阿里巴巴經(jīng)濟(jì)體也用上了Dubbo!本文是阿里雙十一在考拉大規(guī)模落地 Dubbo3.0 的技術(shù)分享,系統(tǒng)介紹了 Dubbo3.0 在性能、穩(wěn)定性上對(duì)考拉業(yè)務(wù)的支撐。
覃柳杰(花名:未宇)Github ID: qinliujie,Apache Dubbo PMC;阿里巴巴微服務(wù)框架 HSF 負(fù)責(zé)人,負(fù)責(zé) HSF 研發(fā)及 Dubbo 在阿里的落地。
HSF 是阿里內(nèi)部的分布式的服務(wù)框架,作為集團(tuán)中間件最重要的中間件之一,歷經(jīng)十多屆雙十一大促,接受萬(wàn)億級(jí)別流量的錘煉,十分的穩(wěn)定與高效。另外一方面,Dubbo 是由阿里中間件開(kāi)源出來(lái)的另一個(gè)服務(wù)框架,并且在 2019 年 5 月以頂級(jí)項(xiàng)目身份從 Apache 畢業(yè),坐穩(wěn)國(guó)內(nèi)第一開(kāi)源服務(wù)框架寶座,擁有非常廣泛的用戶群體。
在集團(tuán)業(yè)務(wù)整體上云的大背景下,首要挑戰(zhàn)是完成 HSF 與 Dubbo 的融合,以統(tǒng)一的服務(wù)框架支持云上業(yè)務(wù),同時(shí)在此基礎(chǔ)上衍生出適應(yīng)用下一代云原生的服務(wù)框架 Dubbo 3.0,最終實(shí)現(xiàn)自研、開(kāi)源、商業(yè)三位一體的目標(biāo)。今年作為 HSF&Dubbo 融合之后的 Dubbo 3.0 在集團(tuán)雙十一落地的第一年,在兼容性、性能、穩(wěn)定性上面都面臨著不少的挑戰(zhàn)。可喜的是,在今年雙十一在考拉上面大規(guī)模使用,表現(xiàn)穩(wěn)定,為今后在集團(tuán)大規(guī)模上線提供了支撐。
Dubbo 3.0 總體方案
在上面的方案中,可以看出來(lái)我們是以 Dubbo 為核心,HSF 作為功能擴(kuò)展點(diǎn)嵌入到其中,同時(shí)保留 HSF 原有的編程 API,以保證兼容性。為什么我們選址以 Dubbo 為核心基礎(chǔ)進(jìn)行融合,主要這兩點(diǎn)的考量:
1.Dubbo 在外部擁有非常廣泛的群眾基礎(chǔ),以 Dubbo 為核心,符合開(kāi)源、商業(yè)化的目標(biāo);
2.HSF 也經(jīng)歷過(guò)核心升級(jí)的情況,我們擁有比較豐富的處理經(jīng)驗(yàn),對(duì)于 Dubbo 3.0 新核心內(nèi)部落地也是處于可控的范圍之內(nèi)。
選定這個(gè)方案之后,我們開(kāi)始朝著這個(gè)方向努力,由于 Dubbo 開(kāi)源已久,不像 HSF 這樣經(jīng)歷過(guò)超大規(guī)模集群的考驗(yàn)驗(yàn)證,那么我們是如何去保證它的穩(wěn)定性呢?
穩(wěn)定性
為了保證新核心的穩(wěn)定,我們從各個(gè)方面進(jìn)行鞏固,保證萬(wàn)無(wú)一失
1.功能測(cè)試
HSF3 共有集成用例數(shù)百個(gè), 100% 覆蓋到了 HSF 的核心功能;HSF3 的單測(cè)共有上千個(gè),行覆蓋率達(dá)到了 51.26%
2.混沌測(cè)試
為了面對(duì)突發(fā)的異常情況,我們也做了相應(yīng)的演練測(cè)試,例如 CS 注冊(cè)中心地址停推空保護(hù)測(cè)試、異常注入、斷網(wǎng)等情況,以此驗(yàn)證我們的健壯性;例如,我們通過(guò)對(duì)部份機(jī)器進(jìn)行斷網(wǎng),結(jié)果我們發(fā)現(xiàn)有比較多的異常拋多。
原因是 Dubbo 對(duì)異常服務(wù)端剔除不夠及時(shí),導(dǎo)致還會(huì)調(diào)用到異常服務(wù)器,出現(xiàn)大量報(bào)錯(cuò)。
同時(shí),我們也構(gòu)建了突發(fā)高并發(fā)情況下的場(chǎng)景,發(fā)現(xiàn)了一些瓶頸,例如:
瞬間大并發(fā)消耗掉絕大部分 CPU 。
3.性能優(yōu)化
Dubbo 核心之前未經(jīng)歷過(guò)超大規(guī)模集團(tuán)的考驗(yàn),性能上面必將面臨著巨大的挑戰(zhàn);對(duì)于 Dubbo 來(lái)說(shuō),優(yōu)化主要從地址推送鏈路和調(diào)用服務(wù)鏈路兩個(gè)鏈路來(lái)進(jìn)行。對(duì)于地址推送鏈路,主要是減少內(nèi)存的分配,優(yōu)化數(shù)據(jù)結(jié)構(gòu),減少靜態(tài)時(shí)地址占用內(nèi)存對(duì)應(yīng)用的影響,從而減少 ygc/fgc 造成的抖動(dòng)問(wèn)題。我們利用測(cè)試同學(xué)提供的風(fēng)暴程序,模擬了反復(fù)推送海量地址的場(chǎng)景,通過(guò)優(yōu)化,120萬(wàn)個(gè) Dubbo 服務(wù)地址常態(tài)內(nèi)存占用從 8.5G 下降到 1.5G,有效降低 GC 頻率
另外一方面,在調(diào)用鏈路上,我們主要對(duì)選址過(guò)程、LoadBalacer、Filter 等進(jìn)行優(yōu)化,總體 CPU 下降達(dá)到 20%,RT 也有一個(gè)比較明顯的下降。
成果
在雙十一考拉零點(diǎn)高峰,某個(gè) Dubbo 接口,總的流量達(dá)到了數(shù)百萬(wàn)次/每分鐘 ,全程穩(wěn)定順滑,達(dá)到了預(yù)定的目標(biāo),Dubbo 3.0 是至重啟開(kāi)源以來(lái),首次在這么大規(guī)模的場(chǎng)景進(jìn)行驗(yàn)證,充分證明了 Dubbo 3.0 的穩(wěn)定性。
結(jié)語(yǔ)
在本次雙11考拉落地 Dubbo 3.0 只是在阿里內(nèi)部全面落地 Dubbo3.0 的第一步,現(xiàn)在 Dubbo 3.0 云原生的新特性也如火如荼的進(jìn)行開(kāi)發(fā)與驗(yàn)證,如應(yīng)用級(jí)服務(wù)發(fā)現(xiàn)、新一代云原生通信協(xié)議 Triple 等已經(jīng)開(kāi)始在集團(tuán)電商應(yīng)用開(kāi)始進(jìn)行 Beta 試點(diǎn)。
阿里微服務(wù)體系完成了通過(guò)開(kāi)源構(gòu)建生態(tài)和標(biāo)準(zhǔn),通過(guò)云產(chǎn)品 MSE、EDAS 等完成產(chǎn)品化和能力輸出,通過(guò)阿里內(nèi)部場(chǎng)景鍛煉高性能和高可用的核心競(jìng)爭(zhēng)力。從而完成了三位一體的正向循環(huán),通過(guò)標(biāo)準(zhǔn)持續(xù)輸出阿里巴巴的核心競(jìng)爭(zhēng)力,讓外部企業(yè)快速享有阿里微服務(wù)能力,加速企業(yè)數(shù)字化轉(zhuǎn)型!
?
原文鏈接
本文為阿里云原創(chuàng)內(nèi)容,未經(jīng)允許不得轉(zhuǎn)載。
總結(jié)
以上是生活随笔為你收集整理的Dubbo 3.0 前瞻系列 | 2020双11,Dubbo3.0 在考拉的超大规模实践的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 深度解读 MongoDB 最全面的增强版
- 下一篇: 技术干货 | 深度解构 Android