日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

前后对接数字几_开源数字货币交易所开发学习笔记(1)——系统架构

發布時間:2023/12/1 windows 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 前后对接数字几_开源数字货币交易所开发学习笔记(1)——系统架构 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

部門領導讓我研究數字貨幣交易所的開發技術,今天好不容易把碼云(Gitee)上開源數字貨幣交易所CoinExchange的代碼編譯成功并搭建出來了,在排查問題的過程中,不斷的查看代碼以及使用到的技術,因此對系統的整個架構有了一定的初步認識,這里做個筆記記錄一下。

系統整體架構

這是開源項目CoinExchange上作者放的一張邏輯架構圖,猛一看其實沒什么感覺,但是當我通過代碼層級的閱讀,以及各種軟件的安裝,對這個圖的認識更加深刻了。

數據存儲

首先,我們從數據存儲這一塊看,該項目使用了三種數據存儲方式,另外還有一個數據存儲是內存,在撮合交易引擎中,直接通過Java的并發鏈表存儲的。

MySQL主要存儲業務數據,一共有65張表。

MongoDB主要存儲委托成交明細和K線數據(成交量、成交價),如下所示是K線數據,按照一定的時間周期統計所得。

消息通訊

因為項目是基于SpringCloud微服務架構開發,所以這套交易系統有很多的服務,這些服務之間的通信本可以通過Euruka服務注冊中心調用相應的服務,但是這套系統使用了Kafka,Kafka是一種高吞吐量的分布式發布訂閱消息系統,它可以處理消費者在網站中的所有動作流數據。大概是因為交易系統中對委托的處理需要非常迅速的處理能力和穩定性,所以這個項目使用了Kafka。

通過代碼層面,可以看到,用戶通過Exchange-api服務下單以后,它會將委托訂單保存到數據庫,同時會把委托訂單發送到Kafka,通過Kafka傳送給消費者Exchange(撮合引擎),當Exchange(撮合引擎)完成撮合以后,它會將委托成交明細發送給Kafka,接著由消費者Market(行情引擎)完成數據的存儲(持久化)。

這樣的設計可以讓Exchange(撮合引擎)只需要專心處理撮合就可以,也能夠充分發揮它的性能。

前后端分離

整套系統的前端與后端完全分離開,這是比較主流的開發方式,可以讓后端開發人員與前端開發人員各自專注于自己的業務實現。目前可以看到前端主要有四個:用戶PC端、用戶Android端、用戶IOS端、管理員PC端。它們都是通過Api與服務對接,傳輸數據是通過Json。

作為飽受上面代碼的受害者,前后端分離的設計可以說是解放了我們這些程序員。

區塊鏈錢包接口

項目中對每個幣種的RPC接口做了一層抽象,作為抽象層的wallet項目,屏蔽了不同幣種的對接問題,區塊鏈錢包節點的RPC調用方式千奇百怪,項目中通過wallet把生成地址、掃塊、充值監控、余額歸集等操作抽象出來,當我們想接入新的幣種的時候,只需要對Wallet-RPC-XXX項目進行復制粘貼就可以了。

前端技術實現

前端作者也用了比較流行的vue框架,對前端項目實現了很好的MVC解耦,開發人員不用頻繁的操作html元素,只需要專注于對數據的處理就可以了,讓前端的開發可以變得很優雅。比如下面,我截取了一段代碼:

交易機器人

從作者的架構圖可以看出來,交易機器人通過同步獲取到了各大交易所的交易數據,進而在自身交易所種繪制相應的K線,在我跟作者的溝通過程中,我了解到了機器人的大概設計原理,尤其是其中有很多參數的設計,非常關鍵,可以讓盤面表現出跟大型交易所一樣的行情展示效果。

總結

通過這幾天的編譯、調試,對整個交易所系統架構有了一定的理解,但是理解的肯定還不夠深刻,后面繼續學習&分享。

總結

以上是生活随笔為你收集整理的前后对接数字几_开源数字货币交易所开发学习笔记(1)——系统架构的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。