核心銀行系統(tǒng) 之二十三 技術(shù)架構(gòu)(二)

技術(shù)架構(gòu)(二)
從最早的“主機(jī)-終端”結(jié)構(gòu),到后來的UNIX系統(tǒng)集群分布式計(jì)算赤拒,再到大集中時(shí)代的“大型機(jī)”以及部分中小行的中巩割、小型機(jī)集群种冬,直至現(xiàn)代的主機(jī)下移“分布式X86服務(wù)器”。

image.png

大型機(jī)

大型機(jī)(Mainframe)這個(gè)詞最早是指裝在帶框的鐵盒子中的大型計(jì)算機(jī)系統(tǒng),發(fā)展至今己有50多年,其間有過輝煌,也經(jīng)歷低谷〈志現(xiàn)代商用大型機(jī)更多地被形容成操作尔破、應(yīng)用和系統(tǒng)的集合,而從工作性質(zhì)和運(yùn)用方向上來定義:大型機(jī)是指在商業(yè)活動(dòng)中,用以管理數(shù)據(jù)街图、維護(hù)交易服務(wù)并能夠提供更高級(jí)別的安全性和實(shí)用性的機(jī)器

大型機(jī)作為現(xiàn)代商用的大型服務(wù)器的主體,其結(jié)構(gòu)早己不是馮.諾依曼式計(jì)算機(jī)的模式了,為了滿足商業(yè)客戶對(duì)于信息系統(tǒng)高可用性、安全性懒构、可擴(kuò)展性餐济、容錯(cuò)性等要求,大型機(jī)的基本架構(gòu)已逐漸在多個(gè)方面演變、強(qiáng)化痴脾、改善和提高了颤介。針對(duì)不同的業(yè)務(wù)系統(tǒng)提出的不同的性能指標(biāo),大型機(jī)在應(yīng)用架構(gòu)上也有所區(qū)別,這是綜合考慮系統(tǒng)性能、經(jīng)濟(jì)效益赞赖、管理成本的結(jié)果滚朵。對(duì)于本文所要論述的商業(yè)銀行核心系統(tǒng)而言,大型機(jī)的基本架構(gòu)是以并行藕合技術(shù)為基礎(chǔ)建立的。

IBM的Z系列大型機(jī)的并行耦合(Parallel SyspleX)技術(shù)是一種計(jì)算機(jī)集群技術(shù),所有集群中的服務(wù)器都被允許并發(fā)的讀寫所有共享的數(shù)據(jù),同時(shí)這些對(duì)于數(shù)據(jù)的訪問也不會(huì)影響系統(tǒng)的性能和數(shù)據(jù)的完整性前域。整個(gè)集群中的操作系統(tǒng)共享CPU辕近、存儲(chǔ)設(shè)備、內(nèi)存等資源,這使得任何交易都能被動(dòng)態(tài)的分配到藕合集群中可用的處理器上并行執(zhí)行匿垄。相較于分布式計(jì)算中的UN工X系統(tǒng)集群,并行耦合技術(shù)中的最大優(yōu)勢(shì)在于其互聯(lián)設(shè)備,從硬件架構(gòu)上分析,前者依靠網(wǎng)絡(luò)設(shè)備互聯(lián),其系統(tǒng)吞吐量受到數(shù)據(jù)帶寬移宅、路由選擇等,有較大限制,影響系統(tǒng)性能,而后者則依靠虛擬技術(shù)實(shí)現(xiàn)通過主機(jī)內(nèi)的各種數(shù)據(jù)總線連接CPU、I/0椿疗、內(nèi)存漏峰、網(wǎng)絡(luò)設(shè)備等,其傳輸速度遠(yuǎn)遠(yuǎn)高于前者,同時(shí)也能有效降低管理成本和復(fù)雜程度。
另外,作為核心業(yè)務(wù)的運(yùn)行環(huán)境,并行耦合技術(shù)提供了系統(tǒng)所需的可用性指標(biāo),集群中任何一個(gè)系統(tǒng)的應(yīng)用故障都不會(huì)影響到整個(gè)集群的工作,而在這類集群中也沒有類似UNIX集群中網(wǎng)絡(luò)設(shè)備的單點(diǎn),故基本不存在系統(tǒng)瓶頸届榄。

相較于分布式集群中消息傳遞通信機(jī)制,大型機(jī)環(huán)境集群普遍采用共享地址空間通信機(jī)制,不只是內(nèi)存地址,還包括磁盤浅乔、磁帶等存儲(chǔ)介質(zhì),這種體系結(jié)構(gòu)帶來了諸多技術(shù)優(yōu)勢(shì),首先,它與傳統(tǒng)的數(shù)據(jù)讀寫和通信機(jī)制完全兼容,不存在互相排斥的問題,這對(duì)于商業(yè)用戶信息系統(tǒng)的可用性、連續(xù)性铝条、靈活性上有著極為重要的意義,也能夠促進(jìn)以此類架構(gòu)為基礎(chǔ)的信息系統(tǒng)的推廣靖苇。其次,由于系統(tǒng)所有內(nèi)存、磁盤地址共享,任何應(yīng)用程序在編程時(shí)不需考慮硬件設(shè)備的物理位置,相比分布式集群,剔除了網(wǎng)絡(luò)層面的數(shù)據(jù)轉(zhuǎn)換班缰、地址解析等步驟,使得整個(gè)程序的開發(fā)相對(duì)簡(jiǎn)單,尤其在執(zhí)行期間要求處理機(jī)之間實(shí)施復(fù)雜或動(dòng)態(tài)可變的通信模式時(shí),優(yōu)勢(shì)史為顯著贤壁。第三,摒棄了網(wǎng)絡(luò)傳輸上存在的消耗,進(jìn)步提升了系統(tǒng)的I/O效率。大型機(jī)通過總線完成各類數(shù)據(jù)的傳輸,不僅速度較快,且規(guī)避了網(wǎng)絡(luò)通信機(jī)制中許多保護(hù)數(shù)據(jù)完整性的系統(tǒng)開銷,能夠更高效地利用帶寬埠忘。最后,此類體系架構(gòu)擁有使用硬件控制的快存(Caching)能力,可有效減少非本地通信的次數(shù)與頻度;能支持對(duì)所有數(shù)據(jù)的自動(dòng)快存,不論是共享的或者是私有專用的脾拆。快存化提供了減少延遲時(shí)間(latency)的優(yōu)點(diǎn)和減少存取共享數(shù)據(jù)時(shí)的競(jìng)爭(zhēng)(大量訪問在CACHE)莹妒〖偕ィ可想而知,即使在相同硬件能力下的兩個(gè)應(yīng)用環(huán)境,大型機(jī)依然能夠利用其自身較為合理的體系結(jié)構(gòu)提供更加優(yōu)秀的性能。

不過,并行耦合技術(shù)(大型機(jī)環(huán)境)也不是完美的,例如,集群中的任何物理設(shè)備的故障都可能影響到整個(gè)集群的性能动羽。動(dòng)態(tài)分配意味著所有邏輯分區(qū)上的系統(tǒng)動(dòng)態(tài)共享所有物理資源,一旦存在物理設(shè)備的故障,將導(dǎo)致所有設(shè)備受到影響,致使整個(gè)集群的性能下降包帚。有鑒于此,各種工作負(fù)載管理器對(duì)于硬件的故障偵測(cè)和隔離技術(shù)也在不斷發(fā)展,致力于及時(shí)發(fā)現(xiàn)、判斷运吓、隔離故障硬件,通過動(dòng)態(tài)分配,確保整個(gè)系統(tǒng)的可用性和性能渴邦。

image.png

