2020雙11,Dubbo3.0 在考拉的超大規模實踐

不少開發者一直以來好奇:阿里本身有沒有在用Dubbo,會不會用Dubbo?在剛剛結束的雙11,咱們瞭解到阿里雲今年提出了「三位一體」的理念,即將「自研技術」、「開源項目」、「商業產品」造成統一的技術體系,最大化技術的價值。終於,在2020的雙11,阿里巴巴經濟體也用上了Dubbo!本文是阿里雙十一在考拉大規模落地 Dubbo3.0 的技術分享,系統介紹了 Dubbo3.0 在性能、穩定性上對考拉業務的支撐。編程

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 頻率

另一方面,在調用鏈路上,咱們主要對選址過程、LoadBalacer、Filter 等進行優化,整體 CPU 降低達到 20%,RT 也有一個比較明顯的降低。

成果

在雙十一考拉零點高峯,某個 Dubbo 接口,總的流量達到了數百萬次/每分鐘 ,全程穩定順滑,達到了預約的目標,Dubbo 3.0 是至重啓開源以來,首次在這麼大規模的場景進行驗證,充分證實了 Dubbo 3.0 的穩定性。

結語

在本次雙11考拉落地 Dubbo 3.0 只是在阿里內部全面落地 Dubbo3.0 的第一步,如今 Dubbo 3.0 雲原生的新特性也如火如荼的進行開發與驗證,如應用級服務發現、新一代雲原生通訊協議 Triple 等已經開始在集團電商應用開始進行 Beta 試點。

阿里微服務體系完成了經過開源構建生態和標準,經過雲產品 MSE、EDAS 等完成產品化和能力輸出,經過阿里內部場景鍛鍊高性能和高可用的核心競爭力。從而完成了三位一體的正向循環,經過標準持續輸出阿里巴巴的核心競爭力,讓外部企業快速享有阿里微服務能力,加速企業數字化轉型!

做者:覃柳傑(花名:未宇)Github ID: qinliujie,Apache Dubbo PMC;阿里巴巴微服務框架 HSF 負責人,負責 HSF 研發及 Dubbo 在阿里的落地。

 

原文連接

本文爲阿里雲原創內容,未經容許不得轉載。

相關文章
相關標籤/搜索