第一章:深入淺出開發(fā)交易系統(tǒng)公開課(進(jìn)化史)

深入淺出開發(fā)交易系統(tǒng)公開課(目錄)


關(guān)鍵詞:【賬戶系統(tǒng)】【撮合引擎】【清算系統(tǒng)】【金融級賬戶體系】【復(fù)式記賬法】【多邊凈額清算】


深入淺出開發(fā)交易系統(tǒng)公開課(進(jìn)化史).png

1. 交易系統(tǒng)應(yīng)用場景

什么是交易系統(tǒng)?從簡單的概念上講氓鄙,交易系統(tǒng)為商品市場提供商品的集中交易及報價探遵、撮合至壤、清算、交割桨吊、登記等服務(wù)。例如:證券交易系統(tǒng)為證券市場提供證券的集中交易及報價、撮合沸手、清算、交割注簿、登記等服務(wù)契吉;數(shù)字貨幣交易系統(tǒng)為數(shù)字貨幣市場提供數(shù)字貨幣的集中交易及報價、撮合诡渴、清算捐晶、交割、登記等服務(wù)妄辩;另外還有白銀交易系統(tǒng)惑灵、黃金交易系統(tǒng)、貴金屬交易系統(tǒng)眼耀、藥材交易系統(tǒng)英支、藝術(shù)品交易系統(tǒng)等等。

可見交易系統(tǒng)應(yīng)用場景比較廣泛哮伟,現(xiàn)在我們深入淺出探索交易系統(tǒng)的基礎(chǔ)設(shè)計干花,為感興趣的朋友提供交易系統(tǒng)相關(guān)的基礎(chǔ)知識、常見問題楞黄、改進(jìn)策略池凄、架構(gòu)設(shè)計等內(nèi)容,讓從事交易系統(tǒng)研發(fā)與應(yīng)用的朋友更高維度的審視交易系統(tǒng)架構(gòu)鬼廓,更深入的研究交易系統(tǒng)核心修赞,更清楚的掌握交易系統(tǒng)應(yīng)用。

閑話不說,我們進(jìn)入正題柏副。


2. 交易系統(tǒng)的不同視角

視角一:從開發(fā)設(shè)計視角來看:我們按照系統(tǒng)層次進(jìn)行劃分勾邦,可以將交易系統(tǒng)劃分為外圍系統(tǒng)、核心系統(tǒng)割择;外圍系統(tǒng)包括新聞系統(tǒng)眷篇、公告系統(tǒng)、用戶安全系統(tǒng)荔泳、錢包系統(tǒng)蕉饼、OTC系統(tǒng)等等,核心系統(tǒng)包括【撮合引擎】玛歌、【賬戶系統(tǒng)】昧港、【清算系統(tǒng)】;


視角二:從用戶體驗視角來看:對于交易系統(tǒng)來說支子,客戶最關(guān)心交易系統(tǒng)的三個指標(biāo):正確性创肥、高效性、高并發(fā)值朋;

【指標(biāo)一:正確性】:指的是系統(tǒng)業(yè)務(wù)鏈設(shè)計的正確性叹侄,業(yè)務(wù)執(zhí)行的正確性,業(yè)務(wù)核算的正確性以及業(yè)務(wù)異常處理的正確性昨登;對于交易系統(tǒng)的正確性來說趾代,我們99%關(guān)注是賬戶信息、賬戶資金丰辣、賬戶流水等業(yè)務(wù)的正確性撒强。主要受到撮合系統(tǒng)、賬戶系統(tǒng)的影響笙什;


【指標(biāo)二:高效性】:指的是一個完整業(yè)務(wù)鏈執(zhí)行完成尿褪,所需要的最短時間。例如:交易系統(tǒng)系統(tǒng)的委托交易業(yè)務(wù)鏈得湘;在兩筆買賣單可成交情況下杖玲,委托交易業(yè)務(wù)鏈由掛單、撮合淘正、成交摆马、清算四個步驟構(gòu)成。該業(yè)務(wù)鏈的執(zhí)行最短時間為【高效性】=【掛單時間】+【撮合時間】+【成交時間】+【清算時間】鸿吆。主要受到撮合引擎囤采、清算系統(tǒng)的影響;