銀行核心業(yè)務(wù)系統(tǒng)的一個(gè)重要組件就是中間件,而在整個(gè)系統(tǒng)架構(gòu)中,中間件的主要工作就是處理大量的聯(lián)機(jī)交易疯趟。由于整個(gè)系統(tǒng)是建立在IBM系列大型機(jī)上的,出于軟件兼容性考慮,系統(tǒng)的中間件選取了IBM的CICS(Customer Information Control System,客戶信息控制系統(tǒng))。CICS作為一個(gè)強(qiáng)有力的聯(lián)機(jī)事務(wù)管理系統(tǒng),具有商業(yè)級(jí)事務(wù)管理器要求的數(shù)據(jù)完整性谋梭、可恢復(fù)性信峻、安全性和可用性,具有跨平臺(tái)的廣泛的拓展性,提供多平臺(tái)的API,從而形成可移植的應(yīng)用和開發(fā)技術(shù)。CICS可為應(yīng)用程序的開發(fā)瓮床、通信盹舞、恢復(fù)、顯示隘庄、數(shù)據(jù)管理踢步、安全性和內(nèi)部通信等提供多項(xiàng)服務(wù),其結(jié)構(gòu)設(shè)計(jì)也是面向事務(wù)處理的,它構(gòu)建的是一個(gè)三層次結(jié)構(gòu)的應(yīng)用系統(tǒng),有效地區(qū)分應(yīng)用系統(tǒng)中的表述邏輯層、業(yè)務(wù)邏輯層和數(shù)據(jù)邏輯層,從而使應(yīng)用系統(tǒng)結(jié)構(gòu)清晰,維護(hù)簡(jiǎn)單易行丑掺。
image.png

image.png

DB2(for Z/OS)主要應(yīng)用于大型機(jī)開發(fā)平臺(tái),具有較好的拓展性获印、可伸縮性,能夠提供高層次的數(shù)據(jù)一致性、完整性街州、安全性兼丰、可恢復(fù)性,以及覆蓋由小到大各種規(guī)模的應(yīng)用程序的執(zhí)行能力,具有與平臺(tái)無關(guān)的基本功能和SQL命令,無論對(duì)數(shù)據(jù)進(jìn)行插入、更新唆缴、刪除還是利用工具修改,DB2都會(huì)通過一整套邏輯一致性從各個(gè)粒度鳍征、層面保護(hù)數(shù)據(jù)。DB2采用數(shù)據(jù)分級(jí)技術(shù),使得客戶機(jī)/服務(wù)器用戶和基于局域網(wǎng)的應(yīng)用程序可以訪問大型機(jī)環(huán)境數(shù)據(jù),并使數(shù)據(jù)庫(kù)本地化及遠(yuǎn)程連接透明化面徽。DB2具有很好的網(wǎng)絡(luò)支持能力,單個(gè)系統(tǒng)可以連接十幾萬(wàn)個(gè)分布式用戶,可同時(shí)啟動(dòng)上千個(gè)線程,對(duì)大型分布式應(yīng)用系統(tǒng)(例如大型機(jī)集群)尤為適用艳丛。另外,DB2擁有一個(gè)非常完備的查詢優(yōu)化器,其外部連接改善了查詢性能,并支持多任務(wù)并行查詢。


image.png

UNIX系統(tǒng)集群分布式計(jì)算

集群系統(tǒng)是一種并行計(jì)算機(jī)架構(gòu)斗忌,它將一組計(jì)算機(jī)以某種方式聯(lián)結(jié)起來并協(xié)同完成特定的任務(wù)质礼。在這個(gè)計(jì)算機(jī)組合里旺聚,每個(gè)提供服務(wù)的計(jì)算機(jī)服務(wù)器我們稱之為一個(gè)節(jié)點(diǎn)织阳,通常情況下,每個(gè)層次的平行節(jié)點(diǎn)為用戶提供相同的服務(wù)砰粹,這些
節(jié)點(diǎn)以以太網(wǎng)或者專用網(wǎng)絡(luò)連接唧躲。一個(gè)在局域網(wǎng)基礎(chǔ)上聯(lián)結(jié)在一起的計(jì)算機(jī)集群在物理上是多個(gè)系統(tǒng),但對(duì)于應(yīng)用軟件和用戶來說就像一個(gè)單一的系統(tǒng)一樣碱璃。這樣的系統(tǒng)為我們?cè)诎嘿F的大型機(jī)和專用共享存儲(chǔ)之外弄痹,提供了更為便宜的方式來獲得商業(yè)需求的性能和服務(wù)的解決方法。
集群系統(tǒng)主要包括以下幾個(gè)部分嵌器,由外到內(nèi)分別是:并行編譯環(huán)境及工具肛真、應(yīng)用程序、集群中間件爽航、快速通信協(xié)議和服務(wù)蚓让、網(wǎng)絡(luò)接口硬件乾忱、高性能網(wǎng)絡(luò)、多個(gè)高性能計(jì)算機(jī)历极。

集群系統(tǒng)有以下幾個(gè)優(yōu)點(diǎn):

  1. 高性能:多個(gè)平行節(jié)點(diǎn)為用戶提供相同的服務(wù)窄瘟,負(fù)載均衡集群允許系統(tǒng)同時(shí)接入更多的用戶,而避免了因突然的并發(fā)數(shù)量導(dǎo)致單一服務(wù)器超載趟卸。
  2. 高可擴(kuò)展性:一個(gè)高端的商業(yè)集群系統(tǒng)具有良好的可擴(kuò)展性蹄葱,這樣,在面對(duì)用戶的增加锄列、信息量的累積時(shí)图云,只需要增加節(jié)點(diǎn)數(shù)量便可以提高系統(tǒng)的性能和服務(wù),而不需要重新構(gòu)建新的系統(tǒng)右蕊。采用集群技術(shù)的系統(tǒng)的性能與 CPU 的個(gè)數(shù)幾乎成線性比例琼稻。
  3. 高可用性:當(dāng)系統(tǒng)在發(fā)生故障時(shí)可以繼續(xù)工作,將系統(tǒng)停運(yùn)的時(shí)間降到最低饶囚。
  4. 高性價(jià)比:集群系統(tǒng)的節(jié)點(diǎn)服務(wù)器通常由中型機(jī)擔(dān)任帕翻,在達(dá)到相同性能的前提下,集群系統(tǒng)要比由大型計(jì)算機(jī)擔(dān)任服務(wù)器的系統(tǒng)要具有更高的性價(jià)比萝风。

根據(jù)要實(shí)現(xiàn)的功能不同嘀掸,集群系統(tǒng)分為以下幾類:

  1. 負(fù)載均衡集群
    負(fù)載均衡集群使得所有負(fù)載在整個(gè)集群中盡可能平均的分?jǐn)偺幚砥戎浞值睦眉簝?nèi)所有節(jié)點(diǎn)的處理能力拐邪。在這種集群中每個(gè)節(jié)點(diǎn)都能處理一部分負(fù)載,而且節(jié)點(diǎn)之間可以動(dòng)態(tài)分配負(fù)載以實(shí)現(xiàn)均衡昆庇。在這種集群中歇万,其總處理能力是所有節(jié)點(diǎn)的處理能力的總和揩晴。由于集群內(nèi)多個(gè)節(jié)點(diǎn)都可以提供統(tǒng)一的服務(wù),當(dāng)某一節(jié)點(diǎn)發(fā)生故障時(shí)贪磺,其他節(jié)點(diǎn)仍可以繼續(xù)工作硫兰,從而保持了服務(wù)的連續(xù)性,所以這種負(fù)載均衡集群也展示了一定的高可用性寒锚。
  2. 高可用性集群
    這種集群旨在提供不間斷服務(wù)劫映。通常為了實(shí)現(xiàn)不間斷服務(wù),有以下兩種方式刹前。
    一種傳統(tǒng)的定義是 HA 結(jié)構(gòu)泳赋,及每個(gè)節(jié)點(diǎn)都由主備服務(wù)器組成,備用服務(wù)器以 heartbeat(心跳)的方式確認(rèn)主服務(wù)器是否可用喇喉,若主服務(wù)器因故障宕機(jī)祖今,則由備用服務(wù)器接管服務(wù),當(dāng)主服務(wù)器恢復(fù)時(shí),服務(wù)再由主服務(wù)器重新接管千诬。這種結(jié)構(gòu)通常用于數(shù)據(jù)庫(kù)集群撒踪。
    另一種是將每個(gè)請(qǐng)求的用戶信息和請(qǐng)求信息在各個(gè)節(jié)點(diǎn)之間進(jìn)行互備(互相備份),當(dāng) A 節(jié)點(diǎn)宕機(jī)導(dǎo)致請(qǐng)求中斷時(shí)大渤,B 節(jié)點(diǎn)從相應(yīng)存儲(chǔ)器中獲取請(qǐng)求信息制妄,并繼續(xù)執(zhí)行該用戶的請(qǐng)求,保證服務(wù)的不中斷泵三。
  3. 高性能集群
    高性能集群致力于提高集群系統(tǒng)的計(jì)算能力耕捞,各個(gè)節(jié)點(diǎn)協(xié)同工作,在處理大問題時(shí)烫幕,每個(gè)節(jié)點(diǎn)負(fù)責(zé)一部分俺抽,并在處理過程中根據(jù)需求進(jìn)行數(shù)據(jù)交換,最后的計(jì)算結(jié)果由各個(gè)節(jié)點(diǎn)共同提供较曼。高性能集群的性能與該集群的規(guī)模成正比磷斧,但這種集群缺少了高可用性。

