**:www.cnblogs.com/wintersun/
支付將永遠是公司的核心領域,因為它是具有交易屬性的公司的命脈。 那麼,支付系統是什麼樣子的,它是如何工作的呢?無論持有支付牌照的金融公司的支付架構如何,以下環節和系統元件基本符合大多數支付場景。
其實整體可以看作是兩大系統:交易核心+支付核心。 交易系統與業務場景和底層支付相關聯,支付系統完成從呼叫支付工具到對賬清算的一系列相關操作。 讓我們看一下每個系統的核心元件和互動。
業務圖譜
交易的核心是將公司的業務系統與底層支付相關聯,讓業務系統專注於業務,而不關心底層支付。
基礎事務型別是抽象的
多表聚合和順序關聯
支付核心主要負責將多種支付型別抽象為充值、提現、退款、轉賬四種支付形式。 同時,它還負責整合多種支付工具,編排支付指令等。
其目的是實現外掛程式開發的靈活開發方式和可配置的支付規則。
異常處理包括重複支付、部分支付、金額不一致等異常情況。
通道閘道器
資金會計
在確定系統邊界和業務建模拆分後,整個支付平台被拆分為幾十個服務,如何保證服務之間流動的業務資訊不丟失,是我們需要考慮的問題。 通過貫穿整個支付平台鏈傳輸的平台統一上下文的元素資訊(唯一業務識別碼)來解決這個問題。
大型支付公司內部有非常嚴格和完整的資料一致性方案,比如使用業務侵入性很強的分布式交易等,以犧牲開發效率為代價來提高資料穩定性是非常必要的。 如果商業公司不採用分布式交易,他們有什麼應對策略?
冪等和異常補償
和解
近乎實時的對賬
資料庫拆分
支付是整個交易鏈的核心環節,那麼如何兼顧支付系統的穩定性和執行效率呢?是非同步的。
外部支付呼叫是非同步的
在對外支付中,往往需要服務商與第三方支付進行互動才能獲得預付費憑證,如上圖所示。
在這種同步呼叫的情況下,由於需要跨外網,響應的 RT 會很長,並且可能會出現跨秒的情況。 由於是同步呼叫,整個支付環節都會被阻塞。 一旦RT很長,QPS比較大,服務就會整體持有,甚至服務也會被拒絕。
因此,可以拆分獲取憑證的操作,使用獨立閘道器通道的前端服務,從前端閘道器非同步獲取內部憑證,然後前端閘道器就可以非同步呼叫第三方了。
非同步基金會計
熱點賬戶核算單獨處理
會計交易切片
構建壓力測試模型以模擬真實場景壓測資料儲存在影子資料庫中,不會侵入正常業務無論是單機效能還是集中式鏈結都不能忽視;系統穩定性和容量比的識別
穩定性治理
核心鏈路分離
服務依賴關係已降級