Dubbo 3.0 預覽版解讀,支持 Filter 鏈的異步化

2021-01-08 開源中國

自去年 12 月開始,Dubbo 3.0 便已正式進入開發階段,並備受社區和廣大 Dubbo 用戶的關注,本文將為您詳細解讀 3.0 預覽版的新特性和新功能。

下面先解答一下兩個有意思的與 Dubbo 相關的疑問。

為什麼 Dubbo 一開源就是 2.0 版本?之前是否存在 1.0 版本?

筆者曾做過 Dubbo 協議的適配兼容,Dubbo 確實存在過 1.x 版本,而且從協議設計和模型設計上都與 2.0 的開源版本協議是完全不一樣的。下圖是關於 Dubbo 的發展路徑:

阿里內部正在使用 Dubbo 開源版本嗎?

是的,非常確定,當前開源版本的 Dubbo 在阿里巴巴被廣泛使用,而阿里的電商核心部門是用的 HSF2.2 版本,這個版本是兼容了 Dubbo 使用方式和 Remoting 協議。當然,我們現在正在做 HSF2.2 的升級,直接依賴開源版本的 Dubbo 來做內核的統一。所以,Dubbo 是得到大規模線上系統驗證的分布式服務框架,這一點毋容置疑。

 

Dubbo 3.0 預覽版的要點

Dubbo 3.0 在設計和功能上的新增支持和改進,主要是以下四方面:

Dubbo 內核之 Filter 鏈的異步化

這裡要指出的是,3.0 中規劃的異步去阻塞和 2.7 中提供的異步是兩個層面的特性。2.7 中的異步是建立在傳統 RPC 中 request – response 會話模型上的,而 3.0 中的異步將會從通訊協議層面由下向上構建,關注的是跨進程、全鏈路的異步問題。通過底層協議開始支持 streaming 方式,不單單可以支持多種會話模型,還可以在協議層面開始支持反壓、限流等特性,使得整個分布式體系更具有彈性。綜上所述,2.7 關注的異步更局限在點對點的異步(一個 consumer 調用一個 provider),3.0 關注的異步化,寬度上則關注整個調用鏈上的異步,高度上則向上又可以包裝成 Rx 的編程模型。有趣的是,Spring 5.0 發布了對 Flux 的支持,隨後開始解決跨進程的異步問題。

功能方面是 reactive(響應式)支持

最近幾年, reactive programming這個詞語的熱度迅速提升,Wikipedia 上的 reactive programming 解釋是 reactive programming is a programming paradigm oriented around data flows and the propagation of change. Dubbo3.0會實現Reactive Stream 的 rx 接口,從而能讓用戶享受到RP帶來的響應性提升,甚至面向 RP 的架構升級。當然,我們希望 reactive 不單單能夠帶來事件(event)驅動的應用集成方式的升級,也希望在 Load Balance(選擇最優的服務節點),fault tolerance(限流降級時最好做到自適應)等方面發揮其積極價值。

雲原生/ ServiceMesh 方向的探索

我們定下的策略是進入 Envoy 社區來實現 Dubbo 融入 mesh 的理念思想,目前 Dubbo 協議已經被 Envoy 支持。當然,Dubbo Mesh 離真正可用還有很長一段距離,其在選址、負載均衡和服務治理方面的工作需要繼續在數據面建設,另外,控制面板的建設在社區也沒有提上日程。

融合併支持阿里內部

Dubbo 3.0 定下了內外融合的策略,也就是說 3.0 的核心最終會在阿里巴巴的生產系統中部署,相信通過大流量、大規模的考驗,Dubbo 用戶可以獲得一個性能、穩定、服務治理實踐各方面俱佳的核心,用戶在生產系統中採用 3.0 也會更加放心。這一點也是 Dubbo 3.0 最重要的使命。

 

當前 Dubbo 3.0 將提供具備當代特性(如響應性編程)的相關支持,同時汲取阿里內部 HSF 的設計長處來實現兩者的融合,當前預覽版的很多地方還在探討中,希望大家能夠積極反饋,我們都會虛心學習並參考。

 

Dubbo 3.0 sample @GitHub:

https://github.com/apache/incubator-dubbo-samples/tree/3.x

 

本文作者:

覃柳傑(花名:未宇)

Github ID: qinliujie,阿里巴巴中間件開發,Dubbo 開源項目 PMC,參與 HSF2.2和 Dubbo3.0 的設計和開發。

呂仁琦(花名:空冥)

Github ID: jefflv,阿里巴巴中間件開發,Dubbo 開源項目 commiter,參與了內部 HSF2.0 的設計和開發。

劉軍(花名:陸龜)