中間件

中間件特點(diǎn)是滿足大量應(yīng)用的需要,運(yùn)行于多種硬件和OS平臺(tái),支持分布式計(jì)算,提供跨網(wǎng)絡(luò)捷犹、硬件和OS平臺(tái)的透明性的應(yīng)用或服務(wù)的交互功能,支持標(biāo)準(zhǔn)協(xié)議,支持標(biāo)準(zhǔn)接口弛饭。

在分布式事務(wù)處理中要處理大量的事務(wù),常常在系統(tǒng)中要求同時(shí)進(jìn)行上萬(wàn)筆事務(wù)。事務(wù)處理中間件是專門針對(duì)聯(lián)機(jī)交易處理系統(tǒng)而設(shè)計(jì)萍歉。聯(lián)機(jī)交易處理系統(tǒng)需要處理大量并發(fā)進(jìn)程,處理并發(fā)涉及到操作系統(tǒng)侣颂、文件系統(tǒng)、編程語(yǔ)言枪孩、數(shù)據(jù)通訊憔晒、數(shù)據(jù)庫(kù)系統(tǒng)、系統(tǒng)管理蔑舞、應(yīng)用軟件,是一個(gè)相當(dāng)艱巨的任務(wù),但是工作的難度可以通過采用交易中間件簡(jiǎn)化拒担。交易中間件其實(shí)就是一組程序模塊,用以大大減少開發(fā)一個(gè)聯(lián)機(jī)交易處理系統(tǒng)所需的編程量。X/OPEN組織專門定義了分布式交易處理的標(biāo)準(zhǔn)及參考模型,把一個(gè)聯(lián)機(jī)交易系統(tǒng)劃分成資源管理(RM)攻询、交易管理(TM)和應(yīng)用(AP)三部分,定義了應(yīng)用程序从撼、交易管理器、多個(gè)資源管理器是如何協(xié)同工作蜕窿。資源管理器是指數(shù)據(jù)庫(kù)和文件系統(tǒng),交易管理器可歸入交易中間件谋逻。交易中間件管理由應(yīng)用聲明和提交的交易,并通過兩階段提交協(xié)議等方式保證分布式交易的完整性呆馁、控制并發(fā)桐经、實(shí)現(xiàn)交易路由和均衡負(fù)載。交易中間件理論上已經(jīng)相對(duì)成熟,功能和性能界定清晰,適用于聯(lián)機(jī)交易系統(tǒng)浙滤。盡管交易信息也是消息,交易中間件也是基于消息的傳輸,也可支持同步和異步方式,但它與消息中間件的定位差距較大,它是一種較專用的中間件阴挣。

TUXEDO 中間件
中間件是一種獨(dú)立的系統(tǒng)軟件或者服務(wù)程序,分布式引用軟件借助這種軟件在不同的技術(shù)之間共享資源纺腊,中間件位于客戶機(jī)/服務(wù)器的操作系統(tǒng)之上畔咧,管理計(jì)算機(jī)資源和網(wǎng)絡(luò)通信茎芭。

TUXEDO 就是一款這樣的中間件產(chǎn)品,現(xiàn)在已經(jīng)成為了中間件領(lǐng)域上的標(biāo)準(zhǔn)誓沸。如圖是 TUXEDO 的軟件模型梅桩。

image.png

TUXEDO 采用的是三層模型。第一層是客戶層拜隧,作用是實(shí)現(xiàn)了用戶和數(shù)據(jù)之間的交互和表示宿百,同時(shí)向第二層區(qū)調(diào)用一些處理邏輯的服務(wù)。第二層是服務(wù)器組件層洪添,該層是實(shí)現(xiàn)核心業(yè)務(wù)邏輯的服務(wù)垦页,處理一些數(shù)據(jù),同時(shí)接受從其他服務(wù)
器發(fā)出來的請(qǐng)求服務(wù)干奢。第三層是資源管理層痊焊,該層是負(fù)責(zé)對(duì)應(yīng)用數(shù)據(jù)的管理,類似于數(shù)據(jù)庫(kù)的功能忿峻。
TUXEDO 中間件具有如下特點(diǎn)
(1)平衡負(fù)載薄啥。在多臺(tái)機(jī)器作為應(yīng)用服務(wù)器的情況下,系統(tǒng)可以根據(jù)每臺(tái)機(jī)器的負(fù)載情況來決定哪臺(tái)機(jī)器可以當(dāng)作服務(wù)器
(2)穩(wěn)定性逛尚。如果在分布式系統(tǒng)中的某一個(gè)節(jié)點(diǎn)出現(xiàn)故障時(shí)罪佳,中間件系統(tǒng)可以在硬件發(fā)生故障的情況下,在其他的節(jié)點(diǎn)上去運(yùn)行程序保證服務(wù)的穩(wěn)定性黑低。
(3)安全性赘艳。TUXEDO 可以提供數(shù)據(jù)的加密服務(wù),在網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)都是可以進(jìn)行加密后傳輸?shù)目宋铡4送庥脩艚缑媸侵С烛?yàn)證和授權(quán)的蕾管。

中小銀行的核心系統(tǒng)的架構(gòu)建立在第三方的中間件基礎(chǔ)之上。因?yàn)楹诵南到y(tǒng)主要是要完成大量的聯(lián)機(jī)事務(wù),因此必須選取交易中間件,以選取BEA Tuxedo為例菩暗。正確運(yùn)用交易中間件可以縮短開發(fā)周期,節(jié)約開發(fā)成本,簡(jiǎn)化應(yīng)用集成,增加系統(tǒng)的可靠性,在可擴(kuò)展和性能方面都能得到進(jìn)一步的增強(qiáng)掰曾。將通訊、服務(wù)調(diào)度停团、數(shù)據(jù)訪問交由中間件來處理旷坦。
在BEA Tuxedo可管理多層(ManagedMulti一Tier 一MMT)C/S模式中,提供以下功能:

  • 在客戶端和服務(wù)端之間進(jìn)行通訊和傳輸;
  • 提供良好的系統(tǒng)管理;
  • 提供交易、配置的分布式管理佑稠。

