CoolFace
Apppublic

wuliangcheng86/fiance-data-center-server

sourceHugging Faceupdated 5mo agoView on Hugging Face
0likes
App README

数字货币行情数据中心

概述

数字货币行情数据中心是一个基于币安(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+

安装依赖

bash
pip install -r requirements.txt

配置说明

修改 config/config.yaml 配置文件:

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"

启动服务

bash
python src/main.py

API文档

REST API端点

健康检查
http
GET /health
交易所信息
http
GET /api/exchangeInfo
价格查询
http
GET /api/ticker/price?symbol=BTCUSDT
GET /api/ticker/price  # 所有交易对
24小时统计
http
GET /api/ticker/24hr?symbol=BTCUSDT
GET /api/ticker/24hr  # 所有交易对
订单簿
http
GET /api/depth?symbol=BTCUSDT&limit=5
成交记录
http
GET /api/trades?symbol=BTCUSDT&limit=100
K线数据
http
GET /api/klines?symbol=BTCUSDT&interval=1m&limit=100
平均价格
http
GET /api/avgPrice?symbol=BTCUSDT

WebSocket API

连接端点
ws://localhost:8080/ws?symbol=BTCUSDT&streams=trade,kline_1m,depth5
订阅格式
json
{
  "type": "subscribe",
  "params": {
    "streams": ["btcusdt@trade", "btcusdt@kline_1m"]
  }
}
取消订阅
json
{
  "type": "unsubscribe",
  "params": {
    "streams": ["btcusdt@trade"]
  }
}
数据流类型
数据流描述
<symbol>@trade逐笔成交
<symbol>@aggTrade聚合成交
<symbol>@kline_<interval>K线数据
<symbol>@depth<level>订单簿
<symbol>@bookTicker最优买卖盘
<symbol>@miniTickerMini Ticker
<symbol>@ticker24小时Ticker

部署

Docker部署

bash
docker-compose up -d

Kubernetes部署

参考 k8s/ 目录下的配置文件。

监控

Prometheus指标

GET /metrics

健康检查

http
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

注意事项

  1. 1.API限流:请遵守币安的API限流规则,避免IP被封禁
  2. 2.数据准确性:WebSocket数据仅供参考,请以REST API数据为准进行交易决策
  3. 3.安全建议:生产环境请配置API密钥认证和TLS加密

许可证

MIT License