李朝暉
一直以來,商業(yè)銀行主要基于大中型主機、以集中式架構構建其業(yè)務系統(tǒng),這種架構具有技術成熟、系統(tǒng)可靠、應用實現(xiàn)相對簡單等優(yōu)點,同時也存在核心技術由國外供應商所壟斷、系統(tǒng)投入成本高等缺點。隨著開放平臺處理能力的大幅提升、高速網(wǎng)絡技術的日益成熟,以及云計算、分布式存儲等新技術的快速發(fā)展和應用,基于開放平臺、采用分布式架構建設業(yè)務系統(tǒng),由于具有成本低、易擴展、自主可控等優(yōu)勢,也成為商業(yè)銀行架構轉(zhuǎn)型的趨勢。
分布式業(yè)務系統(tǒng)建設歷程
中國郵政儲蓄銀行(以下簡稱“郵儲銀行”)是在改革原有郵政儲蓄管理體制基礎上設立的一家大型國有商業(yè)銀行。2007年郵儲銀行成立后,業(yè)務應用的開發(fā)延續(xù)了之前基于開放式平臺的技術路線。隨著商業(yè)銀行業(yè)務的全面開展、業(yè)務量的快速增長,以及應用系統(tǒng)全國集中建設模式的不斷推進,如何構建滿足大業(yè)務量、高并發(fā)量、高可用性、可擴展性、靈活開放的銀行業(yè)務系統(tǒng),成為郵儲銀行面臨的課題。針對我行信息化歷史包袱小的實際情況,經(jīng)過充分論證和實踐驗證,積極探索和經(jīng)驗總結(jié),郵儲銀行以開放式平臺為基礎,采用分布式架構,使用小型機并大規(guī)模應用PC服務器組建集群等技術,形成了獨具郵儲銀行特色的分布式系統(tǒng)架構模式。
經(jīng)過10年的發(fā)展,郵儲銀行已建設并在線運行100多個應用系統(tǒng),這些系統(tǒng)全部采用分布式架構建設,其中除部分涉及賬務處理的應用基于小型機分布式集群構建外,超過80%的應用系統(tǒng)基于PC服務器集群構建。截至2016年年底,郵儲銀行基于分布式的業(yè)務系統(tǒng)支撐了全行近4萬個網(wǎng)點、5億多客戶的穩(wěn)定運營,日峰值交易量超過1.5億筆,較好地滿足了業(yè)務快速發(fā)展的需要。
另外,在云計算技術應用方面,郵儲銀行基于OpenStack開放云平臺技術構建私有云,先后在渠道管理平臺、互聯(lián)網(wǎng)網(wǎng)貸、移動展業(yè)等生產(chǎn)系統(tǒng)進行部署和應用。目前,云平臺交易占比已超過全行交易量的30%。通過云計算技術的應用,極大地提高了資源利用率,提升了系統(tǒng)資源擴展性,有效應對了突發(fā)性的交易壓力。
分布式業(yè)務系統(tǒng)架構模式
相對于集中式架構,分布式業(yè)務系統(tǒng)具有功能分散、交互關系復雜、處理能力不平衡等特點,因此對于系統(tǒng)的總體性能提出了更高要求。同時,由于采用分布式架構,必然面臨CAP理論的約束,即一致性、可用性、容錯性三者不可兼得。但作為銀行業(yè)務應用,三者又都不能忽視,如何取舍和補償以滿足業(yè)務要求,也是分布式業(yè)務系統(tǒng)所面臨的嚴峻問題。郵儲銀行在信息化建設過程中,為解決生產(chǎn)系統(tǒng)中存在的性能瓶頸,提高系統(tǒng)高可用性,滿足一致性、容錯性要求,摸索了一系列行之有效的方法和措施,并在應用過程中不斷完善。
性能保障措施
在保證系統(tǒng)性能方面,通過分離處理功能、分散處理壓力、優(yōu)化數(shù)據(jù)結(jié)構、擴展處理能力等措施,提升分布式業(yè)務系統(tǒng)的總體性能。
分離處理功能是在分布式業(yè)務系統(tǒng)中,將與業(yè)務處理過程耦合度較低的處理功能進行分離,減少單位硬件平臺上的處理壓力,保障業(yè)務處理可以獲取更多的處理資源,從而提升系統(tǒng)的整體處理性能。其中,包括依據(jù)性能影響分離和依據(jù)處理功能獨立性分離兩類。依據(jù)性能影響分離主要是針對性能影響的需要進行處理上的分離,如個人核心系統(tǒng)劃分卡子系統(tǒng)、折子系統(tǒng)、參數(shù)管理子系統(tǒng)、日終處理子系統(tǒng)等;依據(jù)處理功能獨立性分離是將一些功能獨立、具備共享價值功能模塊進行分離,如將個人核心系統(tǒng)的尾箱管理、現(xiàn)金與憑證管理、會計核算管理等功能,分離到獨立的系統(tǒng)中。
分散處理壓力是在應用設計中充分考慮應用架構對壓力分散的助力,盡量杜絕跨數(shù)據(jù)庫事務處理,通過對應用進行有針對性分離設計,以分散方式進行部署,充分發(fā)揮小型機集群、PC服務器集群特點,分散系統(tǒng)處理壓力。其中應用設計上的分離包含兩類,一類是處理流程的分離,即分離出性能瓶頸過程,降低與其他處理過程的耦合度,以提高其并行處理能力;另一類是處理功能的分離,減少單位硬件平臺上的處理壓力,充分利用硬件平臺及系統(tǒng)軟件的橫向擴展能力,擴展系統(tǒng)整體處理能力。
優(yōu)化數(shù)據(jù)結(jié)構主要是通過簡化數(shù)據(jù)結(jié)構、刪除冗余結(jié)構,實現(xiàn)數(shù)據(jù)存儲的優(yōu)化,提升整體處理性能。對數(shù)據(jù)結(jié)構進行簡化,如流水日志存儲的簡化、流水內(nèi)容的拆分和精簡、字段長度的精簡等,以及對冗余數(shù)據(jù)結(jié)構的適當刪除,如對各類登記簿、流水日志冗余項的刪除,提升數(shù)據(jù)存儲及使用性能。簡化數(shù)據(jù)存儲的同時,還需兼顧處理性能設計的其他方面,如有冗余數(shù)據(jù)存儲要求的處理過程需綜合、全局地考慮其數(shù)據(jù)結(jié)構。
應用軟件處理能力的擴展包括計算資源的擴展和應用軟件處理能力的擴展。計算資源的擴展是基礎,包括主機、存儲、網(wǎng)絡設施等資源;應用軟件處理能力的擴展主要關注如何使應用架構可以平滑適應計算資源的擴展,并能充分利用擴展的處理資源來分擔系統(tǒng)處理壓力,進而達到整體處理能力擴展的目的。
可用性保障措施
高可用性是郵儲銀行分布式業(yè)務系統(tǒng)重點保證的另一屬性,主要包括應用負載均衡、系統(tǒng)故障隔離、系統(tǒng)流量控制、數(shù)據(jù)分片等措施。
其中的應用負載均衡設計不同于普通集群架構下采用專用設備或中間件實現(xiàn)交易請求負載分發(fā),而是探索一條相對獨立的應用層實現(xiàn)交易路由控制的管理方法。具體實現(xiàn)機制是,應用層通過管理節(jié)點狀態(tài)、交易處理情況等信息,采用輪詢負載分發(fā)策略,并設置負載因子,由應用軟件實現(xiàn)聯(lián)機交易在系統(tǒng)內(nèi)部各個子系統(tǒng)集群節(jié)點間的分發(fā)處理,達到節(jié)點間交易處理的均衡分派。
系統(tǒng)故障隔離機制可以在應用軟件系統(tǒng)發(fā)生故障的時候,將故障造成的危害限制在最小范圍內(nèi)。通過應用軟件設計中考慮應用服務、應用服務框架的靈活部署,從服務、交易、子系統(tǒng)到渠道層面設置響應的運行開關,通過對開關的控制,可以中止指定應用的運行,實現(xiàn)多角度、多層次的故障隔離。同時,通過對響應服務的啟停,也支持對指定端口服務請求監(jiān)聽的停止。
系統(tǒng)流量控制基于分布式業(yè)務系統(tǒng)的邏輯架構,依據(jù)系統(tǒng)、子系統(tǒng)、渠道等不同層面的交易流量、交易狀態(tài)和確定的控制策略、控制規(guī)則,對系統(tǒng)實施控制?;趹密浖倪壿嫹謱咏Y(jié)構,在服務請求的統(tǒng)一受理端及處理流程中的關鍵環(huán)節(jié)中設計響應的流量控制機制,結(jié)合相關的設置,將系統(tǒng)流量控制中認為需要拒絕的服務請求直接拒絕,以達到逐層進行流量控制的目的,同時,也保障由于負載過重,新的自動啟動的應用服務可以保持一定的處理流量。
一致性保障措施
在一致性保障方面,郵儲銀行的分布式系統(tǒng)主要包含補償機制、SAF機制、對賬與差錯處理等措施。
補償機制是對異常交易帶來的數(shù)據(jù)不一致進行交易補償。補償機制與前端操作及提示相互配合,首先保障給出正確的收款或不付款提示,以便操作員進行正確的現(xiàn)金實物操作,避免資金風險。
SAF機制對系統(tǒng)間的通訊異?;蛱幚懋惓L峁┙灰妆U?。其中,業(yè)務系統(tǒng)支持渠道層系統(tǒng)發(fā)來的SAF處理請求,并負責在產(chǎn)品服務流涉及的所有子系統(tǒng)上完成SAF請求的處理。具體策略包括:在交易過程中通過SAF處理機制盡量保證交易的成功;定期針對未完成的SAF處理,自動發(fā)起SAF處理;每日日間營業(yè)結(jié)束后,針對未完成的SAF處理,自動發(fā)起SAF處理。