神州信息新動力數字金融研究院 首席架構專家 薛春雨
銀行業“多活”的發展歷程
受監管政策的要求,銀行一般會在同城、異地或者多地進行數據中心建設,以保證系統的穩定運行,但從目前實際情況來看,“同城雙活”目前仍是很多銀行采用的主要形式。銀行業的“多活”架構在發展過程中存在三種典型的方式,可以形象的歸納為:“基本的活著”、“更好的活著”和“平等的活著”。
什么是“基本的活著”?在信息化建設的早期,銀行通過將不同的業務系統部署在不同的數據中心,以保證不同的數據中心都處于活動狀態。但是該模式一般邏輯上還是存在主中心的概念。例如,將核心業務系統、支付系統部署在主中心,而另一個中心部署和處理相對不太關鍵的業務系統。
什么是“更好的活著”?還是以核心系統為例,核心系統在同城兩個數據中心同時部署,共同對外提供服務,實現應用層的多活,但是該模式還是存在一個主庫,所以在同城另外一個中心發起的交易存在跨中心的數據訪問,對于SQL數較多的交易影響明顯。
什么是“平等的活著”?也就是數據中心在應用與數據兩個層面都完全對等,例如如下解決方案。同城兩個數據庫都是全量數據庫,本中心的核心應用只連本中心的數據庫,沒有跨中心的數據訪問,不同數據中心通過雙向同步實現數據備份,但是針對銀行業務的復雜性,該模式存在兩個挑戰。一是可能出現多個中心同時對同一條數據的寫操作;二是雙向同步受數據庫限制較大。所以,這種方案行業內暫時還沒實施案例,但行業對“平等的活著”的探索一直沒有停止。
核心系統對“多活”的第一性訴求
在進行“多活”架構建設中,需要剖析問題的本質,抓住銀行進行“多活”架構建設的第一性訴求。從“高中低”可以劃分為三個訴求:
· 數據中心完全對等:數據中心同時對外提供服務,資源使用基本均衡,并且可在不同的數據中心快速切換;
· 更好的性能保證:在滿足核心業務場景的前提下,盡量避免跨中心的數據訪問及跨地域的交易;
· 故障的影響?。喊l生各種不同類型的故障時,對系統影響盡可能小,并且出現故障后可以快速恢復。
核心系統“多活”架構的建設實踐
結合銀行核心應用系統的建設實踐,目前行業中一般采用兩種方式進行“多活”架構的建設。一種是“單元化”的解決方式;另一種是通過“輕量化”的解決方式。雖然兩種方式都可以解決銀行“多活”建設過程中的問題,但是結合上面對“多活”建設的第一性訴求,“輕量化”的解決方案不僅可以實現數據中心的完全對等,并且可實現本中心內調用,無跨異地交易,更好的保證了性能。同時,在應用層可以實現故障面更小的影響,滿足銀行進行“多活”建設的最高訴求,既故障影響最小。
什么是單元化?單元化的本質是數據層的分布式。通過將業務劃分為獨立,功能相同的業務單元,并且每個單元內部都可以處理完整的業務流程,所有單元的數據合并形成完整的數據,這是對單元化的準確描述。理論上單元化是一個架構級的解決方案,因為實現單元化的前提是需要單元尋址,通過全局路由首先確定業務需要訪問和處理的單元。所以單元化相比后面提到的“輕量化”解決方案,對業務層的侵入和影響要大很多。
單元化的架構模式目前也被一些銀行所采用,其具有的優勢在于,一是可以滿足對“多活”模式的需求;二是便于以單元為單位實現擴展、備份和恢復;三是各單元物理隔離,線性增長明顯,相互間影響較小。單元化的主要弊端在于,一是架構復雜程度高,由于“單元尋址服務”的引入,對其的穩定性、可靠性及運維都提出了較高的要求,并且還有一些共性的功能需要統一考慮。二是業務的復雜度增加明顯,架構只在入口進行數據拆分及路由,拆分帶來的所有問題都需要應用來解決;跨單元查詢甚至需要另外獨立的系統來處理;某些沒有包含拆分字段的業務需要特殊處理。三是考慮災備因素,單元化投入成本會更大。
什么是“輕量級”的解決方案?“輕量級”是相對比架構級的單元化而言。如果可以用一種“輕量級”的解決方案解決“多活”建設的訴求,其實是為銀行的“多活”架構建設提供了一條新的建設路徑,尤其是針對很多科技能力、科技投入相對大行較低、較少的中小銀行,既滿足了訴求,又降低了建設難度。
“輕量級”解決方案的優勢在于,一是架構簡潔,只需要對數據進行分庫處理,不會對應用層帶來入侵。二是針對跨中心的訪問,可以通過應用層跨中心路由實現,規避跨中心的數據訪問,并輕量級解決跨分庫查詢的問題。三是應用實例完全對等,單個故障幾乎無影響,實現高可靠性。但同樣對跨中心路由的性能、穩定性、一致性等的要求較高,如果只是簡單的邏輯計算,該缺點可以忽略。
綜合兩種解決思路,明顯“輕量級”解決方案硬件資源投入小、架構簡單易維護、對應用侵入小,同時也可以支撐億級以上的數據量。所以,筆者認為單元化只是現階段銀行分布式轉型中的一種過渡方式,在云原生時代,輕量級的解決方案更符合技術和架構的發展趨勢。
責任編輯:韓希宇
免責聲明:
中國電子銀行網發布的專欄、投稿以及征文相關文章,其文字、圖片、視頻均來源于作者投稿或轉載自相關作品方;如涉及未經許可使用作品的問題,請您優先聯系我們(聯系郵箱:cebnet@cfca.com.cn,電話:400-880-9888),我們會第一時間核實,謝謝配合。