近年來,金融行業(yè)因龐大復雜的業(yè)務場景和爆炸式增長的業(yè)務發(fā)展需求,導致對基礎架構的擴展能力、容災能力、灰度能力的要求也越來越高。分布式單元化架構恰好同時滿足金融企業(yè)的多種需求,通過架構進行系統(tǒng)建設升級、增強整體能力。可要想一直保持單元化架構的平穩(wěn)運行,就需要具備一個不可或缺的組件——分布式定位服務,它是實現(xiàn)單元化架構的基本運行保障,可覆蓋多種業(yè)務場景,降低業(yè)務整體復雜度。
長亮科技基于多年在銀行核心領域先進技術經驗的積累,不斷沉淀和強化出一套分布式定位服務組件,讓我們一起看看,長亮科技在這方面的經驗與見解。
作者
Jonder.Wong 后端架構師
擁有14年后端開發(fā)與從業(yè)經驗,負責數(shù)據(jù)處理與單元化組件的探索與設計工作。
掃清認知迷霧
了解分布式定位服務
在介紹分布式定位服務之前,我們先介紹下單元化架構的概念,單元是指一個能完成某一類業(yè)務操作(如個人存款業(yè)務)的自包含集合,在這個集合中包含了業(yè)務所需的服務,以及分配給這個單元的客戶數(shù)據(jù)。單元作為部署的基本單位,通常會在在多個機房中容災部署,每個機房內單元數(shù)目不固定,任一單元均部署系統(tǒng)所需的全部應用,數(shù)據(jù)則是全量數(shù)據(jù)按照某種維度劃分后的一部分。

通過前文對單元的定義和特性描述中,可以推導出單元化架構要求系統(tǒng)必須具備的一項能力——數(shù)據(jù)分區(qū);即將全局數(shù)據(jù)按照某一個維度水平劃分開來,每個分區(qū)的數(shù)據(jù)內容互不重疊。但僅把數(shù)據(jù)進行分區(qū)還遠遠不夠,單元化的另外一個必要條件是,所有業(yè)務數(shù)據(jù)分區(qū)所用的拆分維度和拆分規(guī)則都必須一樣。
而分布式定位服務則是實現(xiàn)上述目標的關鍵組件,其主要包含以下三大功能:
對分區(qū)的維度數(shù)據(jù)進行統(tǒng)一的管理
提供統(tǒng)一的拆分維度和拆分規(guī)則
為系統(tǒng)提供分區(qū)信息的查詢功能
小組件,大作用
單元化架構的消息“集散中心”
作為單元化架構的核心組件,分布式定位服務管理著單元化的規(guī)則,包括數(shù)據(jù)如何拆分、單元個數(shù)的劃分、數(shù)據(jù)落在哪個單元里等。后期運維人員在完成規(guī)則的配置后,所有使用分布式定位服務的應用將會即時收到通知并進行刷新。
從整體上看,組件分為客戶端和服務端兩大模塊:
客戶端SDK:客戶端主要封裝服務端的訪問接口,供其他系統(tǒng)進行集成。同時客戶端還對單元化的規(guī)則做了監(jiān)聽,確保在規(guī)則發(fā)生變更后能及時進行刷新。
服務端:服務端對映射要素進行統(tǒng)一的管理,并提供查詢、新增等接口。同時因為需要管理大量映射數(shù)據(jù),系統(tǒng)在部署時使用了分庫分表功能。
那么整個組件的調用流程如下所示:

1.網(wǎng)關收到請求或單元內系統(tǒng)發(fā)起外調時,傳入路由類型和路由值,通過sdk發(fā)送到分布式定位服務;
2.分布式定位服務查詢之后返回對應的客戶號、分片號、單元號信息給客戶端;
3.客戶端收到響應信息后,再由服務調用組件根據(jù)單元號調用相應業(yè)務單元。
場景為王
讓技術回歸服務本質
場景一
正常路由和開戶場景
在普通場景下,網(wǎng)關收到交易后從分布式定位服務中查詢到該筆交易所屬的單元,然后再由服務調用組件將交易轉發(fā)到具體的單元上。

在開戶場景下,由于客戶號還未生成,系統(tǒng)提供了“預分配”功能,按照規(guī)則分配一個業(yè)務單元,并在開戶完成后將對應的數(shù)據(jù)注冊到系統(tǒng)中。

場景二
企業(yè)級單元化管理
系統(tǒng)在設計時將數(shù)據(jù)分片規(guī)則與單元的管理規(guī)則進行了拆分,支持企業(yè)級共享一套映射數(shù)據(jù),實現(xiàn)企業(yè)級分布式定位能力。

場景三
高可用
在金融場景下,每筆交易都可能涉及資金的變動,交易的成功率顯得尤為重要。為滿足此需求,系統(tǒng)進行了如下設計:
由客戶端提供“讀請求”的故障重試,整體提高交易成功率。

客戶端中提供了寫請求的消息補償,在注冊時如果發(fā)生異常,則通過發(fā)送消息的方式實現(xiàn)最終的數(shù)據(jù)一致性。

將金融業(yè)帶入高質量發(fā)展曲線的是金融產品、服務技術和洞察能力背后的“價值”。長亮科技作為金融行業(yè)的領先企業(yè),很早就開始對單元化進行深入探索,不斷幫助銀行等金融機構實現(xiàn)系統(tǒng)的單元化建設與改造,積累了豐富的經驗。而分布式定位服務也在這些實踐中不斷的進行更新迭代,功能與性能都得到了錘煉。
結 語
未來,長亮科技將繼續(xù)以創(chuàng)新為本色、用技術為抓手,不斷夯實各類產品及服務的創(chuàng)新能力,通過新技術、新思路賦能金融業(yè)業(yè)務創(chuàng)新與系統(tǒng)升級,高效支撐金融業(yè)的全面發(fā)展。