部署文档
| 版本号 | 修改 | 修改时间 | 备注 |
|---|---|---|---|
| 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-backend3.1.2 安装依赖
bash
# 安装 protoc 工具
make init
# 更新依赖
make tidy3.1.3 编译代码
bash
make build3.1.4 配置说明
| 环境变量 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
| APP_LOG_LEVEL | string | 可选,默认info | 日志级别(trace、debug、info、warn、error、fatal) |
| SERVER_HOST | string | 必填 | 服务监听地址(如 0.0.0.0:8080) |
| METRICS_SWITCH | string | 必填 | metrics 开关,on:启用,off:关闭 |
| METRICS_HOST | string | 必填 | metrics 服务监听地址(如 0.0.0.0:18080) |
| MYSQL_READ | string | 必填 | MySQL 读库 DSN,例如:user:password@tcp(host:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local |
| MYSQL_WRITE | string | 必填 | MySQL 写库 DSN(同上) |
| RABBITMQ_URIS | string | 必填 | RabbitMQ 连接字符串(如 amqp://user:password@host:5672/vhost) |
| CAMUNDA_HOST | string | 必填 | Camunda 服务地址 |
| GRPC_SERVER_ELLIPTIC_BRIDGE | string | 必填 | Elliptic Bridge 服务地址(如 localhost:50051) |
| GRPC_SERVER_IP_LOCATION | string | 必填 | IP Location 服务地址(如 localhost:50052) |
| GRPC_SERVER_WORLD_CHECK | string | 必填 | World Check 服务地址(如 localhost:50053) |
| USER_API_KEY | string | 必填 | 用户 API Key(如 1234567890) |
| GRPC_SERVER_USER | string | 必填 | User 服务地址(如 localhost:50054) |
| GRPC_SERVER_NOTABENE_BRIDGE | string | 必填 | Notabene Bridge 服务地址(如 localhost:50055) |
| RABBITMQ_PLATFORM_EXCHNAGE | string | 必填 | 平台交换机地址(如 localhost:50056) |
| GRPC_SERVER_BANK_BRIDGE | string | 必填 | Bank Bridge 服务地址(如 localhost:50056) |
| REDIS_URI | string | 必填 | Redis 连接字符串(如 redis://localhost:6379) |
| REDIS_DB | int | 必填 | Redis 数据库索引(如 0) |
| REDIS_PASSWORD | string | 必填 | Redis 密码(如 password) |
| GRPC_LEDGER_MANAGER | string | 必填 | Ledger Manager 服务地址(如 localhost:50057) |
| GRPC_SERVER_NOTIFY | string | 必填 | 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-service3.2 Docker部署(推荐生产环境)
3.2.1 下载代码
bash
git clone https://gitlab.atom8.io/hkbitex/exchange-risk-service-backend.git
cd exchange-risk-service-backend3.2.2 编译代码
bash
make docker3.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. 监控配置
Metrics 端点(Prometheus 可用): http://127.0.0.1:18080/metrics
建议接入 Grafana 进行可视化监控
7. 其他说明
- 如有问题,请联系负责人:王小琱(wang746277441@gmail.com)。
