Skip to content

部署文档

版本号修改修改时间备注
v1.0.0王小琱2024.12.20首版

1. 项目简介

exchange-risk-service-backend 是一个基于 Go 语言开发的微服务,主要用于交易所风控、KYC、合规等业务场景。系统集成了多种风控、KYC、反洗钱等模块,支持对接 MySQL 数据库,适用于金融、交易所等对合规风控有需求的业务系统。

2. 环境要求

  • Go 版本:1.21 及以上
  • Docker:20.10 及以上
  • 数据库:MySQL 8.x(或兼容版本)
  • Redis:可选(如有缓存需求)

3. 部署方式

3.1 本地部署

3.1.1 下载代码

bash
git clone https://gitlab.atom8.io/hkbitex/exchange-risk-service-backend.git
cd exchange-risk-service-backend

3.1.2 安装依赖

bash
# 安装 protoc 工具
make init

# 更新依赖
make tidy

3.1.3 编译代码

bash
make build

3.1.4 配置说明

环境变量类型是否必填说明
APP_LOG_LEVELstring可选,默认info日志级别(trace、debug、info、warn、error、fatal)
SERVER_HOSTstring必填服务监听地址(如 0.0.0.0:8080)
METRICS_SWITCHstring必填metrics 开关,on:启用,off:关闭
METRICS_HOSTstring必填metrics 服务监听地址(如 0.0.0.0:18080)
MYSQL_READstring必填MySQL 读库 DSN,例如:user:password@tcp(host:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local
MYSQL_WRITEstring必填MySQL 写库 DSN(同上)
RABBITMQ_URISstring必填RabbitMQ 连接字符串(如 amqp://user:password@host:5672/vhost)
CAMUNDA_HOSTstring必填Camunda 服务地址
GRPC_SERVER_ELLIPTIC_BRIDGEstring必填Elliptic Bridge 服务地址(如 localhost:50051)
GRPC_SERVER_IP_LOCATIONstring必填IP Location 服务地址(如 localhost:50052)
GRPC_SERVER_WORLD_CHECKstring必填World Check 服务地址(如 localhost:50053)
USER_API_KEYstring必填用户 API Key(如 1234567890)
GRPC_SERVER_USERstring必填User 服务地址(如 localhost:50054)
GRPC_SERVER_NOTABENE_BRIDGEstring必填Notabene Bridge 服务地址(如 localhost:50055)
RABBITMQ_PLATFORM_EXCHNAGEstring必填平台交换机地址(如 localhost:50056)
GRPC_SERVER_BANK_BRIDGEstring必填Bank Bridge 服务地址(如 localhost:50056)
REDIS_URIstring必填Redis 连接字符串(如 redis://localhost:6379)
REDIS_DBint必填Redis 数据库索引(如 0)
REDIS_PASSWORDstring必填Redis 密码(如 password)
GRPC_LEDGER_MANAGERstring必填Ledger Manager 服务地址(如 localhost:50057)
GRPC_SERVER_NOTIFYstring必填Notify 服务地址(如 localhost:50058)

3.1.5 启动服务

创建 Systemd 文件 /etc/systemd/system/risk-service.service:

bash
[Unit]
Description=exchange-risk-service-backend
After=network.target

[Service]
WorkingDirectory=/app/risk-service
Type=simple
User=root
ExecStart=/app/risk-service/risk-service
StandardOutput=append:/app/risk-service/logs/output.log
StandardError=append:/app/risk-service/logs/error.log
Restart=on-failure
EnvironmentFile=/app/risk-service/.env

[Install]
WantedBy=multi-user.target

重载并启动服务:

bash
# 创建必要的目录
mkdir -p /app/risk-service/logs

# 复制配置文件
cp .env.default /app/risk-service/.env
cp risk-service /app/risk-service/

# 启动服务
systemctl daemon-reload
systemctl start risk-service
systemctl enable risk-service

# 检查服务状态
systemctl status risk-service

3.2 Docker部署(推荐生产环境)

3.2.1 下载代码

bash
git clone https://gitlab.atom8.io/hkbitex/exchange-risk-service-backend.git
cd exchange-risk-service-backend

3.2.2 编译代码

bash
make docker

3.2.3 环境变量

在项目根目录创建 .env 文件(内容同上),或直接通过 Docker -e 方式传入。

3.2.4 启动服务

bash
docker run -d \
  --name exchange-risk-service-backend \
  --env-file .env \
  -p 8080:8080 \
  registry.example.com/exchange-risk-service-backend:latest

注意:task 服务启动需要添加命令行参数 -task,如: docker run -d --name exchange-risk-service-backend --env-file .env -p 8080:8080 registry.example.com/exchange-risk-service-backend:latest -task

4. 数据库配置

  • 服务初次部署需要创建试图,见 views/view_kyc.sql

5. 日志配置

5.1 日志位置

  • 默认日志输出:/app/risk-service/logs/
  • 日志文件:
    • output.log:标准输出日志
    • error.log:错误日志

5.2 日志级别

  • 可通过 .env 配置(如 info、debug、error等)
  • 建议生产环境使用 info 级别

6. 监控配置

7. 其他说明

🚀 构建现代化数字资产交易平台