一個(gè)交易系統(tǒng)需要滿足那些要求?交易系統(tǒng)和其他系統(tǒng)犁嗅,既有共性边涕,又有很多的不一樣地方; 不像其他領(lǐng)域需求比較不確定褂微、多變功蜓,對(duì)于金融行業(yè),很多業(yè)務(wù)背景其實(shí)幾十年宠蚂,甚至上百年來(lái)都沒(méi)有改變式撼;很久以前沒(méi)有電腦時(shí)候大家是這樣玩的:
可以想象大家濟(jì)濟(jì)一堂,熙熙攘攘求厕,吵吵鬧鬧著隆,對(duì)著黑板數(shù)字口若懸河,眉飛色舞呀癣;和現(xiàn)在對(duì)著k線大談一通其實(shí)沒(méi)有什么差別美浦, 只不過(guò)過(guò)去人與人更近點(diǎn)。
但凡能夠打動(dòng)人類靈魂深處的東西项栏, 比如*黃**賭***毒浦辨,都能激發(fā)人類的無(wú)限的想象力和創(chuàng)造力,比如現(xiàn)時(shí)流行的視頻社交沼沈,其實(shí)玩線視頻最溜的流酬,技術(shù)最為先進(jìn)的币厕,是當(dāng)今世界上最大不可描述網(wǎng)站某por**hub; 據(jù)說(shuō)最近在玩AI,已經(jīng)遠(yuǎn)遠(yuǎn)超過(guò)很多紙上談兵的研究機(jī)構(gòu)。交易系統(tǒng)也是芽腾,這樣一個(gè)充滿荷爾蒙旦装,總是讓人蠢蠢欲動(dòng),欲罷不能的產(chǎn)業(yè)晦嵌,更是在玩家同辣,莊家,服務(wù)提供者們的共同努力下惭载,將技術(shù)的運(yùn)用推到了極致旱函;互聯(lián)網(wǎng)和移動(dòng)化,更多的參與者涌入描滔,如何做好這個(gè)國(guó)民手游棒妨,是個(gè)非常挑戰(zhàn)而又有意義的事情。
安全/高可用
對(duì)于金融系統(tǒng)來(lái)說(shuō)含长, 這是個(gè)硬性指標(biāo)券腔,安全可能分不同類別, 比如企業(yè)的內(nèi)部環(huán)境拘泞,金融系統(tǒng)一般有自己專有網(wǎng)絡(luò)環(huán)境纷纫, 對(duì)于辦公室場(chǎng)所上班行為也有非常嚴(yán)格的控制,畢竟往往堡壘都是從內(nèi)部攻破陪腌。這些都有相應(yīng)的標(biāo)準(zhǔn)辱魁、規(guī)范和法律, 基本有專門的團(tuán)隊(duì)負(fù)責(zé)這塊東西诗鸭。?
和我們交易相關(guān)聯(lián)的部分染簇, 很大部分是數(shù)據(jù)和平臺(tái)的安全, 平臺(tái)的安全强岸,信息交互的通道安全否锻弓, 平臺(tái)是否穩(wěn)定, 數(shù)據(jù)存儲(chǔ)安全否蝌箍,防篡改青灼, 是否有冗余備份,防止丟失十绑。
對(duì)于數(shù)據(jù)通道存儲(chǔ)安全聚至,使用加密算法,現(xiàn)在一般都比較成熟本橙, 業(yè)有規(guī)范的行業(yè)標(biāo)準(zhǔn)。?
對(duì)于平臺(tái)的安全也就是災(zāi)備脆诉, 現(xiàn)在的金融系統(tǒng)甚亭, 最主流的災(zāi)備技術(shù)是兩地三中心(即生產(chǎn)數(shù)據(jù)中心贷币、同城災(zāi)備中心、異地災(zāi)備中心)亏狰。
參考下阿里高可用技術(shù)架構(gòu): 第一個(gè)是做了同城的雙活役纹,第二個(gè)做了異地只讀及冷備,第三個(gè)是做了異地多活暇唾,這塊促脉, 基本專門系統(tǒng)團(tuán)隊(duì)維護(hù), 對(duì)于我們?cè)O(shè)計(jì)開(kāi)發(fā)的團(tuán)隊(duì)策州, 接觸不多瘸味。 上面的文章, 可能更多的談到實(shí)現(xiàn)的過(guò)程够挂, 沒(méi)有具體實(shí)現(xiàn)的細(xì)節(jié)旁仿, 說(shuō)到這里,其實(shí)阿里云上有專門針對(duì)金融系統(tǒng)的解決方案孽糖, 這里人家也是拿出看家的本領(lǐng)來(lái)分享枯冈,能夠做到異地多活還是非常牛掰的,保證最終一致性可能是退而求其次的方案办悟, 參考CAP 理論尘奏。翻了翻還有不少: 寫(xiě)事情真不能100%完美退而求其次也不錯(cuò):《異地多活設(shè)計(jì)辣么難?其實(shí)是你想多了病蛉!》 炫加;服務(wù)降級(jí)等在應(yīng)用層中控制也是不錯(cuò)方案。 《面向業(yè)務(wù)的立體化高可用架構(gòu)設(shè)計(jì)》铡恕;總之條條大道通羅馬琢感,八仙過(guò)海各有神通, 不拘一格探熔,只要能解決問(wèn)題的方法就是好方法驹针、對(duì)的方法。?
保證高可用性诀艰,另外一個(gè)監(jiān)控運(yùn)維也是必不可少的步驟柬甥, 畢竟三分代碼, 七分運(yùn)維其垄】疗眩總之成功的項(xiàng)目和每個(gè)部門、每個(gè)環(huán)節(jié)都密不可分绿满。成功的項(xiàng)目都是類似的臂外, 不成功的項(xiàng)目是千差萬(wàn)別的。
我們這里將主要分享的是, 具體的應(yīng)用層面漏健, 如何實(shí)現(xiàn)數(shù)據(jù)一致性嚎货, 下面會(huì)有專門的章節(jié)講解,在應(yīng)用層面如何使用 eventsource 等設(shè)計(jì)模式蔫浆,保證數(shù)據(jù)一致性殖属,和可追溯。對(duì)數(shù)據(jù)的冗余瓦盛,更多會(huì)使用分片partition 和 replication洗显; 如何動(dòng)態(tài)的調(diào)整不同節(jié)點(diǎn)之間的balance, 整個(gè)cluster集群的維護(hù)原环。?
性能
天下武功挠唆,唯快不破;對(duì)于交易系統(tǒng)扮念,快代表這先人一步得到消息损搬, 也就意味這更多、更佳的交易機(jī)會(huì)柜与,和更好的盈利巧勤;所以人對(duì)交易系統(tǒng)延誤的忍受會(huì)被遠(yuǎn)遠(yuǎn)的放大, 可能你在刷淘寶的時(shí)候多1~2秒延遲你還能忍受弄匕, 但是在交易系統(tǒng)颅悉,就像有句臺(tái)詞:我分分秒秒幾百萬(wàn)的盈虧。 這有點(diǎn)夸張迁匠, 但是確實(shí)很現(xiàn)實(shí)剩瓶, 特別在高風(fēng)險(xiǎn)、高杠桿化的交易中城丧, 分秒就是盈虧的分界線延曙; 所以性能除了我們上面說(shuō)到的高可用性外,在單節(jié)點(diǎn)上如何實(shí)現(xiàn)性能最大化是在設(shè)計(jì)中必須要考慮的亡哄。 現(xiàn)有交易系統(tǒng)大部分基于一些更底層更高效的語(yǔ)言(c/c++)枝缔, 但是語(yǔ)言始終是一門工具。能否達(dá)到預(yù)期的性能需求蚊惯, 還是要看具體的設(shè)計(jì)和實(shí)現(xiàn)愿卸。?
這里演示的系統(tǒng), 基礎(chǔ)開(kāi)發(fā)語(yǔ)言是java截型,可能熟悉編程語(yǔ)言的人懷疑java 能否勝任趴荸, 但是對(duì)于一個(gè)企業(yè)的開(kāi)發(fā), 有諸多的因素需要考量:成本宦焦,效率发钝,投資回報(bào)率等等顿涣,其實(shí)對(duì)于性能的需求,同高可用性需求一樣笼平, 大家有諸多理解上的誤區(qū)园骆, 這也同大家對(duì)質(zhì)量的理解一樣舔痪, 質(zhì)量是越高越好嗎寓调? ?答案不是, 是能滿足你的質(zhì)量就是最好的質(zhì)量锄码。你用一次性塑料袋去買捆菜夺英, 非得要這個(gè)袋子鍍金的,上面有印有精美的花紋的滋捶, 那是不現(xiàn)實(shí)的痛悯。 同樣對(duì)于性能的需求,對(duì)于一個(gè)目標(biāo)是服務(wù)于每個(gè)能上網(wǎng)的民眾重窟; 在如今基礎(chǔ)上你也許很難達(dá)到毫秒級(jí)別载萌,即時(shí)能夠達(dá)到, 付出的成本也許大大超出你的承受范圍巡扇,所以做生意或者做人一樣都得有點(diǎn)妥協(xié)扭仁,這是么有原則性嗎?不是厅翔!這恰恰是最好的原則乖坠; 如果我就需要100%高可用性,所有單子都需要在1毫秒內(nèi)成交--這個(gè)才是絕對(duì)不能的刀闷!
于是乎熊泵, 達(dá)到恰好是資源、能力范圍內(nèi)能夠達(dá)到甸昏,最好的顽分、最大滿足性能需求的設(shè)計(jì),便是當(dāng)下最優(yōu)的設(shè)計(jì)施蜜,不要over design 才是對(duì)你投資人老板最好的負(fù)責(zé)卒蘸!
除了java 是基礎(chǔ)的語(yǔ)言, 也有必不可少的中間件:緩存花墩、 內(nèi)存網(wǎng)格悬秉、消息等, 下篇章節(jié)將一一細(xì)述冰蘑。
PS: ?對(duì)于某些細(xì)節(jié)過(guò)分的追求和泌,可能是大部分技術(shù)出生的工科男的一大優(yōu)點(diǎn)也是一大通病, 項(xiàng)目中最大的風(fēng)險(xiǎn)固然是時(shí)間成本不夠祠肥,還有一個(gè)潛在的隱形殺手是項(xiàng)目鍍金武氓!一個(gè)項(xiàng)目必須100%完美才能上馬?非的花費(fèi)大部分時(shí)間去優(yōu)化一個(gè)1%性能提升的模塊? 不是的县恕。特別對(duì)于IT項(xiàng)目东羹,等到完美的那一刻, 也許這個(gè)項(xiàng)目永無(wú)上線之日忠烛。?
[GoXTX 下一代交易平臺(tái)技術(shù)供應(yīng)商](https://www.goxtx.com/index_cn.html)
[GoXTX one-stop solution for neXT generation eXchange](https://www.goxtx.com)