您好,登錄后才能下訂單哦!
支付寶系統架構概況大數據
典型處理默認大數據
資金處理平臺大數據
財務會計大數據
支付清算大數據
核算中心大數據
交易大數據
柔性事務
支付寶的開源分布式消息中間件--Metamorphosis(MetaQ)
Metamorphosis (MetaQ) 是一個高性能、高可用、可擴展的分布式消息中間件,類似于LinkedIn的Kafka,具有消息存儲順序寫、吞吐量大和支持本地和XA事務等特性,適用 于大吞吐量、順序消息、廣播和日志數據傳輸等場景,在淘寶和支付寶有著廣泛的應用,現已開源。
Metamorphosis是淘寶開源的一個Java消息中間件。關于消息中間件,你應該聽說過JMS規范,以及一些開源實現,如ActiveMQ和HornetQ等。Metamorphosis也是其中之一。
Metamorphosis 的起源是我從對linkedin的開源MQ--現在轉移到apache的kafka的學習開始的,這是一個設計很獨特的MQ系統,它采用pull機制,而 不是一般MQ的push模型,它大量利用了zookeeper做服務發現和offset存儲,它的設計理念我非常欣賞并贊同,強烈建議你閱讀一下它的設計 文檔,總體上說metamorphosis的設計跟它是完全一致的。但是為什么還需要meta呢?
簡單概括下我重新寫出meta的原因:
1.Kafka是scala寫,我對scala不熟悉,并且kafka整個社區的發展太緩慢了。
2.有一些功能是kakfa沒有實現,但是我們卻需要:事務、多種offset存儲、高可用方案(HA)等
3.Meta相對于kafka特有的一些功能:
-文本協議設計,非常透明,支持類似memcached stats的協議來監控broker
-純Java實現,從通訊到存儲,從client到server都是重新實現。
-提供事務支持,包括本地事務和XA分布式事務
-支持HA復制,包括異步復制和同步復制,保證消息的可靠性
-支持異步發送消息
-消費消息失敗,支持本地恢復
-多種offset存儲支持,數據庫、磁盤、zookeeper,可自定義實現支持group commit,提升數據可靠性和吞吐量。
-支持消息廣播模式
-一系列配套項目:python客戶端、twitter storm的spout、tail4j等。
因此meta相比于kafka的提升是巨大的。meta在淘寶和支付寶都得到了廣泛應用,現在每天支付寶每天經由meta路由的消息達到120億,淘寶也有每天也有上億的消息量。
Meta適合的應用:
-日志傳輸,高吞吐量的日志傳輸本來就是kafka的強項;
-消息廣播功能,如廣播緩存配置失效;
-數據的順序同步功能,如mysql binlog復制;
-分布式環境下(broker,producer,consumer都為集群)的消息路由,對順序和可靠性有極高要求的場景;
-作為一般MQ來使用的其他功能。
總體結構:
內部結構:
更多內容請關注微信公眾號:it_haha
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。