多语言Java交易所源码 | 支持币币/永续合约/期权交易 | 海外运营
核心特点:
基于Spring Cloud Alibaba的微服务架构
分库分表+读写分离设计
多级缓存机制
多语言国际化方案
数据库设计:
交易核心库(MySQL Cluster)
表结构:
sql
— 币币交易订单表(分表键:user_id)
CREATE TABLE spot_order (
order_id VARCHAR(32) PRIMARY KEY,
user_id BIGINT,
pair VARCHAR(20),
direction ENUM(‘BUY’,’SELL’),
price DECIMAL(36,18),
amount DECIMAL(36,18),
status ENUM(‘PENDING’,’FILLED’,’CANCELED’),
created_at TIMESTAMP
) ENGINE=InnoDB PARTITION BY HASH(user_id) PARTITIONS 16;
— 永续合约仓位表(分库键:symbol)
CREATE TABLE perpetual_position (
position_id VARCHAR(32),
symbol VARCHAR(10),
leverage INT,
margin DECIMAL(36,18),
mark_price DECIMAL(36,18),
INDEX idx_symbol_markprice (symbol, mark_price)
) ENGINE=InnoDB;
使用ShardingSphere实现分库分表
Binlog同步到Elasticsearch实现复杂查询
账户库(PostgreSQL)
采用ACID严格模式
包含用户资产表、冻结资产表、资金流水表
使用JSONB字段存储多币种资产:
sql
CREATE TABLE user_asset (
user_id BIGINT PRIMARY KEY,
balances JSONB NOT NULL, — {‘BTC’: {‘available’:100, ‘frozen’:0},…}
version BIGINT — 乐观锁控制
);
缓存层(Redis Cluster)
订单薄数据使用ZSET结构存储
行情数据使用Hash结构存储
分布式锁控制资产操作
技术栈:
服务端:Spring Boot + Dubbo + Sentinel + RocketMQ
手机端:Vue3 + Vite + Capacitor
行情推送:WebSocket + Kafka
多语言:国际化资源中心服务,数据库存储i18n键值对