2026-01-23 17:15:16 +08:00
|
|
|
# Service Name: g3fo-exchange-fix-engine-service
|
2026-01-16 17:44:35 +08:00
|
|
|
|
|
|
|
|
## 1. Overview
|
2026-01-23 17:15:16 +08:00
|
|
|
g3fo-exchange-fix-engine-service 是 g3fo 系统的 FIX 协议接入引擎。它负责与外部交易所或交易对手建立 FIX 连接,进行消息的编码、解码、序列号维护以及消息的持久化存储。
|
2026-01-16 17:44:35 +08:00
|
|
|
|
|
|
|
|
## 2. Key Responsibilities
|
2026-01-23 17:15:16 +08:00
|
|
|
- **会话管理**: 维护与外部实体的 FIX 会话,处理 Logon, Logout, Heartbeat, ResendRequest 等协议级消息。
|
|
|
|
|
- **消息路由**: 将接收到的 FIX 消息转换为内部业务格式并转发给下游服务,同时将下游服务的指令转换为 FIX 消息发送给外部。
|
|
|
|
|
- **消息持久化**: 记录所有发送和接收的 FIX 消息,确保在异常重启后能够恢复会话状态。
|
|
|
|
|
- **高可用 (HA)**: 支持基于 Redis 选举和 MySQL 共享存储的多实例部署。
|
2026-01-16 17:44:35 +08:00
|
|
|
|
|
|
|
|
## 3. Key Data Entities
|
2026-01-23 17:15:16 +08:00
|
|
|
- **FIX 消息存储**: 存储在 MySQL 中的 `messages` 表(基于 JdbcStore)。
|
|
|
|
|
- **FIX 会话状态**: 存储在 MySQL 中的 `sessions` 表。
|
2026-01-16 17:44:35 +08:00
|
|
|
|
|
|
|
|
## 4. Dependencies
|
2026-01-23 17:15:16 +08:00
|
|
|
- **Upstream**: `g3fo-trade-service` (发送交易指令)
|
|
|
|
|
- **Downstream**: 外部交易所 FIX Gateway
|
|
|
|
|
- **Middleware**:
|
|
|
|
|
- **MySQL**: 用于消息持久化。
|
|
|
|
|
- **Redis**: 用于分布式锁选举。
|
|
|
|
|
- **RocketMQ**: 用于与其他微服务通信。
|
2026-01-16 17:44:35 +08:00
|
|
|
|
|
|
|
|
## 5. Critical Configurations
|
2026-01-23 17:15:16 +08:00
|
|
|
- **QuickFIX/J 配置**: `quick-fix-client.yml` 中定义的会话参数、存储类型、选举参数等。
|
|
|
|
|
- **Nacos**: 动态配置中心,存储服务运行参数。
|
2026-01-16 17:44:35 +08:00
|
|
|
|
|
|
|
|
## 6. Common Operations / Troubleshooting
|
2026-01-23 17:15:16 +08:00
|
|
|
- **高可用架构说明**: 详细的 HA 方案请参考 [FIX Engine 高可用 (HA) 架构方案说明文档](./fix-engine/ha-architecture.md)。
|
|
|
|
|
- **日志监控**: 重点关注 `LeaderElectionService` 的选举日志和 `quickfix.JdbcStore` 的数据库操作日志。
|
|
|
|
|
- **会话重置**: 手动重置序列号通常需要清理数据库中的 `sessions` 表对应记录并重启服务。
|