以Spring Cloud为基础,从零开始搭建一个简易的7x24小时运行的证券交易所。
整个系统从逻辑上可以划分为如下模块:
- API模块(Trading API),交易员下单、撤单的API入口;
- 定序模块(Sequencer),用于对所有收到的订单进行定序;
- 交易引擎(Trading Engine),对定序后的订单进行撮合、清算;
- 行情模块(Quotation),将撮合输出的成交信息汇总,形成K线图;
- 推送模块(Push),将市场行情、交易结果、资产变化等信息以WebSocket等途径推送给用户;
- UI模块(UI),给交易员提供一个Web操作界面,并把交易员的操作转发给后端API。
交易引擎作为核心模块,内部划分为:
- 资产模块Asset
- 订单模块Order
- 撮合模块Match
- 清算模块Clearing
代码模块简要说明:
- common:公共代码;
- config:配置服务器;
- push:推送服务;
- quotation:行情服务;
- trading-api:交易API服务;
- trading-engine:交易引擎;
- trading-sequencer:定序服务;
- ui:用户Web界面。
- 终端进入build文件夹,运行
docker-compose up -d
启动mysql、Kafka、redis、zookeeper - 本地开发环境先启动config服务,再启动其他模块
- docker环境,在项目根目录打开终端运行
docker-compose up -d
启动服务