它管理服務(wù)端從多個(gè)客戶端收到的數(shù)據(jù)流,并不是在C/S間建立一對(duì)一的關(guān)系,而且客戶端可以向多個(gè)服務(wù)發(fā)出請(qǐng)求秒梅。這種特點(diǎn)保證了TUXEDO可以提供強(qiáng)大的分布式交易處理框架。
由于不必進(jìn)行通訊和交易管理,數(shù)據(jù)庫(kù)引擎可以專注于其特長(zhǎng):管理數(shù)據(jù),在這種情況下,數(shù)據(jù)庫(kù)成了一個(gè)純RM(ResoureeManager)舌胶。MMTC/S模式給核心業(yè)務(wù)系統(tǒng)的OLTP應(yīng)用增加了如下優(yōu)點(diǎn):

  • 所有C/S模式的優(yōu)點(diǎn)在MMT模式下都得到了增強(qiáng)捆蜀。實(shí)際上,由于中間件的引入,處理能力得到改善。
  • 由于中間件管理了數(shù)據(jù)流,帶來了許多新功能,如:交易路由、服務(wù)分布辆它、渠道誊薄、數(shù)據(jù)依賴路由等成為可能。
  • 統(tǒng)一的數(shù)據(jù)流控限制了最大交易數(shù),總的數(shù)據(jù)庫(kù)過程少,服務(wù)器空閑時(shí)間也少,這就增加了數(shù)據(jù)庫(kù)和系統(tǒng)效率锰茉。
  • 應(yīng)用代碼的設(shè)計(jì)可以不考慮物理地址和內(nèi)部數(shù)據(jù)表示配置成了一件單純的管理工作,進(jìn)一步可以通過配置輕易的改變系統(tǒng)結(jié)構(gòu)呢蔫。
    服務(wù)可以動(dòng)態(tài)的增加、刪除和重啟動(dòng)飒筑。構(gòu)成TUXEDO系統(tǒng)的各部分咐刨、工具和其特性組成的MMTC/S模式給核心業(yè)務(wù)系統(tǒng)的開發(fā)帶來了很大的便利,這些優(yōu)點(diǎn)及實(shí)現(xiàn)方法如表

    image.png

基于TUXEDO的多層C/S方案
隨著交易中間件技術(shù)的發(fā)展和網(wǎng)絡(luò)技術(shù)的日益完善,己經(jīng)能使系統(tǒng)對(duì)用戶的請(qǐng)求作出快速響應(yīng)。設(shè)計(jì)主要采用基于TUXEDO Bea應(yīng)用服務(wù)器的體系結(jié)構(gòu)扬霜。

三層C/S架構(gòu)主要包括表示層定鸟、服務(wù)接入層、業(yè)務(wù)邏輯層和數(shù)據(jù)邏輯層,然而在核心業(yè)務(wù)系統(tǒng)中表示層多種多樣,有銀行專用著瓶、基于IE联予、第三方的系統(tǒng)等,各種各樣,這些表示層的接口的方式、格式材原、加密措施等均不相同,如果直接和業(yè)務(wù)邏輯層相接,則業(yè)務(wù)邏輯層需要對(duì)它們的通信接口分別處理,這將增加業(yè)務(wù)邏輯層的復(fù)雜性,業(yè)務(wù)邏輯層的擴(kuò)展性沸久、處理效率就會(huì)差,不符合三層C/S架構(gòu)的思想:業(yè)務(wù)邏輯層專注于業(yè)務(wù)邏輯的處理。為此,在表現(xiàn)層和業(yè)務(wù)邏輯層之間再增加一層,命名為服務(wù)接入層,即分為表示層余蟹、服務(wù)接入層卷胯、業(yè)務(wù)邏輯層和數(shù)據(jù)邏輯層。其中服務(wù)接入層威酒、業(yè)務(wù)邏輯層和數(shù)據(jù)邏輯層是典型的三層C/S架構(gòu),服務(wù)接入層具有表示層的功能,它是將多種表示層整合為一個(gè)統(tǒng)一的表示層窑睁。

image.png

1、表現(xiàn)層
表現(xiàn)層包含了多種渠道,有基于字符終端的高柜葵孤、基于Web的低柜担钮、自助終端、電話銀行尤仍、網(wǎng)上銀行箫津、短信、自助設(shè)備(ATM宰啦、POS苏遥、CDM)、和外系統(tǒng)專線連接等赡模。這些渠道在核心系統(tǒng)中是各種服務(wù)請(qǐng)求的接口表現(xiàn)和數(shù)據(jù)傳輸請(qǐng)求,它們只有簡(jiǎn)單的數(shù)據(jù)形式和取值范圍的檢查,沒有業(yè)務(wù)處理邏輯田炭。如果某種銀行服務(wù)可以存在于多個(gè)渠道上,那么僅只是這些渠道提供的銀行服務(wù)的表示是個(gè)性化的,但服務(wù)內(nèi)容和流程是共享的。
表現(xiàn)層分為三類:
第一類:銀行內(nèi)部本身的柜面系統(tǒng),功能單一,目前以C語(yǔ)言為基礎(chǔ)開發(fā),通訊格式與服務(wù)接入層一樣,能被業(yè)務(wù)邏輯層中標(biāo)準(zhǔn)的服務(wù)(Server)接受;或銀行內(nèi)部的外掛系統(tǒng),如信貸管理纺裁、國(guó)際結(jié)算诫肠、財(cái)務(wù)管理等,有標(biāo)準(zhǔn)的統(tǒng)一接口,外掛系統(tǒng)是一些專業(yè)性較強(qiáng)的業(yè)務(wù)處理子系統(tǒng),作為一個(gè)渠道通過外掛的形式和核心系統(tǒng)形成一個(gè)整體的業(yè)務(wù)系統(tǒng)。外掛系統(tǒng)只負(fù)責(zé)其特有業(yè)務(wù)處理流程的控制,其帳務(wù)處理是通過服務(wù)接入層和核心業(yè)務(wù)層來完成欺缘。
第二類:銀行外部的系統(tǒng),有行業(yè)標(biāo)準(zhǔn)如ATM栋豫、CDM、POS谚殊、金卡丧鸯、人行,但這些系統(tǒng)的接口標(biāo)準(zhǔn)不盡相同。
第三類:也是銀行外部的系統(tǒng),沒有行業(yè)標(biāo)準(zhǔn),只是它們系統(tǒng)內(nèi)部的標(biāo)準(zhǔn)嫩絮。如公用事業(yè)的代收代付丛肢、水、電剿干、煤蜂怎、電話等,沒有統(tǒng)一的規(guī)定。
對(duì)于第一類,可以直接訪問業(yè)務(wù)邏輯層,以提高效率,減少中間環(huán)節(jié),服務(wù)接入層的作用只是消息轉(zhuǎn)發(fā),無其它任何處理置尔。
2杠步、服務(wù)接入層
服務(wù)接入層就是負(fù)責(zé)把各渠道的服務(wù)請(qǐng)求進(jìn)行整合,形成統(tǒng)一的對(duì)核心業(yè)務(wù)處理層的交易請(qǐng)求。各渠道的服務(wù)請(qǐng)求報(bào)文各不相同,有定長(zhǎng)和不定長(zhǎng)方式,本系統(tǒng)中服務(wù)接入層對(duì)核心業(yè)務(wù)處理層的請(qǐng)求及應(yīng)答采用擴(kuò)展的ISO8583報(bào)文格式,當(dāng)然也支持其它報(bào)文格式榜轿。ISO8583包(簡(jiǎn)稱8583包)是一個(gè)國(guó)際標(biāo)準(zhǔn)的包格式,最多由128個(gè)字段域組成,每個(gè)域都有統(tǒng)一的規(guī)定,有定長(zhǎng)和變長(zhǎng)之分幽歼。
服務(wù)接入層是整個(gè)系統(tǒng)的應(yīng)用路由中心,是本身局域網(wǎng)內(nèi)的中心節(jié)點(diǎn),它和其它節(jié)點(diǎn)形成星型結(jié)構(gòu),其它節(jié)點(diǎn)的報(bào)文交換通過它來調(diào)度。
服務(wù)接入層的主要功能是通訊網(wǎng)關(guān)谬盐、應(yīng)用路由甸私、報(bào)文解析、流程控制飞傀。
通訊網(wǎng)關(guān)負(fù)責(zé)和其它系統(tǒng)的通訊皇型。銀行應(yīng)用系統(tǒng)都要求通訊傳輸是實(shí)時(shí)的,交易報(bào)文如果不能及時(shí)到達(dá),一般認(rèn)為通訊失敗,交易不能成功。
應(yīng)用路由是系統(tǒng)內(nèi)部通訊的交換器,負(fù)責(zé)網(wǎng)關(guān)和應(yīng)用核心之間的通訊砸烦。應(yīng)用路由能夠?qū)⒁粋€(gè)指定目的地址的消息報(bào)文發(fā)送到能夠到達(dá)目的地址的下一個(gè)節(jié)點(diǎn);也能將沒指定目的地址的消息報(bào)文按照配置指定目的地址,并發(fā)送到能夠到達(dá)目的地址的下一個(gè)節(jié)點(diǎn)犀被。
報(bào)文解析是服務(wù)接入系統(tǒng)中和外部(主機(jī)、網(wǎng)銀外冀、第三方等)進(jìn)行數(shù)據(jù)交易的模塊寡键。報(bào)文解析在系統(tǒng)中是一個(gè)相對(duì)比較獨(dú)立的模塊,它和系統(tǒng)中其它模塊的接口主要是數(shù)據(jù)池(POOL池)。報(bào)文拆包時(shí),報(bào)文解析模塊按照?qǐng)?bào)文格式的定義,把報(bào)文內(nèi)容拆解到POOL池中;報(bào)文打包時(shí),報(bào)文解析模塊按照?qǐng)?bào)文格式的定義,從POOL池中提取報(bào)文中需要的數(shù)據(jù)項(xiàng),打成外部格式的報(bào)文雪隧。
服務(wù)接入層與核心業(yè)務(wù)邏輯層的通訊,利用TUXEDO客戶端的系統(tǒng)調(diào)用來完成西轩。
3、核心業(yè)務(wù)邏輯層
核心業(yè)務(wù)邏輯層包括BEA Tuxedo的事務(wù)管理器脑沿、可靠隊(duì)列服務(wù)藕畔、應(yīng)用域和服務(wù)(Server)。
事務(wù)管理器是Tuxedo的體系結(jié)構(gòu)的中心,是Tuxedo服務(wù)器的核心,提供重要的分布式應(yīng)用服務(wù),包括:名字服務(wù)庄拇、數(shù)據(jù)路由器注服、負(fù)載平衡韭邓、配置管理、分布式事務(wù)管理和安全管理溶弟。它包含Tuxedo女淑。的核心數(shù)據(jù)結(jié)構(gòu)公告板BB(Bulletin Board),BB中包括服務(wù)名、路由信息辜御、請(qǐng)求服務(wù)的隊(duì)列和負(fù)載等基本信息,Tuxedo/T負(fù)責(zé)訪問和維護(hù)BB中的信息,并利用這些信息實(shí)現(xiàn)其各項(xiàng)功能鸭你。
可靠隊(duì)列服務(wù)保證系統(tǒng)提交的請(qǐng)求和數(shù)據(jù)可在網(wǎng)絡(luò)故障或目的服務(wù)癱瘓的情況下,也能遞交到目的服務(wù)器,應(yīng)用程序?qū)⒎?wù)請(qǐng)求入隊(duì)和出隊(duì),并可以設(shè)定系統(tǒng),使隊(duì)列中的請(qǐng)求自動(dòng)地轉(zhuǎn)發(fā)給Tuxedo的服務(wù)進(jìn)程,并取回處理結(jié)果。
應(yīng)用域是將核心業(yè)務(wù)系統(tǒng)按功能或結(jié)構(gòu)劃分為不同的域,每個(gè)域獨(dú)立完成域內(nèi)的操作,域間操作由域網(wǎng)關(guān)完成,以提高每個(gè)域和整個(gè)系統(tǒng)的運(yùn)行效率擒权。
服務(wù)由不同交易集合組成,這些交易是相互獨(dú)立袱巨。系統(tǒng)在運(yùn)行過程中,這些服務(wù)形成一個(gè)個(gè)處理進(jìn)程。負(fù)責(zé)處理銀行業(yè)務(wù)邏輯碳抄。
銀行業(yè)務(wù)主要是開銷戶管理愉老、存款業(yè)務(wù)、取款業(yè)務(wù)剖效、銀行結(jié)算俺夕、外匯兌換、貸款業(yè)務(wù)等

