電子信箱 service [at] bituzi.com
幣圖誌首頁 facebook粉絲團 google plus google plus

超高速即時處理架構 – Storm 上的高頻交易系統




大家好,我是貓大!記得不久前和大家介紹了Storm的基本概念,在<現正火紅的分散式運算框架:Storm,初探!>一文中提到,我們使用了分散式運算架構Storm,來幫助我們進行非常高速的高頻交易股價處理,以及大量的市場狀態運算。今天將為大家更深入的介紹在高頻交易系統中,我們是如何應用這套架構來加速我們的市場狀態運算。

超高速平行處理

藉由Storm,當Tick報價傳進時,我們可以在數十毫秒(Milliseconds)甚至數毫秒內將其處理,運用高速內部網路連接的電腦叢集,快速運算出多達數百萬的各類技術指標數值,這些運算出來的數值,一部分會後送至大資料儲存資料庫HBase;另一部分則經由高速信息通道Kafka,即時傳送給另一個Storm Topology—交易室(有關Storm Topology的定義,請參閱<現正火紅的分散式運算框架:Storm,初探!>)。線上用戶的策略會在交易室待命,接近即時(Real-time)地以技術指標數值做商品的買賣信號判斷,然後,信號一出現,就迅雷不及掩耳地下單!

Topology的組合應用:市場狀態室和交易室

在這整套處理架構中,最核心的部分自然是Storm。我們以兩套Strom Topology前後連接,第一個Topology我們稱為市場狀態室,用以處理每秒上百萬種的技術指標運算及儲存,市場狀態室的運算工作量不但繁重,算出的資料量也十分巨大,最重要的是,時間需求非常迫切,必須在數十毫秒內完成,否則等你算完,趨勢都過了;第二個Topology是交易室,用來即時容納大量用戶的策略實體,這些策略實體會自動接收市場狀態室傳過來的技術指標數值,運用這些數值,在數十到數百毫秒之內即時運算出信號,並藉由高速訊息通道,提供給用戶做市場趨勢判斷,如果用戶決定下單,就會馬上將單子丟給和我們系統相接的下單接口,由證券商代為下單。
另外,由於每秒算出的資料龐大,因此對於資料儲存的需求也格外嚴苛,必須能夠每秒將數百萬種的技術指標數值全部存入,並且要盡可能不造成延遲,拖慢後續人工智慧演算法建模,因此我們選用了HBase作為整體技術指標數值的儲存資料庫。除此之外,由於是分散式架構,跨機器的訊息傳遞頻繁,因此我們也利用Kafka,實作了一套高速訊息傳遞系統,幫助我們在跨機器的訊息傳遞方面,不會延遲。
利用兩套Storm Topology—市場狀態室及交易室的結合,我們能夠非常高速的處理大量市場狀態,並且支持大量用戶作即時的信號判斷。在資料儲存的部分,使用HBase分散式資料庫處理海量儲存的種種問題;訊息傳遞則是利用Kafka,實作了高速訊息傳遞系統,解決跨機器的高速訊息溝通需求。
關於資料庫HBase和高速訊息傳遞通道Kafka,若各位有興趣,我們將在後續文章中繼續介紹,也歡迎對我們提出指教!

採礦貓

採礦貓過去在許多金控公司當過顧問,看到很多台灣散戶投資者被國外的投資公司坑殺,因而希望能提供散戶強大的投資工具與武器以提升獲利率、避免走上被坑殺的道路

0 意見: