本次主要介紹蘇寧支付系統如何實現500天性能提高2000倍,從100筆/秒提高到20萬筆/秒,給飛行中的飛機換引擎,將包括三大章節六個部分: 蘇寧支付平臺發展歷程,以及如今運行的整體架構設計,以及配套的可視化做戰指揮系統,以及在業務急速變化,萬億級交易量的狀態下,如何對全局架構進行優雅地重構,設計模式
具體技術包括高可用設計技巧,高伸縮性設計思路,彈性的流量和資源控制,異地多活,全鏈路壓測,消除數據瓶頸與單點,熱點追蹤與防禦,故障自愈,帳務系統之大帳戶瓶頸解決方案。安全
蘇寧支付平臺演進經歷了四個階段:從傳統的架構,到SOA架構,到雲計算架構以及目前的智能支付引擎;服務場景也從單一的服務蘇寧易購,到服務蘇寧內外部生態圈,再到提供行業解決方案。TPS從100到20w+的支付處理能力;交付週期也從最初的按月交付到如今的準實時交付。架構
支付平臺是整個金融的基礎設施,也是公共設施,服務於幾十個事業部的幾百條產品線,若是每一條產品線提一個需求,那就要同時響應幾百個需求,同時還要面對業務的大促,由於蘇寧是O2O的模式,業務場景會更加複雜,線上線下都有:線下的五1、國慶;線上的41八、61八、81八、雙十一、雙12,基本上每兩個月就有一個S級大促;一方面要保證業務需求的快速響應,另外一方面也須要保證大促的安全穩定,對來講業務須要快,對系統來說須要穩,那就須要咱們的系統,是一個高可用、可伸縮、低成本、快速交付的系統。工具
第二部分介紹如今正在運行的整體架構設計,包括整體業務架構設計,整體系統架構設計,整體技術架構設計,關鍵子域的架構設計;性能
首先是整體業務架構設計,主要包括4個部分:第1部分是咱們服務的渠道和場景,包括SDK,WAP,PC各端,線上線下門店;以及電商體系的應用,金融APP的應用等;第2是咱們的合做方銀行:包括中農工建交等之前的直連銀行,之後後來的網聯,銀聯等;第3是貫穿整個全流程的風險控制體系與運營支撐體系,包括欺詐風險,信用風險,以及配置產品,運營的各類支撐系統;第4是雲支付平臺自己。在雲支付平臺中包含三大子架構域:一是開放平臺,把咱們內部的服務統一開放出去給各個渠道、各個服務去使用;二是對這個平臺進行層層抽象,將c端業務平臺當中線上線下的公用邏輯抽取到c端業務平臺,b端業務平臺當中各個行業支付的公用邏輯,咱們會抽取到b端公用平臺。第3做爲支付核心,會統一整合內外部支付工具以及帳戶核心操做指令統一提供給上層使用。測試
總體架構的設計,咱們採用了插件式的架構設計思想,好比服務交付層,咱們基於標準的平臺業務進行服務交付,這樣可使各應用域獨立並行的研發;對網關服務層,咱們基於標準的外部服務引入,使平臺具備快速可擴展性。雲計算
業務架構和系統架構決定了咱們的技術架構,技術架構包括三大部分:插件
持續交付層,以及支撐咱們持續交付的中間件層以及基礎設施部分:持續交付重點有兩個,第一是快:開發快,因此咱們有開發的插件、模板生成工具;測試快,從自動化測試到持續集成,到一鍵建站的統一拉起;發佈快,有現成的發佈流程支持。架構設計
第二是穩:開發的過程會作這一些非功能性的設計,如:伸縮型設計,監控設計,資損防控設計;資損防控設計有三層:第1層是開發與測試,第2次是監控與覈對,第3層是止損與追款。平穩,發佈時支持灰度發佈和預案回滾。設計
接下來說關鍵子域架構設計,收銀臺分爲三層:第1層是業務產品層;第2層是業務接入層,會作一些異常的適配,如不一樣的errorCode能夠展現不一樣的異常界面,對用戶體驗比較好。第3是核心層,用戶偏好與習慣、額度控制等。收銀臺是從一個簡單的收銀門面,千人一面,逐漸發展到千人千面,再到一人千面。支付引擎會整合銀行相關的外部支付工具,以及零錢寶、任性付、信用支付、現金貸等內部支付工具,同時進行帳戶操做指令的封裝(主帳務核心和各個業務的微帳務核心)。對咱們來講,帳務核心、支付工具羣和支付外轉接中心都是一個個插件,開發速度快;在具體的一個支付工具內部,也是插件式的;這樣就徹底能夠實現大規模的並行研發;最後是網關層,面向接入銀行渠道和接入合做大商戶:第1層是報文組裝解析層,第2層是適配器層,第3層是路由引擎;由圖可見,每家銀行的公用邏輯相同,能夠經過設計模式封裝。不一樣的是輸入參數的獲取策略以及輸出參數的不一樣闡釋策略。
參考:https://mp.weixin.qq.com/s/aYsQFmpchkyPIXBsjo8jOQ