image.png

4贱鄙、數(shù)據(jù)邏輯層
數(shù)據(jù)層是后臺(tái)數(shù)據(jù)的存儲(chǔ)層,它存放所有的核心系統(tǒng)后臺(tái)數(shù)據(jù),并提供標(biāo)準(zhǔn)和非標(biāo)準(zhǔn)的構(gòu)件對(duì)這些數(shù)據(jù)進(jìn)行訪問,這些構(gòu)件被業(yè)務(wù)邏輯層的交易進(jìn)行調(diào)用劝贸。

核心業(yè)務(wù)系統(tǒng)服務(wù)模塊設(shè)計(jì)
核心業(yè)務(wù)處理層中的服務(wù)(Server)是對(duì)交易(Service)的封裝。一個(gè)服務(wù)包含有若干個(gè)獨(dú)立的金融交易逗宁。每個(gè)服務(wù)是相對(duì)獨(dú)立的系統(tǒng)映九。服務(wù)之間的訪問視同如在服務(wù)接入層訪問核心業(yè)務(wù)處理層中的服務(wù)一樣,被訪問的服務(wù)是服務(wù)端(Server),訪問的服務(wù)是客戶端(cllent),從而產(chǎn)生了聯(lián)動(dòng)交易,即在一個(gè)事務(wù)處理中完成對(duì)多個(gè)服務(wù)的訪問服務(wù)(Seryer)的處理流程
雖然服務(wù)的內(nèi)容不同,但每個(gè)服務(wù)的流程是一樣的,一個(gè)服務(wù)的生命周期如圖所示

image.png

服務(wù)(Server)的模塊設(shè)計(jì)
在核心業(yè)務(wù)系統(tǒng)的設(shè)計(jì)上服務(wù)(Serve:)處于核心業(yè)務(wù)邏輯層。根據(jù)服務(wù)的生命周期的特點(diǎn),我們把服務(wù)劃分為四個(gè)模塊:服務(wù)初始化模塊瞎颗、服務(wù)入口處理模塊及每個(gè)服務(wù)的交易入口處理模塊和服務(wù)結(jié)束模塊件甥。其中,服務(wù)初始化模塊、服務(wù)入口處理模塊及服務(wù)結(jié)束模塊對(duì)于每一個(gè)服務(wù)(Server)功能都一樣,不同的服務(wù)主要體現(xiàn)在交易入口處理模塊的配置,不同的配置會(huì)產(chǎn)生不同的服務(wù)哼拔。
image.png

客戶端(Client)的模塊設(shè)計(jì)
Tuxedo有兩種客戶端:本地客戶端和遠(yuǎn)程客戶端引有。本地客戶端(Native Client)是指客戶端與Tuxedo應(yīng)用服務(wù)器在同一臺(tái)機(jī)器上,不用通過網(wǎng)絡(luò)就可以訪問Tuxedo的應(yīng)用服務(wù)器;遠(yuǎn)程客戶端(WorkstationClient)是客戶端需要通過網(wǎng)絡(luò)才能訪問Tuxedo應(yīng)用服務(wù)器。本系統(tǒng)的客戶端主要是指服務(wù)接入層上對(duì)核心業(yè)務(wù)邏輯層的訪問,或表示層上銀行柜面系統(tǒng)經(jīng)服務(wù)接入層對(duì)核心業(yè)務(wù)邏輯層的訪問倦逐。


image.png

基于BEA Tuxedo的多層C/S架構(gòu)的核心業(yè)務(wù)系統(tǒng)選用UNIX操作系統(tǒng),主要的原因是UNIX系統(tǒng)穩(wěn)定譬正、安全、可靠檬姥。其架構(gòu)有兩種方式,即單集群和多集群方式曾我。單集群方式主應(yīng)用服務(wù)器單一,多集群方式主應(yīng)用服務(wù)器有多個(gè)。
image.png

左圖比較簡(jiǎn)單健民、單一,服務(wù)接入層前置直接訪問唯一的應(yīng)用服務(wù)器,是單集群方式抒巢。右圖較復(fù)雜,服務(wù)接入層前置可以有選擇的訪問多個(gè)應(yīng)用服務(wù)器,是多集群方式。從服務(wù)接入層前置的軟件設(shè)計(jì)來比較,多集群復(fù)雜,在渠道前置機(jī)上要區(qū)分所要訪問的哪一臺(tái)應(yīng)用服務(wù)器,而對(duì)于應(yīng)用服務(wù)器端來說,部署一個(gè)或多個(gè)應(yīng)用服務(wù)器的復(fù)雜程度一樣秉犹。兩者比較如表:
image.png