【指標(biāo)三:高并發(fā)】:指的是在極短單位時間內(nèi)惩淳,極多個請求同時發(fā)起到服務(wù)器蕉毯,服務(wù)器對多個請求進(jìn)行處理乓搬。隨著交易系統(tǒng)的用戶量不斷增加,我們會采用多種手段改進(jìn)交易系統(tǒng)的設(shè)計實現(xiàn)代虾,滿足交易系統(tǒng)的高并發(fā)要求进肯。主要受到撮合引擎、賬戶體系棉磨、清算系統(tǒng)的影響江掩;


備注一:目前交易系統(tǒng)號稱撮合引擎百萬TPS,但是乘瓤,撮合引擎百萬TPS僅是委托交易業(yè)務(wù)鏈的一個撮合環(huán)節(jié)的處理效率环形,清算效率假如為100TPS,那么完整的委托交易業(yè)務(wù)鏈的TPS就是100TPS衙傀。對于百萬TPS撮合引擎抬吟,大家可以當(dāng)作是個宣傳口號,不可以應(yīng)用到技術(shù)研發(fā)的討論范疇统抬。

備注二:高并發(fā)和高效性是緊密相關(guān)的火本,提高應(yīng)用的性能,是肯定可以提高系統(tǒng)的并發(fā)能力的蓄喇。

在分析過程中发侵,我們可以看出交易系統(tǒng)核心三系統(tǒng)【撮合引擎】【賬戶系統(tǒng)】【清算系統(tǒng)】對交易系統(tǒng)的【正確性】【高效性】【高并發(fā)】具有重要的影響交掏。


3. 核心三系統(tǒng)初步探索


【系統(tǒng)一:撮合引擎】

  • 【現(xiàn)狀描述】:目前在網(wǎng)上傳播最多的當(dāng)屬【撮合引擎】的設(shè)計資料妆偏。交易系統(tǒng)的撮合引擎伴隨著90年代的證券交易系統(tǒng)發(fā)展而逐步完善。

  • 【發(fā)展歷程】:最早的數(shù)據(jù)庫撮合方式 -> 有鎖內(nèi)存撮合方式(有鎖內(nèi)存隊列)-> 無鎖內(nèi)存撮合方式(無鎖環(huán)形內(nèi)存隊列)盅弛。

  • 【影響分析】:目前撮合引擎的設(shè)計與實現(xiàn)已經(jīng)穩(wěn)定钱骂,實現(xiàn)百萬TPS的撮合效率也是很容易實現(xiàn)的。


【系統(tǒng)二:賬戶系統(tǒng)】

  • 【現(xiàn)狀描述】:現(xiàn)有的交易系統(tǒng)挪鹏,除了證券交易所這些用戶群體巨大见秽、業(yè)務(wù)復(fù)雜性高,具備完善的賬戶系統(tǒng)設(shè)計讨盒。一些用戶體量小、業(yè)務(wù)簡單的數(shù)幣貨幣返顺、白銀禀苦、黃金、貴金屬等交易所遂鹊,通常采用的都是【單式記賬法】振乏,記錄用戶的資金信息。目前交易系統(tǒng)的賬戶系統(tǒng)設(shè)計資料網(wǎng)上公開的信息并完整秉扑,也沒有形成賬戶系統(tǒng)解決方案慧邮。本系列文章后續(xù)會逐步介紹如何將【單式記賬法】普通賬戶系統(tǒng)升級為【復(fù)式記賬法】金融級賬戶系統(tǒng)。

  • 【發(fā)展歷程】:由最早的【用戶賬戶一體系統(tǒng)】升級為用戶賬戶分離的【單式記賬法-普通賬戶系統(tǒng)】,隨著金融業(yè)務(wù)的復(fù)雜度再次增加误澳,將【單式記賬法-普通賬戶系統(tǒng)】繼續(xù)升級為【復(fù)式記賬法-金融級賬戶系統(tǒng)】耻矮。

  • 【影響分析】:賬戶系統(tǒng)的設(shè)計對交易系統(tǒng)的【正確性】【高效性】【高并發(fā)】都起著重要的作用。例如普通賬戶系統(tǒng)經(jīng)常遇到的問題:

  • 1. 【影響正確性】賬戶設(shè)計缺失脓匿,系統(tǒng)無法進(jìn)行完整的記賬淘钟、對賬、查賬等操作陪毡;

    • 1.1 問題一:賬戶的資金經(jīng)常出現(xiàn)錯誤米母,甚至出現(xiàn)資金為負(fù)數(shù);

    • 1.2 問題二:賬戶流水記錄不完整毡琉,系統(tǒng)運行一段時間铁瞒,對賬戶無法進(jìn)行查賬、對賬桅滋;

  • 2. 【影響高效性慧耍、高并發(fā)】賬戶設(shè)計沖突,數(shù)據(jù)庫死鎖丐谋,系統(tǒng)的TPS得不到提升芍碧;

    • 2.1 問題三:多業(yè)務(wù)鏈同時操作賬戶余額表,造成數(shù)據(jù)庫死鎖号俐,系統(tǒng)異常停機泌豆;

