DataCenter使用指南

本文带您了解DataCenter的使用方法,以及如何开发一个自定义的DataCenter行情采集插件。

Previous page Next page

环境准备

DataCenter可以运行在任何Linux发行版中,它通过Docker进行部署。我们首先需要安装并启动Docker,这里我们以Ubuntu为例:

$ sudo apt-get install docker.io
$ sudo systemctl start docker

我们进入DataCenter下载页面,下载DataCenter最新的镜像并载入。

$ wget "http://images.thunder-trader.com/1.81/datacenter.1.81.docker.tar.gz"
$ sudo docker load < datacenter.1.81.docker.tar.gz

通过docker images命令查看您当前所有的镜像,列表中存在thundertrader/datacenter并且为预期的版本,则代表镜像安装成功

$ sudo docker images
REPOSITORY                 TAG       IMAGE ID       CREATED        SIZE
thundertrader/datacenter   1.81      159d9c446ae2   24 hours ago   470MB

启动DataCenter

通过下面命令,可以启动DataCenter进程容器。

$ mkdir ${your tick storage path}
$ sudo docker run --privileged -d -p ${your web UI port}:80 -v ${your tick storage path}:/thunder-ticks thundertrader/datacenter:1.81

上述docker命令的参数:

  • --privileged:开启管理员模式
  • -d:容器在后台执行
  • -p:打开控制面板的对应的端口,这样我们可以通过浏览器对DataCenter进行配置,这里${your web UI port}是任何一个可用的端口,例如8080
  • -v:映射我们的磁盘空间到容器内部,用来存放录制的行情数据。${your tick storage path}是宿主机中一个磁盘路径地址,一般来说指向一个较大的存储空间,比如/home/my_ticks

例如:

$ mkdir /home/my_ticks
$ sudo docker run --privileged -d -p 8080:80 -v /home/my_ticks:/thunder-ticks thundertrader/datacenter:1.81
DataCenter启动参数--privileged虽然是可选的,但是它对我们为您提供充分的售后服务和技术支持非常重要,建议您打开该参数从而使DataCenter获取管理员权限。DataCenter需要对/proc/sys/kernel/core_pattern文件进行必要的修正,从而当DataCenter发生故障时,coredump文件中的栈帧诊断信息可以被正确保存并上报给我们。当然如果您对此比较熟悉,也可以打开/thunder-crash目录进行自助故障排查。

您可以通过docker ps命名查看DataCenter是否启动成功

$ sudo docker ps
CONTAINER ID   IMAGE                           COMMAND                   CREATED        STATUS        PORTS                                       NAMES
dd14621381a4   thundertrader/datacenter:1.81   "/bin/sh /thunder-ru…"   xxxxxxxxxxxxx  xxxxxxxxxxx   81/tcp, 0.0.0.0:90->80/tcp, :::90->80/tcp   affectionate_maxwell
上述命中中的sudo是指使用管理员权限执行命令,这也是执行docker命令的必要条件。如果您已经在管理员模式下,可以在命令中省略sudo关键字

对DataCenter进行配置

在浏览器中打开控制面板的地址:http://${your ip address}:${your web UI port},比如在上述案例中,该地址为http://127.0.0.1:8080/

配置License

在License选项卡中,将我们的License复制到编辑框,并点击下方SUBMIT按钮,即可完成License配置。

../datacenter-license.png

如果配置成功,可以在界面中看到您的LicenseKey以及相关License状态。 如果您在License设置过程中遇到任何问题,可以通过邮件support@thunder-trader.com,或者您淘宝店铺的License订单客服联系我们,我们将在第一时间为您解决问题。

添加Producer

Producer是对行情数据进行录制的组件,在您每次启动DataCenter之后,都需要添加Producer相关的配置。

../datacenter-deployproducer.png

首先我们选择一个Producer插件,这里我们以libsfit_ctp_plugin_imp.so为例。该插件对接了中国大陆上期技术(SFIT)公司的期货/期权SDK,在添加时我们需要提供如下信息:

  • appid/auth_code:穿透式SDK的AppID和授权码。一般需要您联系您账户对应的经纪公司获取
  • broker_id/server_address_md/server_address_td:BrokerID以及行情服务器/交易服务器对应的地址。同样,这些也需要您联系您账户对应的经纪公司获取
  • username/password:您的交易账号和密码

填入上述信息后,点击页面下方SUBMIT按钮进行添加,如果您收到了添加成功的提示,代表改Producer已经生效。

完成Producer添加后,我们可以在Producer/View Producers选项卡下看到当前我们的所有Producer。您可以点击OPERATOR列的图标,对已有的Producer进行删除。

值的注意的是,您可以在CONFIGURATION列中点击Download configuration链接下载当前Producer的配置,得到一个内容为JSON格式的配置文件。当您下次需要重新部署该Producer时,可直接通过Command选项卡中的拖拽功能,使用配置文件完成部署。

../datacenter-command.png

配置Consumer

Consumer的主要功能是将Producer采集的行情数据,推送到不同的下游。目前我们支持两种不同类型的Consumer:

  • binary_file_consumer:将数据保存为二进制格式的文件
  • json_file_consumer:将数据保存为Json格式的文件

../datacenter-consumers.png

您可以通过每个Consumer卡片下方的开关来控制是否启用该Consumer。

这里我们建议仅启动binary_file_consumer,因为json_file_consumer生成的文件体积较大,会占用您大量磁盘空间。 json_file_consumer仅适用于您在DevelStudio环境之外对数据进行访问的场景。

查看录制的数据

您可以直接在您配置的tick目录中查看录制的数据,比如在刚才的例子中:

$ cd /home/my-ticks
$ ls

也可以通过DataCenter的控制面板查看:

../datacenter-workspace.png 图中以/thunder-ticks结尾的路径可以展示收集到的tick文件,例如http://127.0.0.1:8080/thunder-ticks

[{
		"name": "binary",
		"type": "directory",
		"mtime": "Wed, 04 Dec 2024 00:48:35 GMT"
	},
	{
		"name": "json",
		"type": "directory",
		"mtime": "Wed, 04 Dec 2024 00:48:50 GMT"
	}
]

进一步打开http://127.0.0.1:8080/thunder-ticks/binary或者http://127.0.0.1:8080/thunder-ticks/json目录可以看到天级别文件夹

[{
		"name": "20241125",
		"type": "directory",
		"mtime": "Mon, 25 Nov 2024 15:48:42 GMT"
	},
	{
		"name": "20241126",
		"type": "directory",
		"mtime": "Tue, 26 Nov 2024 12:48:53 GMT"
	}
]

Metrics选项卡中,可以看到每分钟DataCenter收集到的Tick数量的监控,同样可以辅助您判断系统工作是否符合预期。 ../datacenter-metrics.png

开发一个新的行情录制插件