多集群方式在設(shè)計(jì)上,任一臺(tái)主應(yīng)用服務(wù)器上可提供所有服務(wù),由渠道任意選擇,靜態(tài)控制著系統(tǒng)的負(fù)載均衡蛉谜。在接入層前置應(yīng)用設(shè)計(jì)上增加交易服務(wù)路由參數(shù)表
image.png

例如:對(duì)于相同的Tx0101(卡取現(xiàn)金交易)分別來自于三個(gè)渠道(柜面稚晚、銀聯(lián)ATM和本行ATM),都對(duì)應(yīng)于同一服務(wù)Uwithdraw,而服務(wù)Uwithdraw可分布在三個(gè)不同的主服務(wù)器上,表示層的請(qǐng)求信息經(jīng)過渠道層時(shí),訪問此表,獲取服務(wù)名和訪問的主機(jī)地址,由渠道層決定表示層所要訪問的應(yīng)用服務(wù)器。

理論上,單一應(yīng)用服務(wù)器方式可以把它看著是多應(yīng)用服務(wù)器方式的特例,在上表中設(shè)為同一應(yīng)用服務(wù)器型诚。將來隨著業(yè)務(wù)量的增加,如果要?jiǎng)討B(tài)地增加應(yīng)用服務(wù)器,只需在渠道上調(diào)整交易服務(wù)路由參數(shù)表的應(yīng)用服務(wù)器和應(yīng)用服務(wù)器地址這兩個(gè)參數(shù)客燕。

多集群方式也進(jìn)一步提高了系統(tǒng)的安全性。當(dāng)增加一個(gè)新的服務(wù)時(shí),為了不影響現(xiàn)有的系統(tǒng)的正常運(yùn)行,不影響其它服務(wù)性能的情況下,可以把新的服務(wù)增加到備用應(yīng)用服務(wù)器中,在渠道的交易服務(wù)路由表中指明所要訪問的備用應(yīng)用服務(wù)器,待系統(tǒng)穩(wěn)定運(yùn)行后,再把新的服務(wù)加入到原有的應(yīng)用服務(wù)中俺驶。
當(dāng)然,中小銀行隨著規(guī)模的不斷擴(kuò)大,分支機(jī)構(gòu)不斷增加,利用多集群方式的特點(diǎn),還可以把新增加的機(jī)構(gòu)的請(qǐng)求服務(wù)指向獨(dú)立的應(yīng)用服務(wù)器上來專門處理幸逆。

如果在設(shè)計(jì)階段不能考慮增加交易服務(wù)路由參數(shù)表,那只能是單一主應(yīng)用服務(wù)器方式,擴(kuò)展性就比較差棍辕∧合郑總之,多集群服務(wù)方式是網(wǎng)狀式提供服務(wù),可以根據(jù)系統(tǒng)性能的變化,通過調(diào)整交易服務(wù)路由表的參數(shù),優(yōu)化應(yīng)用服務(wù)的性能,同時(shí)還可以把應(yīng)用服務(wù)器按服務(wù)的類型或機(jī)構(gòu)分為多種專用的應(yīng)用服務(wù)器,使得在新業(yè)務(wù)增加和新機(jī)構(gòu)增加的情況下系統(tǒng)的性能保持相對(duì)的穩(wěn)定。

交易和服務(wù)的自由組合
在核心業(yè)務(wù)系統(tǒng)中,后臺(tái)提供服務(wù)(Server)供前臺(tái)調(diào)用楚昭。后臺(tái)的服務(wù)又由若干個(gè)交易(Service)組成,如圖


image.png


從圖可以看出,一個(gè)服務(wù)包含了多個(gè)交易,一個(gè)交易可以被幾個(gè)服務(wù)來包含,這些將根據(jù)系統(tǒng)的性能變化,在運(yùn)行階段來調(diào)整栖袋。
設(shè)計(jì)時(shí)將交易放在一起的原則是:
(1)有互相調(diào)用的SERVICE不放到同一個(gè)SERVER中,有可能同時(shí)要訪問某一資源,引起死鎖現(xiàn)象。
(2)執(zhí)行時(shí)間相近的SERVICE可放到同一個(gè)SERVER中抚太。
(3)同一個(gè)SERVER中的SERVICE有相同的服務(wù)優(yōu)先級(jí),如果不同,最低的那個(gè)的請(qǐng)求可能要很長(zhǎng)時(shí)間才得到處理塘幅。
(4)一個(gè)SERVER中不能有太多的SERVICE。
(5)把多資源要求相近的SERVICE放到同一個(gè)SERVER中尿贫。
(6)可根據(jù)業(yè)務(wù)規(guī)則把SERVICE放到同一個(gè)SERVER中电媳。
(7)對(duì)一些使用率較高的(如:銀行的取款對(duì)應(yīng)的SERVICE)應(yīng)單獨(dú)放在一個(gè)SERVER中,并采用MSSQ方式。不把它們與其它的SERVICE放在同一個(gè)SERVER中庆亡。

中型機(jī)組成的集群系統(tǒng)

AIX匾乓、IBM 商用中小型機(jī)器 AS400的操作系統(tǒng) OS/400

WAS(Web Application Server)
WAS 是實(shí)現(xiàn) J2EE 體系結(jié)構(gòu)的平臺(tái)解決方案,它的作用在于在客戶端/服務(wù)器環(huán)境下又谋,動(dòng)態(tài)處理和管理事務(wù)(Transaction)并聯(lián)動(dòng)異構(gòu)系統(tǒng)之間的應(yīng)用程序


image.png

image.png

Jeus 是 WAS 的一種拼缝。
Webtob 是 TmaxSoft 公司的 Web 服務(wù)器解決方案,設(shè)計(jì)用來處理通過 Web瀏覽器使用 HTTP 協(xié)議發(fā)送的請(qǐng)求彰亥。Webtob 克服了傳統(tǒng) Web 服務(wù)器解決方案的局限性咧七,提供更高的穩(wěn)定性和性能。
image.png

新韓銀行

image.png

image.png

B/S結(jié)構(gòu)(Browser/Server,瀏覽器/服務(wù)器模式),是WEB興起后的一種網(wǎng)絡(luò)結(jié)構(gòu)模式,WEB瀏覽器是客戶端最主要的應(yīng)用軟件任斋。這種模式統(tǒng)一了客戶端,將系統(tǒng)功能實(shí)現(xiàn)的核心部分集中到服務(wù)器上,簡(jiǎn)化了系統(tǒng)的開發(fā)继阻、維護(hù)和使用》峡幔客戶機(jī)上只要安裝一個(gè)瀏覽器(Browser),如Netscape Navigator或Internet Explorer,服務(wù)器安裝 Oracle穴翩、Sybase、Informix 或 SQL Server 等數(shù)據(jù)庫(kù)锦积。瀏覽器通過Web Server同數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)交互芒帕。這樣就大大簡(jiǎn)化了客戶端電腦載荷,減輕了系統(tǒng)維護(hù)與升級(jí)的成本和工作量,降低了用戶的總體成本。B/S結(jié)構(gòu)最大的優(yōu)點(diǎn)就是可以在任何地方進(jìn)行操作而不用安裝任何專門的軟件丰介。只要有一臺(tái)能上網(wǎng)的電腦就能使用,客戶端零維護(hù)背蟆。系統(tǒng)的擴(kuò)展性非常容易,只要能上網(wǎng),再由系統(tǒng)管理員分配一個(gè)用戶名和密碼,就可以使用了鉴分。甚至可以在線申請(qǐng),通過公司內(nèi)部的安全認(rèn)證(如CA證書)后,不需要人的參與,系統(tǒng)可以自動(dòng)分配給用戶一個(gè)賬號(hào)進(jìn)入系統(tǒng)。

例如:SmartTeller

image.png

SmartTeller 的開發(fā)平臺(tái)带膀,采用 Java志珍、HTML、XML 和 TCP/IP 等開放的工業(yè)標(biāo)準(zhǔn)進(jìn)行設(shè)計(jì)垛叨,使系統(tǒng)具有可移植性伦糯、可維護(hù)性和可擴(kuò)展性。開發(fā)平臺(tái)分為客戶端的開發(fā)和服務(wù)器端的開發(fā)嗽元。

服務(wù)器端開發(fā):通過工業(yè)標(biāo)準(zhǔn)開發(fā)環(huán)境來開發(fā)服務(wù)器端的構(gòu)件敛纲。SmartTeller 開發(fā)包是基于銀行的業(yè)務(wù)規(guī)則和需求來開發(fā)客戶化應(yīng)用的。新的開發(fā)結(jié)果將加入到應(yīng)用元件庫(kù)剂癌,元件庫(kù)中包括信息淤翔、對(duì)象以及用于描述業(yè)務(wù)流程相關(guān)的所有工作的參數(shù)。這些元件將用于應(yīng)用的開發(fā)佩谷、網(wǎng)頁(yè)的制作等旁壮。
客戶端開發(fā):SmartTeller 采用 Web 開發(fā)工具用來開發(fā)客戶端的 HTML 頁(yè)面、Applets和 Web 站點(diǎn)的布局谐檀,通過 Web Server抡谐,Java Applet 附在 HTML 頁(yè)面上發(fā)送到需要的地方。

X86服務(wù)器(微服務(wù)架構(gòu)+分布式數(shù)據(jù)庫(kù))

例:民生銀行

分布式核心應(yīng)用分層架構(gòu)基本上可以分為四層,最上面這層叫做服務(wù)治理層,在這層上民生銀行采用的是阿里云的Dubbo服務(wù)桐猬。民生銀行在2013年與阿里云簽訂了協(xié)議,阿里云將Dubbo開源給民生 銀行,民生銀行在Dubbo上做了改進(jìn)以適應(yīng)銀行的金融場(chǎng)景麦撵。第二層叫服務(wù)組裝層,第三層叫原子 服務(wù)層,最后一層是數(shù)據(jù)庫(kù)層。在應(yīng)用層是服務(wù)治理的能力,過去銀行在講敏捷開發(fā)的時(shí)候,最困 難的地方在于微服務(wù)的治理课幕。這在傳統(tǒng)的系統(tǒng)架構(gòu)上面是很難治理的,也導(dǎo)致了系統(tǒng)的開發(fā)很難復(fù) 用,但是民生銀行這一次通過分布式化把服務(wù)治理好了以后,很多服務(wù)可以重新復(fù)用,無形之中能 快速的迭代開發(fā),包括在數(shù)據(jù)層和基礎(chǔ)設(shè)施層厦坛。

整個(gè)分布式技術(shù)平臺(tái)包括的功能有:
1、分布式數(shù)據(jù)庫(kù)訪問乍惊。一個(gè)理想的數(shù)據(jù)庫(kù)架構(gòu),其實(shí)最開始設(shè)計(jì)的時(shí)候就應(yīng)該考慮很多后面的事情 ,但是大部分銀行應(yīng)用迫于業(yè)務(wù)的壓力而匆匆的上線,導(dǎo)致后期很難修改,所以在數(shù)據(jù)庫(kù)層面,民生銀行進(jìn)行分庫(kù)分表,讀寫分離杜秸。
2、分布式事務(wù)润绎。在分布式事務(wù)上面,民生銀行是基于可靠消息的最終一致性和基于沖正模型的反向處理,來保證數(shù)據(jù)庫(kù)可靠運(yùn)行撬碟。
3、分布式服務(wù)框架與服務(wù)管控以及第四分布式批量作業(yè)調(diào)度莉撇。這是金融行業(yè)與傳統(tǒng)的行業(yè)不一樣的地方,在一個(gè)多并發(fā)的情況下,分布式的消息處理能力是最關(guān)鍵的,之前民生銀行試了很多開源的框架,但是在壓力測(cè)試下,都不滿足民生銀行的要求,因此民生銀行重寫了一套專有的批量作業(yè)調(diào)度的框架呢蛤。


image.png

還有分布式配置管理、消息中心棍郎、分布式緩存,交易冪等性其障、統(tǒng)一沖正,全局系列的核心功能,這些所有的核心因素集在一起,構(gòu)建了分布式的技術(shù)核心平臺(tái)。

在分布式的技術(shù)架構(gòu)的設(shè)計(jì)上面,有應(yīng)用的分布式和數(shù)據(jù)庫(kù)的分布式涂佃。通常大家在講分布式的時(shí)候 ,有的是在底層數(shù)據(jù)庫(kù)上實(shí)現(xiàn)分布式,有的是在應(yīng)用層實(shí)現(xiàn)分布式励翼。因?yàn)殂y行系統(tǒng)的業(yè)務(wù)在很多時(shí)候需要靠業(yè)務(wù)邏輯,需要保證應(yīng)用的可靠運(yùn)行,但是底層也需要分布式改造,所以民生銀行系統(tǒng)的 核心架構(gòu)在應(yīng)用層和數(shù)據(jù)庫(kù)層都實(shí)現(xiàn)了分布式蜈敢。在應(yīng)用的分布式上,首先在服務(wù)接入層實(shí)現(xiàn)了服務(wù)路由及管控能力,支持服務(wù)與數(shù)據(jù)單元化部署,然后在分布式服務(wù)層,建立分布式服務(wù)框架,集成 分布式消息及批處理框架能力。在數(shù)據(jù)的分布式上,首先在分布式數(shù)據(jù)庫(kù)層實(shí)現(xiàn)分庫(kù)分表的數(shù)據(jù)水 平擴(kuò)展能力,然后在DevOps層面上建立分布式運(yùn)維基礎(chǔ)能力,支持分布式應(yīng)用的持續(xù)集成和部署汽抚。

分布式建設(shè)中攻克的難點(diǎn)

1抓狭、在服務(wù)接入的時(shí)候技術(shù)難點(diǎn)
包括服務(wù)網(wǎng)關(guān)、訪問控制造烁、服務(wù)限流否过、交易冪等性等,系統(tǒng)需要提供服務(wù)的統(tǒng)一接口,并將外部請(qǐng)求路由到相應(yīng)服務(wù);需要提供細(xì)粒度服務(wù)訪問安全控制,確保系統(tǒng)的安全生產(chǎn)運(yùn)行;提供多維度服務(wù)限流,有效的應(yīng)對(duì)瞬間爆發(fā)的高并發(fā)訪問;支持交易冪等性,防止同一筆交易重復(fù)處理。
2惭蟋、平臺(tái)應(yīng)用技術(shù)難點(diǎn)
包括服務(wù)框架苗桂、配置中心、消息中心敞葛、批處理框架等誉察。需要攻克這些難點(diǎn),提供面向遠(yuǎn)程過程調(diào)用的服務(wù)框架和面向消息通信的消息中心,解決分布式環(huán)境下大量應(yīng)用節(jié)點(diǎn)配置管理和變更復(fù)雜的問
題,提供應(yīng)用于數(shù)據(jù)分布式之后批處理作業(yè)開發(fā)與運(yùn)行的機(jī)制与涡。
3惹谐、配置中心技術(shù)難點(diǎn)
主要解決配置分發(fā)時(shí)的時(shí)延控制和多節(jié)點(diǎn)的一致性控制。
4驼卖、數(shù)據(jù)訪問的技術(shù)難點(diǎn)
解決分布式數(shù)據(jù)訪問問題,實(shí)現(xiàn)數(shù)據(jù)庫(kù)水平擴(kuò)展,完成分庫(kù)分表氨肌、讀寫分離的SQL自動(dòng)路由,且對(duì) 應(yīng)用透明,性能高。解決分布式運(yùn)維問題,支持?jǐn)?shù)據(jù)庫(kù)分表后的應(yīng)用數(shù)據(jù)運(yùn)維支持酌畜。
5怎囚、應(yīng)用分庫(kù)分表的技術(shù)難點(diǎn):
數(shù)據(jù)庫(kù)層支持橫向擴(kuò)展,盡量避免分布式事務(wù),應(yīng)用透明,降低運(yùn)維復(fù)雜度。
6桥胞、一致性保證機(jī)制:
充分應(yīng)用微服務(wù)和組件化的設(shè)計(jì)思想,充分解耦應(yīng)用,最大程度避免分布式事務(wù),在冪等一致性上由服務(wù)提供方實(shí)現(xiàn)服務(wù)處理的冪等性,避免重復(fù)提交事務(wù)恳守。應(yīng)用通過沖正、對(duì)賬贩虾、一致性檢查等補(bǔ)償手段確保業(yè)務(wù)完整性和最終一致性催烘。采用兩階段提交實(shí)現(xiàn)分布式的強(qiáng)一致性。

分布式架構(gòu)實(shí)施建議

1缎罢、應(yīng)用架構(gòu)的X86化改造,目標(biāo)是開發(fā)統(tǒng)一的分布式微服務(wù)框架,實(shí)現(xiàn)應(yīng)用無狀態(tài)化,數(shù)據(jù)集中, 統(tǒng)一管控伊群。
2、云化基礎(chǔ)設(shè)施改造,實(shí)現(xiàn)數(shù)據(jù)與業(yè)務(wù)分離,實(shí)施業(yè)務(wù)去狀態(tài)化改造,并將數(shù)據(jù)層遷移到云化基礎(chǔ) 設(shè)施,建立云平臺(tái),存儲(chǔ)計(jì)算虛擬化,數(shù)據(jù)庫(kù)分布式部署策精。
3舰始、云化服務(wù),打造開放的服務(wù)能力平臺(tái),抽取公告技術(shù)服務(wù)能力,統(tǒng)一數(shù)據(jù)處理,全面部署X86集 群,減少對(duì)數(shù)據(jù)層邏輯依賴,構(gòu)建公告數(shù)據(jù)處理。


image.png

另外在應(yīng)用設(shè)計(jì)上面,總則是進(jìn)行垂直水平切分,垂直切分優(yōu)先,并盡量拆分成流水型應(yīng)用和狀態(tài) 型應(yīng)用,并將狀態(tài)型業(yè)務(wù)集中下沉咽袜。目前民生銀行已經(jīng)把直銷銀行應(yīng)用到核心系統(tǒng)之上了,運(yùn)行效 果非常好,現(xiàn)在正在計(jì)劃把其他的例如網(wǎng)銀丸卷、手機(jī)銀行等系統(tǒng)全部采用這樣的核心分布式進(jìn)行改造 。

核心系統(tǒng)采用兩地多機(jī)房的部署架構(gòu)询刹,同城兩個(gè)機(jī)房同時(shí)對(duì)外提供服務(wù)谜嫉,核心賬務(wù)數(shù)據(jù)按照客戶號(hào)進(jìn)行邏輯分區(qū)抽莱,每個(gè)機(jī)房包含多個(gè)邏輯分區(qū),邏輯分區(qū)之間相互隔離骄恶,外部交易請(qǐng)求通過全局路由技術(shù)組件食铐,根據(jù)路由規(guī)則路由到相應(yīng)的機(jī)房和相應(yīng)的邏輯分區(qū)。

這種方式改變了同城機(jī)房傳統(tǒng)上只作為熱備而不對(duì)外提供服務(wù)的使用方式僧鲁,有效提升了機(jī)房資源利用率虐呻;同時(shí)可以在同城兩個(gè)機(jī)房分別服務(wù)于不同的客戶,在機(jī)房出現(xiàn)故障時(shí)能夠降低客戶影響范圍寞秃,同城機(jī)房實(shí)現(xiàn)秒級(jí)切換斟叼,更有效地保障業(yè)務(wù)連續(xù)性,分布式核心系統(tǒng)雙活部署架構(gòu)如圖


image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末春寿,一起剝皮案震驚了整個(gè)濱河市朗涩,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌绑改,老刑警劉巖谢床,帶你破解...
    沈念sama閱讀 219,589評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異厘线,居然都是意外死亡识腿,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門造壮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來渡讼,“玉大人,你說我怎么就攤上這事耳璧〕审铮” “怎么了?”我有些...
    開封第一講書人閱讀 165,933評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵旨枯,是天一觀的道長(zhǎng)蹬昌。 經(jīng)常有香客問我,道長(zhǎng)召廷,這世上最難降的妖魔是什么凳厢? 我笑而不...
    開封第一講書人閱讀 58,976評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮竞慢,結(jié)果婚禮上先紫,老公的妹妹穿的比我還像新娘。我一直安慰自己筹煮,他們只是感情好遮精,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,999評(píng)論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般本冲。 火紅的嫁衣襯著肌膚如雪准脂。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,775評(píng)論 1 307
  • 那天檬洞,我揣著相機(jī)與錄音狸膏,去河邊找鬼。 笑死添怔,一個(gè)胖子當(dāng)著我的面吹牛湾戳,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播广料,決...
    沈念sama閱讀 40,474評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼砾脑,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了艾杏?” 一聲冷哼從身側(cè)響起韧衣,我...
    開封第一講書人閱讀 39,359評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎购桑,沒想到半個(gè)月后畅铭,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,854評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡其兴,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,007評(píng)論 3 338
  • 正文 我和宋清朗相戀三年顶瞒,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了夸政。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片元旬。...
    茶點(diǎn)故事閱讀 40,146評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖守问,靈堂內(nèi)的尸體忽然破棺而出匀归,到底是詐尸還是另有隱情,我是刑警寧澤耗帕,帶...
    沈念sama閱讀 35,826評(píng)論 5 346
  • 正文 年R本政府宣布穆端,位于F島的核電站,受9級(jí)特大地震影響仿便,放射性物質(zhì)發(fā)生泄漏体啰。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,484評(píng)論 3 331
  • 文/蒙蒙 一嗽仪、第九天 我趴在偏房一處隱蔽的房頂上張望荒勇。 院中可真熱鬧,春花似錦闻坚、人聲如沸沽翔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,029評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)仅偎。三九已至跨蟹,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間橘沥,已是汗流浹背窗轩。 一陣腳步聲響...
    開封第一講書人閱讀 33,153評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留座咆,地道東北人品姓。 一個(gè)月前我還...
    沈念sama閱讀 48,420評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像箫措,于是被迫代替她去往敵國(guó)和親腹备。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,107評(píng)論 2 356

推薦閱讀更多精彩內(nèi)容

  • 關(guān)于Mongodb的全面總結(jié) MongoDB的內(nèi)部構(gòu)造《MongoDB The Definitive Guide》...
    中v中閱讀 31,940評(píng)論 2 89
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理斤蔓,服務(wù)發(fā)現(xiàn)植酥,斷路器,智...
    卡卡羅2017閱讀 134,672評(píng)論 18 139
  • 目錄 ·大型網(wǎng)站軟件系統(tǒng)的特點(diǎn) ·大型網(wǎng)站架構(gòu)演化發(fā)展歷程 ·初始階段的網(wǎng)站架構(gòu) ·需求/解決問題 ·架構(gòu) ·應(yīng)用...
    zhyang0918閱讀 2,660評(píng)論 0 16
  • 技術(shù)架構(gòu)(一) 核心交易平臺(tái)設(shè)計(jì) 1弦牡、信息展現(xiàn)模塊:實(shí)現(xiàn)信啟友驮、的錄入和輸出,實(shí)現(xiàn)對(duì)屏幕及各種設(shè)備的控制。(1)包括...
    JC1265閱讀 7,523評(píng)論 0 6
  • 感恩兒子早上打車上學(xué)驾锰,讓我在家好好休息卸留,感冒一直持續(xù)不好還伴有咳嗽,早上太涼椭豫,一見涼氣就加重咳嗽耻瑟,所以一天沒出門。...
    開荒者cx閱讀 123評(píng)論 2 3