阿里巴巴中間件高級開發工程師,Apache Dubbo (Incubating)PPMC,深度參與 Dubbo 項目開發,主要貢獻者之一。

謝育能(花名:思邪)

阿里巴巴中間件開發,Dubbo 3.0 開源項目的響應式模塊的負責人,參與了內部 HSF2.2 的設計和開發。

 

相關焦點

  • Dubbo3.0 - 開啟下一代雲原生微服務
    Dubbo3.0 是什麼?和目前的 Dubbo2.0 有什麼區別?用了 Dubbo3.0 會帶來哪些業務視角的好處?後面的分享會對這些問題逐一解答。重啟開源後發布的 2.7.x 版本帶了了很多新的特性,比如 JDK8 支持,完整的異步支持,以及元數據的精簡和抽象。在今年,我們啟動了另外一個新的歷程碑 —— Dubbo3.0,這也會帶領 Dubbo 走向下一個階段,即雲原生微服務。
  • 蘋果watchOS 7.3 開發者預覽版 Beta 發布
    蘋果 watchOS 7.3 開發者預覽版 Beta 發布2020-12-17 21:58出處/作者:IT之家整合編輯:佚名責任編輯:zhaoyongyu1   今天凌晨 蘋果推送了 iOS 14.4 Beta 預覽版 ,蘋果還發布了 watchOS 7.3 開發者預覽版 Beta,版本號為 18S5780d。
  • 微軟Win10 Dev預覽版20215發布 支持深色主題
    原標題:微軟 Win10 Dev 預覽版 20215 發布:搜索支持暗黑模式   9月17日消息 微軟在 Dev 開發頻道發布了 Windows 10 Insider 預覽版 Build 20215,供內部人員測試使用。據悉,新的更新帶來了對 Windows 搜索中黑暗主題的支持,同時也帶來了一大堆的修復和改進。
  • Docker發布支持蘋果Mac M1 預覽版,已有1000人參與測試
    Docker發布支持蘋果Mac M1 預覽版,已有1000人參與測試 站長之家(ChinaZ.com)12月17日 消息:上個月,蘋果正式發布了
  • Android Studio 3.0 新功能解析和舊項目適配
    Kotlin Support在 Android Studio 3.0 之前,使用 Kotlin 語言開發安卓應用,需要額外配置 Kotlin 插件。而新版本內置默認支持 Kotlin 語言,來減少我們在配置上的工作。
  • 微信手機版2021最新版 v8.0.0 安卓版
    微信手機版2021是一款手機微信2021年的新版本,非常強大的手機社交聊天軟體。騰訊官方出品、功能十分全面、各種互動聊天一鍵搞定、聯網後隨時隨地都能進行語音互動直聊、視頻聊天、各種圖片、表情包自由上傳、搖一搖、立馬搜索附近的人、喜歡就來2265安卓網下載體驗吧!手機微信2021年新版本簡介1、掃一掃,可以掃商品條碼、圖書封面、CD封面,甚至掃描英文單詞來翻譯成中文。
  • Bitcoin core錢包0.16.0版本上線,全面支持隔離見證
    雷鋒網為您解讀此次更新重點如下:這次最顯著的變化是全面支持隔離見證(SegWit)——這是一種去年8月在比特幣網絡激活的擴展解決方案——因此此版本有時被稱為「SegWit專用版」。據雷鋒網所知,用戶原本希望這一更新在上一個版本0.15.1中就能上線,但在該次更新中,開發人員最終將注意力集中在解決與SegWit2x硬分叉有關的感知威脅上。
  • 蘋果可立拍 3.0 發布:大版本更新,支持豎屏視頻
    10 月 29 日,Apple 官方的短視頻製作軟體可立拍(Clips) 推出了 3.0 版本,這是迄今為止最大的一次更新,帶來了諸多全新功能,加入了豎拍界面,更多特效,並針對 iPad 做了更多優化。
  • 蘋果發布Safari技術預覽版更新 支持從其他瀏覽器導入網頁擴展程序
    蘋果今天對 Safari Technology Preview 進行了更新,這是一款蘋果在四年前(2016年3月)發布的實驗性瀏覽器。蘋果設計了 Safari Technology Preview,主要測試可能會 Safari 未來發行版本中引入的某些功能。
  • Win10預覽版、紅石3發布、更新和安全問題...微軟告訴你
    其中,用戶較為關心的安全機制、預覽版全新UUP更新方式,以及紅石3版發布時間表等都出現在了節目中。IT之家截取了幾個關鍵的PPT來對本次節目內容進行梳理和總結。IT之家Win10Windows101、Win10安全性比/強在哪?Win7Win8
  • ...預覽版 Build 21277 發布: ARM 支持 x64 模擬器(附更新內容大全)
    IT之家12月13日消息 微軟官方近期面向 Windows 10 Dev 開發頻道推送預覽版 Build 21277(RS_PRERELEASE)。這些構建版本將通過 Windows Update 中的 「seeker(探索者)」體驗作為可選更新提供。用戶可以選擇安裝當前提供的 RS_PRERELEASE 版本。
  • Microsoft Edge更新至88.0.685.3 新增Mac支持配置友好URL管理策略
    Dev頻道中的微軟Edge最新版本為88.0.685.3,它增加了對Linux上預渲染新標籤頁的支持。此次新更新還增加了Mac對配置友好URL的管理策略的支持。   幾周前,微軟發布了基於Chromium for Linux的新Edge瀏覽器的預覽版,穩定版預計何時上線沒有具體的時間。
  • Secret秘密生態SIE通證經濟區塊鏈3.0時代的變革
    區塊鏈的出現,推動了一個信息去中心化、公開透明、不可篡改的數字世界的發展。從2007年比特幣創始人中本聰的初步探索,到如今作為主流進入大眾視野,區塊鏈的發展歷程可以被初步劃分為三個階段:區塊鏈1.0時代:標誌是比特幣等數字貨幣的誕生。數字貨幣的買賣是這個階段人們參與區塊鏈的主要方式,講求投資回報率為王。
  • 以跨鏈技術引領區塊鏈3.0時代,aelf主網正式上線!
    自今日起,所有社區成員都可以前往aelf GitHub下載並訪問aelf Enterprise 1 0 0 的正式版本。另外,您也可以通過aelf Explorer體驗該版本。aelf自設計之初就旨在 ​
  • 蘋果正式發布可立拍 3.0:支持 iPhone 12/Pro HDR 視頻錄製,全新...
    在 iPhone 12 系列發布後不久,可立拍 3.0 今日正式發布,迎來了迄今為止最大的更新和諸多全新功能,支持在 iPhone 12 和 iPhone 12 Pro 上通過後置攝像頭錄製高動態範圍(HDR)視頻,可查看、編輯和分享 「照片」圖庫中的 HDR 視頻,還帶來了全新的流線型界面、支持豎屏和橫屏視頻,以及全新特效等。
  • NET 5.0不再內置WinRT支持 能精簡六萬行代碼
    [PConline資訊]在昨天發布的.NET5.0Preview5更新中,在引入諸多新功能、新特性的同時還宣布從下一個預覽版開始,微軟將取消內置WinRT支持。在.NET3.0對Windows桌面客戶端框架(WindowsForms和WPF)的支持改進中,引入了對WinRT的支持。
  • iOS14.3RC候選預覽版更新了什麼 iOS14.3更新內容匯總
    iOS14.3RC候選預覽版更新了什麼 iOS14.3更新內容匯總 蘋果在12月9日凌晨發布了iOS14.3RC
  • 蘋果「可立拍」 3.0 發布:支持豎屏視頻,更多好玩濾鏡
    在 10 月 29 日,可立拍(Clips) 推出了 3.0 版本,這是迄今為止最大的一次更新,帶來了諸多全新功能,加入了豎拍界面,更多特效。在國內,以抖音和快手為代表的短視頻平臺,其內容大多都是 16:9 或者 4:3 的豎屏視頻,這些錄製比例更加適合手機觀看,現在「可立拍」也支持豎屏和橫屏視頻錄製了,
  • PowerDirector (威力導演)19v19.0.2325.0綠色破姐版
    3、LUT電影級調色全新色彩查找表(LUT)是現今後制影音時,常用的顏色管理方法,輕鬆重現經典電影色調,不用再慢慢調整參數,快速省時。4、無與倫比 極速效能PowerDirector 19搭載TrueVelocity 7的64位運算引擎,優化電腦硬體資源,讓作品預覽更加流暢,編碼輸出過程不再冗長耗時。
  • OK資本投研負責人周子涵:區塊鏈底層設施成熟需3—5年
    由全球區塊鏈峰會精英會組委會主辦,FANSTIME承辦的首屆「全球區塊鏈精英峰會」在中國澳門舉辦,金色財經記者在現場採訪到OK資本投研負責人周子涵,看她如何解讀當下區塊鏈行業發展。對於區塊鏈行業結構的變遷發展,周子涵對金色財經記者表示,我們已經聽到過很多版本的關於區塊鏈行業變遷的劃分,關於區塊鏈1.0、2.0和3.0的解讀各有不同,其實從各個角度來講我覺得都是適用的。