ApacheRocketMQ
RocketMQ是一个分佈式消息佮流數據平台,具有低延遲、高性能、懸可靠性、萬億級容量佮靈活的會當擴展性。RocketMQ 是二空一二年阿里巴巴士開源的第三代分佈式消息中央件,二空一六年十一月二一,阿里巴巴向 Apache 軟體基金會捐矣 RocketMQ;第二年二月二十日,Apache 軟體基金會宣佈 Apache RocketMQ 成做頂級項目。
歷史
RocketMQ 的發展會當分做三个階段。
頭一代佇數據傳輸中使用 push 模式,佇數據存儲中使用關係型資料庫。伊展現消息傳達的低延遲,並且滿足了具有分布式事務的典型電子商務平台的用途。
第二代佇數據傳輸中使用 pull 模式,佇數據存儲中使用文件系統。伊閣較注重穩定性佮可靠性,並顯示出佮第一代響應時間佮 Kafka 日誌的收集誠好的性能。
第三代共 pull 模式佮一寡 push 操作相結合。伊繼承第一代佮第二代的優點,並且佇咧並且發性佮大量的數據場景內表現出高性能。
功能
各種消息傳遞解決方案之間已經進行矣誠濟較,眾所周知,做主題數量急劇增加的時,RocketMQ 的吞吐量下降幅度較細 Kafka。因為有高性能、高可靠性佮高實時性的特點,RocketMQ 佮其他的協議組件佇咧 MQTT 等各種的消息場景中的結合嘛愈來愈濟。
架構
RocketMQ 由四部份組成:號名侍服器(Name Server)、 代理(Broker)、 生產者(Producer)佮消費者(Consumer), 其中每一个攏會當水平擴展無單點故障,如上圖所示。
號名侍服器集群
號名侍服器集群是用服務發現的輕量級組件,𪜶會當用佇讀取佮寫入路由信息。逐个號名侍服器會當記錄全局信息,閣支持快速存儲擴展。
代理集群
代理集群使用輕量級主題(topic)佮隊列(queue)機制來管理數據存儲。為著實現容錯,代理提供二份抑是三份數據。客戶捀會當佇 Push 和 Pull 模型當中得著消息。此外,猶閣支持災難恢復佮豐富的指標統計信息。
生產者集群
生產者(Producer)會當分布式部署,對生產者到代理的消息會當通過多路徑進行平衡。此外,閣支持快速故障恢復佮低延遲。
消費者集群
消費者嘛會當佇 Push 和 Pull 模型中進行分布式部署,𪜶會當實時訂閱消息,以集群做單位消費消息,同時閣支持消息放送。
應用
Apache RocketMQ 至少會當應用著以下五个方面:
- 異構系統的集做;
- 應用程式之間的分離;
- 佇事件驅動機制佮複雜事件架構模型中的骨幹;
- 數據複製圳溝;
- 佮流計算 ia̋n-jín 集做伙。
社區維護
RocketMQ 團隊為活跳社區做真濟工課。聚會、研討會啦、ApacheCon 和 Code Marathon 定期佇北京、深圳、杭州等地舉行,以吸引新的貢獻者佮提交者。OpenMessaging 基準測試套件目前會當用佇 RocketMQ,伊使 RocketMQ 佮分佈式消息傳達的全球標準保持仝步。對著版本管理,採用著一系列標準化的軟體開發過程。上新版本是四配二 . 零,四配三 . 零咧欲推出。會當佇遮揣閣較濟信息。
得著獎
二空一六年度上受著歡迎中國開源軟體獎二空一七年度上受著歡迎中國開源軟體獎第十二擺的中日韓 ( 中國-日本-韓國 ) 開源軟體優秀技術獎二空一八年度上受著歡迎中國開源軟體獎
參見
參考文獻
外部連結
- Apache RocketMQ 網站
- Apache RocketMQ Externals
- 是因為 RocketMQ 的 MQTT 協議消息推送侍服器
