##引用##
viabtc_exchange_server,是交易所源代码。我们现在就编译一下这款产品。
sudo apt install -y libev-dev libjansson-dev libmpdec-dev libmysqlclient-dev libcurl4-gnutls-dev libldap2-dev libgss-dev librtmp-dev libsasl2-dev
# librdkafka: 0.11.3+; DO NOT INSTALL BY APT: version too old (0.8.x);
# if you do, remove them by: sudo apt remove librdkafka1 librdkafka-dev
wget https://github.com/edenhill/librdkafka/archive/v0.11.3.tar.gz -O librdkafka-0.11.3.tar.gz
tar zxf librdkafka-0.11.3.tar.gz
cd librdkafka-0.11.3
./configure
make
sudo make install
COMPILATION
##引用##
git clone https://github.com/viabtc/viabtc_exchange_server.git
cd viabtc_exchange_server
make -C depends/hiredis
make -C network
//编译之前,需要执行以下 否则报错
sudo apt install libssl-dev
vi utils/makefile #modify INCS
# INCS = -I ../network -I ../depends
make -C utils
vi accesshttp/makefile #modify INCS & LIBS
# INCS = -I ../network -I ../utils -I ../depends
# LIBS = -L ../utils -lutils -L ../network -lnetwork -L ../depends/hiredis -Wl,-Bstatic -lev -ljansson -lmpdec -lrdkafka -lz -lssl -lcrypto -lhiredis -lcurl -Wl,-Bdynamic -lm -lpthread -ldl -lssl -lldap -llber -lgss -lgnutls -lidn -lnettle -lrtmp -lsasl2 -lmysqlclient
make -C accesshttp
vi accessws/makefile
{modify INCS and LIBS like accesshttp/makefile}
make -C accessws
vi alertcenter/makefile
{modify INCS and LIBS like accesshttp/makefile}
make -C alertcenter
vi marketprice/makefile
{modify INCS and LIBS like accesshttp/makefile}
make -C marketprice
vi matchengine/makefile
{modify INCS and LIBS like accesshttp/makefile}
make -C matchengine
vi readhistory/makefile
{modify INCS and LIBS like accesshttp/makefile}
make -C readhistory
Mysql配置
创建数据库
sql/中的3个文件请依次执行, init_trade_history.sh 里需要修改相应的数据库配置
create_trade_history.sql
create_trade_log.sql
init_trade_history.sh
Tips: 可以在mysql客户端执行sql文件, 也可以使用mysql命令,
mysql -h localhost -u root -p xxx < create_trade_history.sql
修改数据库配置
修改 matchengine/config.json中的 db_log, db_history数据库配置
修改 db_history/config.json中的db_history数据库配置
启动
- 安装 Redis
sudo apt-get instal redis-*
因为我们需要启动sentinel机制,所以必须安装是redis-*
启动它(必须要使用sentinel):
cd redis目录
redis-server ./redis.conf &
redis-sentinel ./sentinel.conf &
sentinel配置办法
我们配置三个sentinel,分别是26381,26382,26383
并分别设定
建立sentinel目录:
mkdir /usr/local/redis-ms
cd /usr/local/redis-ms/
mkdir 6381
mkdir 6382
mkdir 6382
复制sentinel.conf到三台目录
cp /etc/redis/sentinel.conf ./26381/
cp /etc/redis/sentinel.conf ./26382/
cp /etc/redis/sentinel.conf ./26383/
分别修改三个文件夹的配置文件
26381
bind 0.0.0.0
port 26381
dir "/usr/local/redis-ms/26381"
sentinel monitor mymaster 127.0.0.1 6379 2
26382
bind 0.0.0.0
port 26382
dir "/usr/local/redis-ms/26382"
sentinel monitor mymaster 127.0.0.1 6379 2
26383
bind 0.0.0.0
port 26383
dir "/usr/local/redis-ms/26383"
sentinel monitor mymaster 127.0.0.1 6379 2
分别启动三个哨兵机制
redis-server ./redis.conf &
redis-sentinel /usr/local/redis-ms/26381/sentinel.conf &
redis-sentinel /usr/local/redis-ms/26382/sentinel.conf &
redis-sentinel /usr/local/redis-ms/26383/sentinel.conf &
恭喜你,配置成功了。
创建日志文件夹
mkdir -p /var/log/trade/
启动
cd matchengine
./restart.sh
cd ../alertcenter
./restart.sh
cd ../readhistory
./restart.sh
cd ../accesshttp
./restart.sh
cd ../accessws
./restart.sh
cd ../marketprice
./restart.sh
测试
curl http://localhost:8080 -d '{"method": "market.list", "params": [], "id": 1516681174}'
kafka安装与运行
kafka还没运行呢! 但暂时不影响步骤5的接口测试. 接下来要安装kafka和运行它.
大家可以搜索下, 很多资料!!
https://blog.csdn.net/sinat_30026065/article/details/82148587
2018年5月3日整理于深圳