東方證券股份有限公司系統(tǒng)運(yùn)行總部總經(jīng)理 王海東 證券交易系統(tǒng)是證券行業(yè)最重要的業(yè)務(wù)系統(tǒng),集中體現(xiàn)了一家證券公司的綜合技術(shù)實(shí)力。近幾年,隨著個(gè)股期權(quán)、港股通、CDR、科創(chuàng)板等業(yè)務(wù)的不斷推出,以及市場(chǎng)客戶和交易業(yè)務(wù)量的不斷攀升,對(duì)證券交易系統(tǒng)的業(yè)務(wù)支持速度、并發(fā)及吞吐量、處理時(shí)延、安全性、穩(wěn)定性、可擴(kuò)展性、敏捷性等等均提出了更高的要求。因此,打造兼具穩(wěn)態(tài)、敏態(tài)的證券交易新核心是保持證券公司核心競(jìng)爭(zhēng)力的關(guān)鍵。 作為國(guó)內(nèi)最早關(guān)注和踐行分布式技術(shù)路線的大型綜合券商,東方證券從2016年12月開(kāi)始規(guī)劃設(shè)計(jì),2018年5月完成了兼具雙態(tài)特性的證券交易新核心的構(gòu)建,分布式交易系統(tǒng)正式投產(chǎn)上線。經(jīng)過(guò)一年多時(shí)間的運(yùn)行檢驗(yàn),系統(tǒng)運(yùn)行穩(wěn)定,與集中交易系統(tǒng)對(duì)比,分布式交易系統(tǒng)實(shí)際交易峰值并發(fā)量提高了5倍,上行全鏈路平均時(shí)延快100倍,高可用主備切換耗時(shí)縮小到百分之一,節(jié)點(diǎn)擴(kuò)展部署速度提升20倍,業(yè)務(wù)開(kāi)發(fā)周期縮短了一半,單節(jié)點(diǎn)總擁有成本不到十分之一,得到了客戶和業(yè)務(wù)部門的高度認(rèn)同,提高了東方證券在機(jī)構(gòu)業(yè)務(wù)市場(chǎng)的知名度和競(jìng)爭(zhēng)力,取得了令人滿意的業(yè)務(wù)效果。 穩(wěn)態(tài)和敏態(tài) Gartner最早提出了穩(wěn)態(tài)和敏態(tài)的理念。所謂“穩(wěn)態(tài)”,強(qiáng)調(diào)要保持現(xiàn)有各業(yè)務(wù)系統(tǒng)的安全穩(wěn)定運(yùn)行,對(duì)證券行業(yè)而言,這是所有技術(shù)工作的重中之重。所謂“敏態(tài)”,強(qiáng)調(diào)敏捷、高效的進(jìn)行各種業(yè)務(wù)創(chuàng)新,這對(duì)金融科技廣泛應(yīng)用的今天,尤其是隨著移動(dòng)互聯(lián)網(wǎng)、人工智能、大數(shù)據(jù)、分布式等現(xiàn)代信息技術(shù)應(yīng)用場(chǎng)景的不斷落地,顯得尤為重要。 交易系統(tǒng)能否中長(zhǎng)期保持穩(wěn)態(tài),除后期運(yùn)維人力資源保障外,更重要的取決于它所依賴的基礎(chǔ)架構(gòu),東方證券基于分布式技術(shù)高可用特性構(gòu)建的系統(tǒng),攻克了雙活高可用場(chǎng)景下零數(shù)據(jù)丟失的難題,采用雙活設(shè)計(jì),交易節(jié)點(diǎn)故障切換可以做到零數(shù)據(jù)丟失,并且能在10秒以內(nèi)完成切換,大幅提升了交易系統(tǒng)的高可靠、高可用水平,保證了中長(zhǎng)期的穩(wěn)態(tài)。 交易系統(tǒng)要保持敏態(tài),首先要解決系統(tǒng)間、功能間的耦合問(wèn)題,其次要解決系統(tǒng)架構(gòu)的水平可擴(kuò)展性問(wèn)題,最后要解決系統(tǒng)對(duì)單臺(tái)服務(wù)器的依賴性問(wèn)題。東方證券基于分布式技術(shù)低時(shí)延特性,將業(yè)務(wù)邏輯與高可用解耦,大幅簡(jiǎn)化了業(yè)務(wù)開(kāi)發(fā)難度,降低了交易業(yè)務(wù)系統(tǒng)風(fēng)險(xiǎn),能夠快速響應(yīng)業(yè)務(wù)創(chuàng)新,縮短業(yè)務(wù)實(shí)現(xiàn)周期。 穩(wěn)態(tài)和敏態(tài)雖然目標(biāo)不一樣,但兩者并不矛盾,而是相輔相成的關(guān)系。對(duì)證券行業(yè)而言,兩者缺一都難以應(yīng)對(duì)激烈的同業(yè)競(jìng)爭(zhēng),打造支持“穩(wěn)態(tài)+敏態(tài)”雙態(tài)運(yùn)營(yíng)的系統(tǒng)才是王道。 集中式架構(gòu)的痛點(diǎn) 基于傳統(tǒng)集中式架構(gòu)的交易系統(tǒng),越來(lái)越難以適應(yīng)未來(lái)證券行業(yè)的發(fā)展,存在諸多痛點(diǎn)。 一是集中式架構(gòu)的業(yè)務(wù)和組件高度耦合、難以分拆,擴(kuò)展性差、牽一發(fā)而動(dòng)全身。二是集中式架構(gòu)存在較大延時(shí),處理速度一般在毫秒級(jí),難以滿足快速交易的客戶訴求;三是集中式架構(gòu)相對(duì)封閉,對(duì)國(guó)外供應(yīng)商的軟硬件產(chǎn)品依賴性過(guò)強(qiáng),自主選擇余地小且成本高昂;四是集中式架構(gòu)過(guò)于依賴內(nèi)部代碼邏輯,修改代價(jià)較高,且難以支持二次開(kāi)發(fā),不利于行業(yè)自主創(chuàng)新能力的提升。 綜上,對(duì)于穩(wěn)定性要求第一的證券行業(yè),集中式交易系統(tǒng)的每次系統(tǒng)修改和升級(jí)都如履薄冰,使得系統(tǒng)同時(shí)喪失穩(wěn)態(tài)和敏態(tài)。東方證券較早感知了集中式架構(gòu)對(duì)未來(lái)業(yè)務(wù)發(fā)展的制約,較早開(kāi)展了分布式技術(shù)轉(zhuǎn)型,較好的融合了交易系統(tǒng)的穩(wěn)態(tài)與敏態(tài)。 分布式架構(gòu)的優(yōu)勢(shì) 分布式架構(gòu)是下一代金融交易技術(shù)的趨勢(shì),這在證券行業(yè)已形成共識(shí)。分布式架構(gòu)具有降成本、提速度、靈活及擴(kuò)展性強(qiáng)、架構(gòu)開(kāi)放等特性,更適合中國(guó)證券市場(chǎng)牛短熊長(zhǎng)的特點(diǎn),也是實(shí)現(xiàn)證券公司核心業(yè)務(wù)系統(tǒng)自主掌控的最佳可行路徑。在此,以“證券交易資金算法”的例子形象說(shuō)明分布式架構(gòu)的優(yōu)勢(shì)。 證券行業(yè)經(jīng)過(guò)近30年的發(fā)展,尤其是2005后,各類業(yè)務(wù)層出不窮,進(jìn)而衍生出各種交收模式。隨著參與方的增多,進(jìn)一步增加了交收的復(fù)雜度,使得保障投資者資金正確的資金計(jì)算方法越來(lái)越復(fù)雜,這個(gè)算法也正是經(jīng)紀(jì)業(yè)務(wù)的核心業(yè)務(wù)算法之一。傳統(tǒng)集中交易的資金算法邏輯主要是構(gòu)建在資金表的資金字段上,一般會(huì)把同一種性質(zhì)的資金用同一個(gè)字段表示,然后編寫業(yè)務(wù)邏輯進(jìn)行計(jì)算,交收的順序和對(duì)手方的特性等都在業(yè)務(wù)邏輯中實(shí)現(xiàn)。每次業(yè)務(wù)修改都可能要修改相關(guān)的字段和業(yè)務(wù)邏輯,修改后可能影響所有使用該字段和邏輯的業(yè)務(wù)。為此我們從業(yè)務(wù)架構(gòu)的角度上考慮改變,嘗試把資金算法構(gòu)建成一個(gè)即穩(wěn)又敏的實(shí)現(xiàn)。 首先,我們把資金算法從業(yè)務(wù)邏輯中剝離出來(lái),形成多個(gè)小核心。每個(gè)小核心實(shí)現(xiàn)一類資金性質(zhì)的計(jì)算,比如競(jìng)價(jià)可用、港股可用、報(bào)價(jià)回購(gòu)可用、銀證可取等等;其次,每個(gè)小核心之間按規(guī)范進(jìn)行對(duì)接,這樣每類業(yè)務(wù)發(fā)生變化的時(shí)候也就只需要修改該業(yè)務(wù)的資金算法和業(yè)務(wù)邏輯,可以預(yù)見(jiàn)其修改的業(yè)務(wù)范圍會(huì)相對(duì)小,修改也相對(duì)簡(jiǎn)單,而且在調(diào)用邏輯充分清晰的情況下比較容易分析修改的影響域并進(jìn)行精準(zhǔn)的驗(yàn)證。 上述案例的解決方案是典型的“小核心、大外延、分布式業(yè)務(wù)架構(gòu)設(shè)計(jì)思路”,按照這種思路設(shè)計(jì)的業(yè)務(wù)架構(gòu),可以解決緊耦合帶來(lái)的痛點(diǎn),從而實(shí)現(xiàn)該業(yè)務(wù)場(chǎng)景對(duì)應(yīng)系統(tǒng)功能的穩(wěn)態(tài)和敏態(tài)共存。近觀科創(chuàng)板業(yè)務(wù)的技術(shù)實(shí)現(xiàn),相關(guān)的權(quán)限規(guī)則、盤后業(yè)務(wù)等邏輯,在分布式架構(gòu)下都是相對(duì)獨(dú)立的業(yè)務(wù)實(shí)現(xiàn),完全不影響原有業(yè)務(wù)功能。而基于傳統(tǒng)集中式架構(gòu)則只能修改原有核心交易功能來(lái)實(shí)現(xiàn)業(yè)務(wù),設(shè)計(jì)復(fù)雜度、業(yè)務(wù)風(fēng)險(xiǎn)、維護(hù)成本都隨之上升。 用分布式技術(shù)支撐分布式業(yè)務(wù) 基于傳統(tǒng)集中式架構(gòu)的交易系統(tǒng)之所以無(wú)法實(shí)現(xiàn)上述案例提及的功能,與其歷史發(fā)展有關(guān)。集中交易系統(tǒng)的業(yè)務(wù)與技術(shù)架構(gòu)始于本世紀(jì)初,最初的業(yè)務(wù)及技術(shù)架構(gòu)與業(yè)務(wù)發(fā)展是匹配的。但隨著業(yè)務(wù)品種擴(kuò)充、業(yè)務(wù)規(guī)模的飛速增長(zhǎng),各業(yè)務(wù)模塊緊耦合的架構(gòu)弊端逐漸顯現(xiàn)。因此促使我們利用分布式技術(shù)來(lái)進(jìn)行業(yè)務(wù)解耦的實(shí)現(xiàn),并降低系統(tǒng)高可用維護(hù)成本。 業(yè)務(wù)解耦的實(shí)現(xiàn)主要依賴兩方面問(wèn)題的解決,一是業(yè)務(wù)解耦規(guī)范的制定,二是解耦后原子業(yè)務(wù)相互調(diào)用的性能提升。業(yè)務(wù)解耦規(guī)范制定的重點(diǎn)是能否根據(jù)業(yè)務(wù)內(nèi)容整理出清晰易用可擴(kuò)展的核心業(yè)務(wù)條線,能否把不同業(yè)務(wù)模塊間的切面處理的干凈漂亮。這在傳統(tǒng)集中交易業(yè)務(wù)架構(gòu)初期是比較難的,目前隨著業(yè)務(wù)的成熟以及系統(tǒng)設(shè)計(jì)人員經(jīng)驗(yàn)的積累行業(yè)內(nèi)已經(jīng)具備了將業(yè)務(wù)清晰解耦的條件。第二,對(duì)于原子業(yè)務(wù)相互調(diào)用的性能來(lái)說(shuō),由于傳統(tǒng)集中式架構(gòu)依賴于數(shù)據(jù)庫(kù)實(shí)現(xiàn)業(yè)務(wù)的完整性,且當(dāng)時(shí)業(yè)務(wù)邏輯梳理不夠充分,導(dǎo)致一個(gè)業(yè)務(wù)調(diào)用往往會(huì)有多次同步的數(shù)據(jù)持久化動(dòng)作,同時(shí),原先網(wǎng)絡(luò)性能也相對(duì)較弱、抖動(dòng)較大,因此相互調(diào)用的性能大多在毫秒,甚至百毫秒級(jí)別,并行處理能力較差,不適用于對(duì)穩(wěn)定性要求高的大壓力場(chǎng)景?,F(xiàn)在,基于高性能網(wǎng)絡(luò)的低延遲方案已經(jīng)可以讓系統(tǒng)間的調(diào)用運(yùn)行在微秒級(jí),單節(jié)點(diǎn)并發(fā)處理能力達(dá)到每秒幾十萬(wàn)筆,完全可以適配相關(guān)要求。 對(duì)于高可用的維護(hù)成本,傳統(tǒng)集中式架構(gòu)的交易系統(tǒng)依賴IBM小型機(jī)、物理數(shù)據(jù)庫(kù)、高端存儲(chǔ)等高可用技術(shù),一套高可用系統(tǒng)的硬件成本動(dòng)輒需要千萬(wàn)級(jí)。由于成本較高,因此往往把需要高可用的功能集中部署、集中運(yùn)維。從而導(dǎo)致運(yùn)行風(fēng)險(xiǎn)集中、業(yè)務(wù)創(chuàng)新實(shí)現(xiàn)緩慢的問(wèn)題,這也正是傳統(tǒng)集中式交易系統(tǒng)的重要痛點(diǎn)。值得慶幸的是,隨著自主可控浪潮的推動(dòng),各類高可用技術(shù)發(fā)展迅猛,尤其是基于低延遲高可用的分布式技術(shù),其硬件成本通??煽刂圃诎偃f(wàn)級(jí)。這讓高可用系統(tǒng)的應(yīng)用范圍一下就可以擴(kuò)展到很多方面,從而使需要高可用特性的系統(tǒng)可以分開(kāi)部署實(shí)現(xiàn)業(yè)務(wù)解耦。 基于分布式架構(gòu)打造證券交易新核心 有了以上提及的業(yè)務(wù)和技術(shù)架構(gòu)的準(zhǔn)備,也就有了證券交易新核心的基礎(chǔ)。分布式技術(shù)打造的證券交易新核心相比傳統(tǒng)集中交易系統(tǒng)具有明顯的優(yōu)勢(shì)。 傳統(tǒng)集中交易系統(tǒng)的現(xiàn)狀包括但不限于四點(diǎn),一是在一個(gè)相對(duì)高可用的物理數(shù)據(jù)庫(kù)內(nèi)存放了賬戶、權(quán)限、參數(shù)、費(fèi)率、資產(chǎn)以及流水等數(shù)據(jù);二是投資者交易指令通常比較復(fù)雜,大多會(huì)涉及到上述所有類型的數(shù)據(jù);三是營(yíng)運(yùn)業(yè)務(wù)指令相對(duì)單純,但一般也會(huì)涉及到上述兩到三個(gè)類型的數(shù)據(jù);四是清結(jié)算相關(guān)業(yè)務(wù)最復(fù)雜,通常會(huì)反復(fù)多次用到上述所有類型數(shù)據(jù)。 這樣的邏輯一開(kāi)始看上去似乎并不復(fù)雜,數(shù)據(jù)和業(yè)務(wù)分開(kāi),需要什么處理什么就可以了。然而這只是表面現(xiàn)象,實(shí)際情況是由于所有業(yè)務(wù)都依賴這些數(shù)據(jù),一旦有新的業(yè)務(wù)需要改動(dòng)時(shí),很難辨識(shí)對(duì)其他業(yè)務(wù)的影響,前面所舉資金算法就是一種場(chǎng)景。如果把數(shù)據(jù)庫(kù)比作證券交易系統(tǒng)的心臟,那么所有業(yè)務(wù)使用數(shù)據(jù)庫(kù)的場(chǎng)景就如同萬(wàn)箭穿心,這種情況下穩(wěn)態(tài)和敏態(tài)也就成了無(wú)法實(shí)現(xiàn)的幻影。 對(duì)比上述四點(diǎn)現(xiàn)狀,通過(guò)分布式技術(shù)解耦后的系統(tǒng)狀態(tài)如下: 一是業(yè)務(wù)上以營(yíng)運(yùn)管理為中心將系統(tǒng)分解成多類小核心,并實(shí)現(xiàn)業(yè)務(wù)核心的高內(nèi)聚,避免過(guò)長(zhǎng)的業(yè)務(wù)條線; 二是以每個(gè)小核心為中心結(jié)合相應(yīng)的外延業(yè)務(wù)形成子系統(tǒng),其中引擎和服務(wù)可以根據(jù)業(yè)務(wù)分成多個(gè),例如有競(jìng)價(jià)交易引擎、非交易引擎、大宗交易引擎等等; 三是每個(gè)子系統(tǒng)采用分布式的高可用技術(shù)保障穩(wěn)定性,從而實(shí)現(xiàn)系統(tǒng)的穩(wěn)態(tài); 四是技術(shù)上子系統(tǒng)間使用分布式的低延遲高速消息總線進(jìn)行數(shù)據(jù)交互,實(shí)現(xiàn)業(yè)務(wù)解耦,從而易于實(shí)現(xiàn)系統(tǒng)的敏態(tài); 為更好證明業(yè)務(wù)解耦在技術(shù)層面的可行性,我們接下來(lái)談一談如何結(jié)合分布式技術(shù)和物理數(shù)據(jù)庫(kù)實(shí)現(xiàn)數(shù)據(jù)一致性。這里我們?cè)诨诟咝阅艿幕A(chǔ)上,以資產(chǎn)計(jì)算解耦為例,著重從數(shù)據(jù)使用的特點(diǎn)進(jìn)行分析,從而解決一致性問(wèn)題。通常,要保障一致性往往要先解決持久化問(wèn)題。本例而言,基于物理數(shù)據(jù)庫(kù)所構(gòu)建的高可用仍然是非常好的數(shù)據(jù)持久化工具。因此,我們這個(gè)例子中使用物理數(shù)據(jù)庫(kù)作為持久化的一個(gè)場(chǎng)景提供業(yè)務(wù)管理和查詢服務(wù)。 這里有兩類外部指令需要特別關(guān)注,一是銀證轉(zhuǎn)賬,一是資產(chǎn)查詢。對(duì)于銀證轉(zhuǎn)出,其事務(wù)一致性要求往往較高,因此在轉(zhuǎn)賬時(shí)應(yīng)直接從競(jìng)價(jià)引擎先行扣除再轉(zhuǎn)出。而對(duì)于資產(chǎn)查詢,如果只是針對(duì)總資產(chǎn)進(jìn)行統(tǒng)計(jì)分析,一致性時(shí)延要求則不太高,約百毫秒級(jí),這時(shí)我們使用的是競(jìng)價(jià)引擎同步下來(lái)的結(jié)果,在數(shù)據(jù)庫(kù)與可取資金合并后輸出的數(shù)據(jù)。此外,對(duì)總可取資金查詢也可以這樣實(shí)現(xiàn),只有買入依賴的競(jìng)價(jià)可用查詢,因?yàn)闀r(shí)延要求比較高,我們建議在競(jìng)價(jià)引擎中直接查詢。這種方案很好結(jié)合了分布式技術(shù)和物理數(shù)據(jù)庫(kù)分場(chǎng)景實(shí)現(xiàn)了數(shù)據(jù)一致性,完成了資產(chǎn)的分布式計(jì)算。 總結(jié) 回顧系統(tǒng)建設(shè)過(guò)程,我們?cè)趯?duì)業(yè)內(nèi)分布式架構(gòu)進(jìn)行了調(diào)研分析后,選擇了與華銳金融技術(shù)的專業(yè)團(tuán)隊(duì)合作,一步一步完成了原型驗(yàn)證、系統(tǒng)設(shè)計(jì)和開(kāi)發(fā)、上海節(jié)點(diǎn)上線、南方中心節(jié)點(diǎn)上線等多個(gè)里程碑,最終打造出既可靠、又快速的分布式交易系統(tǒng)。目前,系統(tǒng)已經(jīng)支持了現(xiàn)貨交易、新股發(fā)行、回購(gòu)、科創(chuàng)板、信用交易等多項(xiàng)業(yè)務(wù),并與賬戶系統(tǒng)、營(yíng)運(yùn)管理和清算系統(tǒng)之間實(shí)現(xiàn)了良好的交互,目前正在增加更多的業(yè)務(wù)引擎。 除了低時(shí)延和高可用特性以外,分布式架構(gòu)還具有很多優(yōu)良特性,比如彈性可擴(kuò)展、開(kāi)放、平臺(tái)化、易于自主掌控、易于國(guó)產(chǎn)化等。這些特點(diǎn)相對(duì)于傳統(tǒng)技術(shù)而言,在系統(tǒng)的穩(wěn)態(tài)和敏態(tài)建設(shè)中都有著不可替代的優(yōu)勢(shì)。 經(jīng)過(guò)實(shí)踐檢驗(yàn),我們深信基于低時(shí)延高可用分布式架構(gòu)打造的證券交易新核心將成為解決傳統(tǒng)集中交易痛點(diǎn)、實(shí)現(xiàn)穩(wěn)態(tài)和敏態(tài)并舉的優(yōu)選方案。 |
|