【系統(tǒng)三:清算系統(tǒng)】

  • 【現(xiàn)狀描述】:當(dāng)下的清算系統(tǒng)與賬務(wù)系統(tǒng)處境相似,同樣被隱藏在撮合引擎的光環(huán)下吏饿,不被人們所熟知踪危。

  • 【發(fā)展歷程】:清算在用戶量小的情況下,采取一筆一筆的清算方式猪落,實現(xiàn)簡單贞远;但是,在用戶量特大的情況下笨忌,合并成交筆數(shù)(多筆成交記錄合并為一筆)才是比較好的清算方案蓝仲。將【單邊凈額清算】方式升級為【多邊凈額清算】方式

  • 【影響分析】:影響委托交易業(yè)務(wù)鏈的清算環(huán)節(jié),進(jìn)而影響交易系統(tǒng)的【高效性】【高并發(fā)】


4. 核心三系統(tǒng)發(fā)展現(xiàn)狀


【系統(tǒng)一:賬戶系統(tǒng)】

  • 【發(fā)展階段】:大部分交易系統(tǒng)的賬戶系統(tǒng)處于<單式記賬法-普通賬戶系統(tǒng)>的階段官疲,準(zhǔn)備進(jìn)行<復(fù)式記賬法-金融級賬戶系統(tǒng)>的階段袱结;
  • 【難點障礙】:
      1. 賬務(wù)核算流程不明確;
      1. 賬務(wù)核算結(jié)果不正確袁余;
      1. 用戶的賬戶出現(xiàn)錯誤擎勘,甚至出現(xiàn)負(fù)資產(chǎn)
  • 【反面教材】:
      1. 隨意修改數(shù)據(jù)庫表結(jié)構(gòu)、任意添加字段颖榜,保證賬務(wù)核算結(jié)果正確棚饵。由于修改沒有考慮影響范圍煤裙,導(dǎo)致賬戶系統(tǒng)越來越復(fù)雜,問題不斷擴(kuò)散噪漾。硼砰;
  • 【應(yīng)對策略】:
      1. 應(yīng)用《銀行會計學(xué)》的基礎(chǔ)理論;
      1. 進(jìn)行金融賬戶的設(shè)計欣硼、實施题翰、驗證;

【系統(tǒng)二:撮合系統(tǒng)】

  • 【發(fā)展階段】:大部分交易系統(tǒng)的撮合系統(tǒng)處于第一诈胜、二階段豹障,準(zhǔn)備對撮合系統(tǒng)進(jìn)行改造升級;
  • 【難點障礙】:
      1. 撮合過程焦匈、系統(tǒng)重啟等階段丟失委托單血公;
      1. 撮合業(yè)務(wù)流程出現(xiàn)未知異常,導(dǎo)致撮合失敗缓熟,且系統(tǒng)崩潰累魔;
  • 【反面教材】:
      1. 改造負(fù)責(zé)人不關(guān)注系統(tǒng)全局現(xiàn)狀,直接按照經(jīng)驗進(jìn)行系統(tǒng)模塊優(yōu)化升級够滑;
      1. 改造負(fù)責(zé)人對問題不進(jìn)行影響分析垦写,對撮合系統(tǒng)進(jìn)行打補丁,導(dǎo)致系統(tǒng)越來越復(fù)雜彰触,問題越來越多梯投;
  • 【應(yīng)對策略】:
      1. 構(gòu)建完整的系統(tǒng)業(yè)務(wù)流程資料,并隨著系統(tǒng)升級不斷調(diào)整資料的正確性渴析;
      1. 構(gòu)建全面的系統(tǒng)故障分析資料晚伙,并識別所有可能性異常吮龄;進(jìn)而俭茧,對異常進(jìn)行分層分級的歸納;最終漓帚,制定出合理的異常處理機制方案母债;

【系統(tǒng)三:清算系統(tǒng)】

  • 【發(fā)展階段】:清算系統(tǒng)在目前的交易系統(tǒng)中,都是和撮合引擎綁定在一起的尝抖,采用的是<單邊凈額清算>方式毡们;
  • 【應(yīng)對策略】:
      1. 進(jìn)行<多邊凈額清算>的設(shè)計、實施昧辽、驗證衙熔;

5. 結(jié)束語

在接下來的文章中,我們將逐步介紹交易系統(tǒng)的【賬戶體系】【撮合引擎】【清算系統(tǒng)】的設(shè)計實現(xiàn)搅荞。

第二章:深入淺出開發(fā)交易系統(tǒng)公開課(用戶需求矩陣)

第三章:深入淺出開發(fā)交易系統(tǒng)公開課(業(yè)務(wù)場景)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末红氯,一起剝皮案震驚了整個濱河市框咙,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌痢甘,老刑警劉巖喇嘱,帶你破解...
    沈念sama閱讀 217,826評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異塞栅,居然都是意外死亡者铜,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評論 3 395
  • 文/潘曉璐 我一進(jìn)店門放椰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來作烟,“玉大人,你說我怎么就攤上這事砾医∷滓迹” “怎么了?”我有些...
    開封第一講書人閱讀 164,234評論 0 354
  • 文/不壞的土叔 我叫張陵藻烤,是天一觀的道長绷雏。 經(jīng)常有香客問我,道長怖亭,這世上最難降的妖魔是什么涎显? 我笑而不...
    開封第一講書人閱讀 58,562評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮兴猩,結(jié)果婚禮上期吓,老公的妹妹穿的比我還像新娘。我一直安慰自己倾芝,他們只是感情好讨勤,可當(dāng)我...
    茶點故事閱讀 67,611評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著晨另,像睡著了一般潭千。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上借尿,一...
    開封第一講書人閱讀 51,482評論 1 302
  • 那天刨晴,我揣著相機與錄音,去河邊找鬼路翻。 笑死狈癞,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的茂契。 我是一名探鬼主播蝶桶,決...
    沈念sama閱讀 40,271評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼掉冶!你這毒婦竟也來了真竖?” 一聲冷哼從身側(cè)響起儡蔓,我...
    開封第一講書人閱讀 39,166評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎疼邀,沒想到半個月后喂江,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,608評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡旁振,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,814評論 3 336
  • 正文 我和宋清朗相戀三年获询,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拐袜。...
    茶點故事閱讀 39,926評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡吉嚣,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蹬铺,到底是詐尸還是另有隱情尝哆,我是刑警寧澤,帶...
    沈念sama閱讀 35,644評論 5 346
  • 正文 年R本政府宣布甜攀,位于F島的核電站秋泄,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏规阀。R本人自食惡果不足惜恒序,卻給世界環(huán)境...
    茶點故事閱讀 41,249評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望谁撼。 院中可真熱鬧歧胁,春花似錦、人聲如沸厉碟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽箍鼓。三九已至崭参,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間袄秩,已是汗流浹背阵翎。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評論 1 269
  • 我被黑心中介騙來泰國打工逢并, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留之剧,地道東北人。 一個月前我還...
    沈念sama閱讀 48,063評論 3 370
  • 正文 我出身青樓砍聊,卻偏偏與公主長得像背稼,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子玻蝌,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,871評論 2 354

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