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


超高速即時處理架構-Kafka




大家好,我是貓大!各位還記得嗎?在不久之前的文章<超高速即時處理架構–Storm上的高頻交易系統>中提到了kafka一詞,這周貓大就要為各位介紹什麼是kafka,為什麼需要用到它,以及帶來的好處又是什麼。

什麼是Kafka ?
Apache Kafka由LinkedIn所開發,並且在2012年成為了Apache中的主要項目之一,可以即時處理龐大的資料傳遞工作,Kafka就是一種訊息佇列,它可以儲存正在傳輸的訊息,保證當我們在跨機器的訊息傳遞時,可以準確無誤的送達。

為什麼用到Kafka?
對於採礦貓的高頻交易系統而言,我們有前端的使用者介面,後端負責接收即時報價的市場狀態室、交易室、規劃室以及模擬交易室,就開發的過程與日後的維護而言,如果能降低各室耦合程度的話,是很有幫助的,也就是可以透過Kafka作為各室訊息傳輸的接口,如此一來便可避免當修改某室程式碼時,其它室的程式碼,也須隨之修改的狀況發生。
由於各室是分散到不同台實體機器上,所以訊息傳輸是非常重要的!Kafka可以保證大量的訊息,可以準確無誤地快速送達,再者Kafka可以同時提供離線處理與即時處理,所以就滿適合市場狀態室、交易室,這種透過Storm去處理大量即時的訊息,而離線處理就適合像是規劃室,因為規劃室的功能是透過歷史資料,來建立模型,產出策略之用。

Kafka的架構
Kafka的主要角色:
➢Topic : 放訊息的類別。
➢Producer : 向Topic發送訊息者。
➢Broker : Kafka的伺服器。
➢Consumer : 訂閱並處理訊息者。
➢Zookeeper : 協調管理kafka的群集配置。


此為Kafka架構圖對照採礦貓的高頻交易系統而言,Producer就是即時報價的來源,每秒都會有報價進來,這些報價資料會push到Topic裡,而以Storm撰寫的市場狀態室就是Consumer,它會pull資料回來,然後進行處理,進而產生數千個技術指標,以供日後規劃室建立策略。

Kafka是一種訊息佇列,它的好處像是可以降低系統的耦合度,高吞吐量的處理即時數據,而且可以保證資料的送達,當發生Broker當機的時候,也有復原的機制,對於貓大的高頻交易系統而言,Kafka是非常重要的,它可是整個系統的骨幹呢!

採礦貓

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

0 意見: