無論是股票交易系統,或是數位貨幣交易系統,都離不開撮合交易引擎,這是交易平台的心臟。同時,優秀的架構設計也會讓交易平台的維運和持續開發更加容易。本文基於對開源專案的深入研究,總結了數位貨幣交易系統的架構設計。
關於撮合交易系統
撮合技術主要是從資料庫撮合技術向記憶體撮合技術發展,這是因為資料庫撮合技術越來越無法滿足金融交易對於高可靠性、高性能、強安全性、可擴充性以及易維護性的需求。金融(幣幣)交易撮合系統中包括以下幾個核心模組:
用戶:終端用戶委託報價與數量,產生訂單發送至交易平台。
閘道:負責收集使用者訂單,並將其派發給撮合引擎。
撮合引擎:交易系統中的核心部分,用於接收訂單並根據業務邏輯實現訂單撮合約時產生交易記錄,隨後給予用戶交易結果回饋。
資料庫:用來存放交易過程中的訂單和交易記錄,實現資料持久化。
訊息佇列:一般用於訂單訊息的傳輸
關於技術選型
一個交易所平台的技術架構主要考慮安全性、分散式、易擴展、容錯性、低延遲、高並發等特性,以及熔斷機制、服務註冊與發現、訊息服務、服務閘道、安全認證、記憶體資料庫、關聯式資料庫等各種選項,最終形成如下技術選型:
分散式基礎進行架構SpringCloud與Dubbo之間二選一,由於SpringCloud更加知名,SpringCloud的程式設計師更好招聘,有利於系統的長期運維升級,而且SpringCloud是基於SpringBoot開發,比較有親切感,所以選擇了SpringCloud,其實由於阿里系的強大影響,國內Dubbo使用更加廣泛,不同的團隊可以根據自己的情況選擇。
引入Hystrix斷路器作為容錯保護模組,防止單一服務的故障,耗盡整個撮合系統容器的執行緒資源,避免分散式環境大量級聯失敗。對透過第三方用戶端存取依賴服務出現失敗、拒絕、逾時或短路時執行回退邏輯。
採用Eureka作為服務註冊與發現中心,實現中間層服務,以達到負載平衡與中間層服務故障轉移的目的。
服務閘道Spring Cloud Gateway與 Zuul的選型,選擇了Zuul,因為名字較短。
引入SpringCloud Security安全認證模組用於建立安全的應用程式和服務,SpringCloud Security在Spring Boot和Spring Security OAuth2的基礎上,可以快速創建和實現常見的安全認證方式,如單點登錄,令牌中繼和令牌交換等。
引入Redis作為記憶體資料庫,兼做系統資料快取和記憶體運算。
使用MySQL作為關聯式資料庫,效能測試非常過關,對熟悉MYSQL的程式設計師非常友善。
訊息佇列中間件MQ採用了Kafka,具有超高效能體現。
以上是ADT幣上線了哪些交易所(比特幣怎麼交易)的詳細內容。更多資訊請關注PHP中文網其他相關文章!