根據之前參與了一個國家級證券交易所新一代交易系統的經歷,畫了一個交易所基本架構圖,如下:
名詞解釋:
0. STEP協議是什么?
STEP: Securities Trading ExchangeProtocol,是中國金融行業數據通信標准JR/T0022-2004,目前被深圳交易所采用,作為LeveII數據向信息服務商分發的數據的標准協議。
其實,這個交易所支持多種證券交易協議,包括:FIX,FAST協議。
1. FIX基本介紹
FIX--The Financial Information eXchange ("FIX") Protocol,金融信息交換協議.是針對交易相關消息的規范。在銀行、券商、交易所、投資機構、相關業間應用非常廣泛。這些市場參與者基於統一的語言進行自動交易。
fix是工業驅動的消息標准,它是開放和自由的,但不是一套軟件。而是一個規范,各廠商基於規范開發相應的軟件。作為在交易通信中的主導協議,fix與其它的訂單處理系統、交易系統融合。fix協議有兩層:會話層和應用層。會話層主要是負責傳輸數據,而應用層則是處理相關的業務數據。
2.FAST協議
FAST(FIX Adapted for Streaming) ,其核心是一個壓縮算法,將按照fix規范定義的數據經過壓縮以后,可以在很大程度傷降低發送、接收雙方的帶寬。
交易所對穩定性和性能,有極高的要求,這就對架構設計能力有很高的考驗,有幸參與這一個有意思的過程,其實,里面的架構師都是來自微軟,ebay,IBM的一線架構師,其中Ebay的架構給了我們不少啟發。
首先說說我們的最終達到的成果吧:
目前可容納的投資者賬戶數超3億個,證券數量從原有系統的5千只可擴大至5萬只,容量擴大了10倍。並且具備每秒30萬筆、每日超4億筆委托的處理能力,是原有系統的3倍。新一代交易系統將平均委托處理時延約為1.1毫秒,僅為原有系統的百分之一,而五年總體成本僅是原有系統的1/3。
這個架構核心思想也是借鑒EBAY架構師Dan Pritchett源於對大規模分布式系統的實踐總結,在ACM上發表文章提出BASE理論,BASE理論是對CAP理論的延伸,核心思想是即使無法做到強一致性(Strong Consistency,CAP的一致性就是強一致性),但應用可以采用適合的方式達到最終一致性(Eventual Consitency)。
但證券交易系統對數據一致性有更高要求,但交易所不缺錢,很多高性能,高可用都是用很貴的硬件堆起來的。
BASE是指基本可用(Basically Available)、軟狀態( Soft State)、最終一致性( Eventual Consistency)。
基本可用(Basically Available)
基本可用是指分布式系統在出現故障的時候,允許損失部分可用性,即保證核心可用。
電商大促時,為了應對訪問量激增,部分用戶可能會被引導到降級頁面,服務層也可能只提供降級服務。這就是損失部分可用性的體現。
軟狀態( Soft State)
軟狀態是指允許系統存在中間狀態,而該中間狀態不會影響系統整體可用性。分布式存儲中一般一份數據至少會有三個副本,允許不同節點間副本同步的延時就是軟狀態的體現。mysql replication的異步復制也是一種體現。
最終一致性( Eventual Consistency)
最終一致性是指系統中的所有數據副本經過一定時間后,最終能夠達到一致的狀態。弱一致性和強一致性相反,最終一致性是弱一致性的一種特殊情況。
ACID和BASE的區別與聯系
ACID是傳統數據庫常用的設計理念,追求強一致性模型。BASE支持的是大型分布式系統,提出通過犧牲強一致性獲得高可用性。
ACID和BASE代表了兩種截然相反的設計哲學
在分布式系統設計的場景中,系統組件對一致性要求是不同的,因此ACID和BASE又會結合使用。
參考資料