wuliangcheng86/fiance-data-center-server
0
数字货币行情数据中心
概述
数字货币行情数据中心是一个基于币安(Binance)API构建的高性能行情数据服务,提供统一的数据访问接口,支持REST API和WebSocket实时推送。
核心功能
1. 多维度行情数据
- 实时价格:所有交易对的最新价格
- K线数据:支持多种时间周期(1分钟至1月)
- 订单簿:深度行情数据
- 24小时统计:价格变化、成交量等信息
- 逐笔成交:实时成交记录
2. 高性能WebSocket服务
- 实时数据推送
- 多流订阅管理
- 连接心跳检测
- 自动重连机制
3. 智能限流策略
- REST API:1000次/分钟
- WebSocket:4条/秒
- IP黑名单机制
- 分布式限流支持
4. 数据存储
- Redis缓存(实时数据)
- InfluxDB时序存储
- MySQL关系存储
快速开始
环境要求
- Python 3.10+
- Redis 6.0+
- InfluxDB 2.0+
- MySQL 8.0+
安装依赖
pip install -r requirements.txt配置说明
修改 config/config.yaml 配置文件:
server:
host: "0.0.0.0"
port: 8080
binance:
rest_api:
base_urls:
- "https://api.binance.com"
- "https://api1.binance.com"
- "https://api2.binance.com"
- "https://api3.binance.com"启动服务
python src/main.pyAPI文档
REST API端点
健康检查
GET /health交易所信息
GET /api/exchangeInfo价格查询
GET /api/ticker/price?symbol=BTCUSDT
GET /api/ticker/price # 所有交易对24小时统计
GET /api/ticker/24hr?symbol=BTCUSDT
GET /api/ticker/24hr # 所有交易对订单簿
GET /api/depth?symbol=BTCUSDT&limit=5成交记录
GET /api/trades?symbol=BTCUSDT&limit=100K线数据
GET /api/klines?symbol=BTCUSDT&interval=1m&limit=100平均价格
GET /api/avgPrice?symbol=BTCUSDTWebSocket API
连接端点
ws://localhost:8080/ws?symbol=BTCUSDT&streams=trade,kline_1m,depth5订阅格式
{
"type": "subscribe",
"params": {
"streams": ["btcusdt@trade", "btcusdt@kline_1m"]
}
}取消订阅
{
"type": "unsubscribe",
"params": {
"streams": ["btcusdt@trade"]
}
}数据流类型
部署
Docker部署
docker-compose up -dKubernetes部署
参考 k8s/ 目录下的配置文件。
监控
Prometheus指标
GET /metrics健康检查
GET /health性能指标
- REST API延迟:< 100ms
- WebSocket推送延迟:< 50ms
- 最大连接数:10,000
- 支持交易对数量:1,000+
目录结构
crypto_market_data_center/
├── config/ # 配置文件
│ └── config.yaml
├── src/
│ ├── api/ # API客户端
│ │ ├── binance_client.py
│ │ └── rate_limiter.py
│ ├── data/ # 数据处理
│ │ ├── models.py
│ │ ├── processor.py
│ │ └── storage.py
│ ├── server/ # Web服务
│ │ ├── api_server.py
│ │ └── websocket_server.py
│ ├── services/ # 业务服务
│ │ └── market_data_service.py
│ └── utils/ # 工具类
│ ├── config.py
│ └── logger.py
├── tests/ # 测试
├── scripts/ # 脚本
├── Dockerfile
├── docker-compose.yml
└── requirements.txt注意事项
- API限流:请遵守币安的API限流规则,避免IP被封禁
- 数据准确性:WebSocket数据仅供参考,请以REST API数据为准进行交易决策
- 安全建议:生产环境请配置API密钥认证和TLS加密
许可证
MIT License
