之前的架构请看
这个架构融合了很多开源项目的精髓。目前,这套架构还在开发中。
- tomoon | 量化架构 单体结构 1.0.0 | 延续了该架构很多模块,毕竟是自己写的
- vn.py | 学习了该架构单个交易所的组织方式
- aioquant | 学习了该架构的异步编程、组织方式
- ant | 这个有点用,但是,没有很参考
2.0.0
的 Rhino
受影响最大的就是 aioquant
,看了 aioquant
的组织架构后,完全被惊呆,其中的异步编程和各个模块的简洁调用让我快速的吸收,然后重构了新架构量化。
之所以是伪微服务,是因为,我把 1.0.0
的共用代码抽成了一个个库,可以通过 pip
安装的那种。微服务讲究把各个模块部署到不同的服务器上,然后进行相互调用,但是,我这个架构还是将所有的模块放到了一台服务器上,主要是模块间的抽离。
虽然放到一个模块中,但是,独立的库也可以放置在不同的服务器上运行,然后调用,就看怎么用了。因为放置在同一台服务器上,所以,我称之为伪微服务。
ps: 2022-11-6
经过长时间的思考已经鸽项目,我已经有了成熟的架构设计。整体项目如下
- Rhino-Object
- 存放所有公共的变量、数据结构、枚举等
python
编写
- Rhino-Gateway
- 各种交易所的对接,包括
websocket
、restful
、中心化和去中心化 - 做了兼容,异步编程架构
python
编写
- 各种交易所的对接,包括
- Rhino-Collect
- 获取数据引擎,完美兼容
websocket
和restful
获取数据的方式 - 有心跳服务,进行数据确认,全部为异步编程架构
python
编写
- 获取数据引擎,完美兼容
- Rhino-Pipe
- 数据中间件传递
- 提供
redis
、rpc
等数据传输方式 python
- Rhino-logger
- 日志模块
python
- Rhino-Sign
- 数据处理模块
- 将数据进行归纳处理
python
编写
- Rhino-Strategy
- 策略模块
python
- Rhino-Analysis
- 分析模块
- 进行数据接收、分析、画K线、存储数据
java
编写
- Rhino-Script
- 独立脚本
python
编写
- Rhino-Show
- 前端展示,主要用于数据分析
- vue 编写
- klinecharts
目前各个模块都是独立的,互不牵扯,数据的传输通过 redis 的订阅模式进行数据传递。