Metamorphosis (MetaQ) 是一個高性能、高可用、可擴展的分佈式消息中間件,相似於LinkedIn的Kafka,具備消息存儲順序寫、吞吐量大和支持本地和XA事務等特性,適用 於大吞吐量、順序消息、廣播和日誌數據傳輸等場景,在淘寶和支付寶有着普遍的應用,現已開源。html
Metamorphosis是淘寶開源的一個Java消息中間件。關於消息中間件,你應該據說過JMS規範,以及一些開源實現,如ActiveMQ和HornetQ等。Metamorphosis也是其中之一。python
Metamorphosis 的起源是我從對linkedin的開源MQ–如今轉移到apache的kafka的學習開始的,這是一個設計很獨特的MQ系統,它採用pull機制,而 不是通常MQ的push模型,它大量利用了zookeeper作服務發現和offset存儲,它的設計理念我很是欣賞並贊同,強烈建議你閱讀一下它的設計 文檔,整體上說metamorphosis的設計跟它是徹底一致的。可是爲何還須要meta呢?mysql
1.Kafka是scala寫,我對scala不熟悉,而且kafka整個社區的發展太緩慢了。sql
2.有一些功能是kakfa沒有實現,可是咱們卻須要:事務、多種offset存儲、高可用方案(HA)等數據庫
3.Meta相對於kafka特有的一些功能:apache
所以meta相比於kafka的提高是巨大的。meta在淘寶和支付寶都獲得了普遍應用,如今天天支付寶天天經由meta路由的消息達到120億,淘寶也有天天也有上億的消息量。緩存
做者:雪姬微信
來源:移動支付網(微信公衆號:mpaypass)架構