引言:從“消息”到“消息、事件、流”的大融合
消息隊列作為當代應用的通信基礎設施,微服務架構應用的核心依賴,通過異步解耦能力讓使用者更高效地建構分布式、高性能、彈性健壯的應用程式。
從資料價值和業務價值角度來看,消息隊列的價值不斷深化。消息隊列中流動的業務核心資料涉及內建傳輸、分析計算和處理等不同環節與場景。伴随着不斷演進,我們可以預見消息隊列勢必在資料通道、事件內建驅動、分析計算等場景不斷産生新價值,創造新的“化學反應”。
RocketMQ 誕生于阿裡巴巴内部電商系統,發展至今日,其核心架構經曆了多次關鍵演進:
早在 2007 年,淘寶電商系統做服務化拆分的時候,就誕生了第一代消息服務 Notify,這是 RocketMQ 最早雛形。Notify 采用了關系型資料庫作為存儲,使用推模式。在阿裡淘寶這種高頻交易場景中,具有非常廣泛地應用。
在 2007-2013 年期間,随着阿裡集團業務發展,不僅需要交易場景異步調用,同時需要支援大量傳輸埋點資料、資料同步。此時,内部衍生出 MetaQ 以及 RocketMQ3.0 版本,這兩個版本開始探索自研存儲引擎,采用了自研專有消息存儲,支援了單機海量 Topic,并前瞻性地去除了 Zookeeper 等元件的外部依賴。在十年後的今天,我們看到去各種 keeper 已成為整個消息領域的發展主流。
經曆了前三代的内部業務打磨後,阿裡巴巴積極參與開源并将 RocketMQ3.0 貢獻到開源社群,并于 2017 年正式從 Apache 孵化器畢業,成為中國首個非 Hadoop 生态體系的 Apache 社群頂級項目。此後,RocketMQ 也開始正式服務于阿裡雲企業客戶。秉承開源、商業、内部三位一體發展政策,18 年釋出的 4.x 版,在高可靠低延遲方面重點優化,建構了全新的低延遲存儲引擎和多場景容災解決方案、并提供了豐富的消息特性。這也使得 RocketMQ 成為金融級的業務消息首選方案。
上個月社群釋出了 RocketMQ5.0-preview 版,正式宣告 5.0 的到來。RocketMQ5.0 将不再局限于消息解耦的基本場景,更是通過統一核心、存儲的優勢,提供消息、事件、流一體化的處理能力。
回顧 RocketMQ 發展的十餘年,良好的社群環境和商業支援使得大量企業開發者可以很友善的跟進業務特點和訴求進行選型和驗證。在社群活躍影響力方面,RocketMQ 社群項目收獲 15000+Star,活躍的貢獻者有 400+ 位,多語言、生态連接配接等周邊活躍項目 30+ 個,深受社群開發者歡迎。在應用規模方面,RocketMQ 作為金融級業務消息方案,積累了網際網路遊戲、線上教育、金融證券、銀行、政企能源、汽車出行等衆多行業數以萬計的企業客戶。同時,在阿裡巴巴内部擔負業務核心鍊路,每天流轉萬億級消息流量,扛過了曆屆雙十一的零點峰值。在行業評測方面,RocketMQ 也多次斬獲大獎。
官宣:阿裡雲新一代 RocketMQ “消息、事件、流”融合處理平台
今天釋出阿裡雲消息隊列 RocketMQ 版 5.0,我們稱之為一站式“消息、事件、流”融合處理平台。
新版本核心誕生兩大新亮點,首先是消息核心場景的擴充和布局,RocketMQ 5.0 不再局限于消息解耦場景,将全新布局事件驅動和消息流式處理場景;其次則是一站式融合處理的技術架構和趨勢。
“消息、事件、流”一站式融合處理的技術架構可以實作一份消息存儲,支援消息的流式計算、異步投遞、內建驅動多種場景,極大地降低業務人員運維多套系統的技術複雜度和運維成本。可以說,無論是微服務的指令調用、異步通知,還是 CDC 變更日志、行為埋點資料,亦或是資源運維、審計事件,統一的 RocketMQ5.0 産品棧都能統一處理。
重大釋出一:RocketMQ 基礎架構全新更新
首先,最重要的更新是阿裡雲 RocketMQ 的技術架構全面煥新。
全新的 RocketMQ5.0 版将通用的存儲邏輯下沉,集中解決消息存儲的多副本、低延遲、海量隊列分區等技術問題,将上層的消息處理和剝離出完全的無狀态計算層,主要完成協定适配、權限管理、消費狀态、可觀測運維體系支援。得益于存算分離的架構設計,從 SDK 接入到線上運維全鍊路帶來全面提升:
- 輕量版 SDK 的開放和全鍊路可觀測系統的提升:同時支援 4.x 通信協定和全新的 gRPC 通信協定,并内置 OpenTelemetry 埋點支援,新版本 SDK 新增了 10 餘個名額埋點。
- 消息級負載均衡:新版本 SDK 不再參與實際存儲隊列的負載均衡,消息負載均衡将更加輕量,以單條消息為排程最小單元。
- 多網絡通路支援:新版本支援單一執行個體同時暴露公網、内網等通路形式,友善客戶多網絡接入通路。
- 海量分級存儲:新版本開放分級存儲曆史消息儲存能力,消息低成本無大小限制,最長儲存 30 天。冷熱資料進行分離設計,極大降低消費曆史消息對執行個體的性能影響。
重大釋出二:RocketMQ Streaming 雲上最佳實踐——消息ETL
消息基礎架構的能力提升之外,阿裡雲 RocketMQ 在 Streaming 流式處理場景推出了輕量級消息 ETL 功能。
使用者在資料庫變更、終端資料上報、背景埋點日志等場景産生的消息,典型的消費場景就是資料清洗轉化,同時再存儲到外部的存儲和離線分析、線上分析系統中。傳統實作方案需要搭建 Flink 等重量級實時計算服務或者自建消費應用做消息處理。而使用商業版 RocketMQ ETL 功能,簡單控制台配置即可實作消息的清洗和轉化。RocketMQ ETL 功能有三大優勢:
- 輕量無依賴:作為阿裡雲消息原生功能,使用時不需要部署外部計算服務或消費程式,方案更輕量。
- 開發門檻低:内置常見清洗轉化模闆,滿足絕大多數消息内容處理需求,并支援使用者快速編寫自定義函數來支援特殊的業務邏輯。整體開發成本非常低,1 小時即可完成業務上線。
- Serverless 彈性:無需預先估算容量,采取 Serverless 無伺服器模式,實作按需彈性伸縮。
重大釋出三:EDA 雲上最佳實踐——事件中心 EventBridge
本次 RocketMQ 最後一個釋出點是在事件驅動的業務場景的布局和演進。早在 2018 年,Gartner 評估報告将 EDA(Event-Driven-Architecture) 列為十大戰略技術趨勢之一,事件驅動架構将成為未來微服務主流。我們首先下一個定義:
事件驅動其本質是對消息驅動的再更新,是企業IT架構深度演進的下一個必然階段。
事件驅動架構和消息驅動架構的差別和關聯主要集中于以下三點:
- EDA 更加強調深層次解耦:消息驅動是同一業務、組織系統内不同元件之間在技術架構層面的調用解耦,其資訊封裝和處理都是有預期、預定義的。事件驅動适配是更寬泛的業務、組織系統,基于事件的解耦上下遊之間無需有預期和行為定義,上下遊統一遵循标準化的規範,這是更深度的解耦。
- EDA 更加強調連接配接能力:消息驅動更多是單一系統内的調用,而事件驅動往往會涉及到不同的地域、賬戶主體以及三方 SaaS 的協同,事件驅動的一大特征就是生态的強連接配接能力。
- EDA 更加強調 Serverless 低代碼開發:類比于消息和微服務的協同關系,未來業務架構 Serverless 化的大趨勢會推動業務開發模式逐漸轉向低代碼配置化。事件驅動的另一大特征就是低代碼開發,基于豐富的工具能力,業務側不需要像消息驅動一樣編寫大量的生産消費代碼。
是以,阿裡雲統一事件中心 EventBridge 産品帶來如下能力:
- 統一标準化的事件內建生态:作為阿裡雲事件中心,內建 80 餘款雲産品的業務事件,支援 800 多種事件類型,使用者使用 EventBridge 可以一次性管理所有雲産品資源的變更、操作使用事件,避免對接多個産品接口的重複性勞動。
- 全球事件互通網絡:貫徹事件驅動強連接配接的屬性能力,本次釋出了全球事件互通網絡,首批支援國内五大地域事件互通。企業客戶簡單配置即可實作跨賬号、跨地域、跨網絡的事件聚合和流轉。
- Serverless 低代碼開發:内置十餘種事件目标和處理模闆,涵蓋了大多數業務場景,客戶簡單配置、低代碼,無需部署服務即可完成事件的驅動和處理。
面向未來:堅定推動“消息、事件、流”大融合的發展
RocketMQ5.0 的釋出标志着阿裡雲消息正式從消息領域正式邁向了“消息、事件、流”場景大融合的新局面。未來阿裡雲消息産品的演進也将繼續圍繞消息、事件、流核心場景而開展。消息基礎架構本身也必将步伐不斷,繼續朝着 Serverless 彈性、強容災能力、可觀測免運維方向推進,給客戶帶來高性能、高可靠、強容災的高 SLA 服務;并在 Streaming 的場景會基于客戶業務訴求,聯合生态産品持續推出更多的消息處理計算服務;打造面向未來的企業內建模式,聯合生态夥伴和開源社群大力推動事件驅動進一步發展。
點選下方連結,觀看企業網際網路架構論壇直播回放!
https://yunqi.aliyun.com/2021/agenda/session184?spm=5176.23756404.J_6556766720.7.41c07c21SwyCvF