閱讀284 返回首頁    go 支付寶


支付寶係統架構

前言

支付寶是中國支付行業的一個標兵,無論是業務能力還是產品創都引領者中國支付行業的前沿,作為支付業務的基礎係統的複雜性和穩定性是支付業務是否能夠及時快速安全處理的根本,本期支付圈收集了支付寶的係統架構圖包含:清算 客服 處理 資金 財務 等等 供其他支付公司進行參考!本文為網絡收集信息,雖然不屬於支付寶的最新係統架構但是作為支付行業的龍頭,架構係統依然值得學習!

支付寶係統架構概況

典型處理默認

資金處理平台

財務會計

支付清算

核算中心

交易

柔性事務

支付寶的開源分布式消息中間件--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的原因:

Kafka是scala寫,我對scala不熟悉,並且kafka整個社區的發展太緩慢了。

有一些功能是kakfa沒有實現,但是我們卻需要:事務、多種offset存儲、高可用方案(HA)等

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來使用的其他功能

總體結構:

內部結構:

版權聲明:虛擬貨幣交流平台除發布原創文章以外,亦致力於優秀文章的交流分享。部分文章推送時未能及時與原作者取得聯係,若涉及版權問題,敬請及時聯係我們刪除!

最後更新:2017-10-22 00:57:26

  上一篇:go 支付寶這項功能慎用!已有多人被騙,你很可能正在用
  下一篇:go 支付寶你個大忽悠!老子差點被搞成無家可歸!