Skip to content

Homalos系统数据中心配置说明

字数
1341 字
阅读时间
6 分钟

数据中心不依赖 Homalos 的启动入口而可以单独启动,它有单独的配置文件位于系统根目录下 src\config\data_center_config.yaml 中,具体参数说明如下:

yaml
data_center:
  # 基本配置
  name: "Homalos数据中心"                       # 数据中心名称
  version: "0.0.1"                             # 数据中心版本号
  description: "7x24小时运行的期货行情数据中心"  # 数据中心描述
  mode: "production"                           # 运行模式:production, development, test
  
  # 数据中心数据库配置
  database:
    # 表结构策略
    table_strategy: "per_contract"  # per_contract: 每个合约独立表, unified: 统一表
    
    # SQLite配置 - 分库存储
    sqlite:
      # Tick数据库
      tick_db:
        path: "data/tick_db"  # 数据存储路径
        wal_mode: true        # 启用WAL模式,提高并发写入性能
        cache_size: 15000     # 缓存大小,单位KB
        timeout: 30           # 超时时间,单位秒
      
      # Bar数据库
      bar_db:
        path: "data/bar_db"  # 数据存储路径
        wal_mode: true       # 启用WAL模式,提高并发写入性能
        cache_size: 10000    # 缓存大小,单位KB
        timeout: 30          # 超时时间,单位秒
        
  # Parquet配置
  parquet:
    base_path: "data"      # 数据存储基础路径
    compression: "snappy"  # 压缩算法:snappy, gzip, gzip, lz4
    partition_by: "date"   # 分区字段:date, symbol, none
      
  # 批量写入配置
  batch_write:
    tick:
      batch_size: 1000    # 每批次写入数量
      flush_interval: 5   # 刷新间隔,单位秒
      max_memory_mb: 100  # 最大内存使用量,单位MB
      
    bar:
      batch_size: 500     # 每批次写入数量
      flush_interval: 10  # 刷新间隔,单位秒
      max_memory_mb: 50   # 最大内存使用量,单位MB
      
  # K线合成配置
  bar_generation:
    # 生成K线的时间间隔
    intervals: ["1m", "5m", "15m", "30m", "1h", "4h", "1d"]  
    enable_realtime: true    # 实时生成K线
    enable_historical: true  # 历史数据生成K线
    
  # 行情订阅配置
  market_subscription:
    # 自动订阅全市场
    auto_subscribe_all: true      # 自动订阅所有合约
    # 订阅数量限制(避免性能问题)
    max_subscriptions: 0          # 最大订阅合约数量,0表示无限制
    
    # 订阅重试配置
    retry:
      max_attempts: 5    # 最大重试次数
      initial_delay: 1   # 初始延迟,单位秒
      max_delay: 60      # 最大延迟,单位秒
      backoff_factor: 2  # 延迟增长因子
      
    # 订阅超时配置
    timeout:
      subscription: 30   # 订阅超时,单位秒
      heartbeat: 60      # 心跳超时,单位秒
      
  # 性能配置
  performance:
    # 内存缓存
    cache:
      tick_cache_size: 10000  # 缓存大小,单位条数
      bar_cache_size: 5000    # 缓存大小,单位条数
      
    # 异步处理
    async:
      max_workers: 4     # 最大工作线程数
      queue_size: 10000  # 队列大小,单位条数
      
    # 监控配置
    monitoring:
      enable_stats: true   # 启用统计信息
      stats_interval: 60   # 统计间隔,单位秒
      enable_alerts: true  # 启用告警
      
  # 数据保留策略
  retention:
    tick_data:
      days: 30           # 内存缓存保留天数
      archive_days: 365  # 归档保留天数
      
    bar_data:
      days: 90            # 内存缓存保留天数
      archive_days: 1095  # 归档保留天数(3年)
      
  # 数据质量检查
  data_quality:
    enable_validation: true  # 启用数据验证
    
    # 异常数据检测
    anomaly_detection:
      price_change_threshold: 0.1  # 10%价格变动阈值
      volume_spike_threshold: 5.0  # 5倍成交量异常阈值
      
  # 容错配置
  fault_tolerance:
    # 自动恢复
    auto_recovery: true  # 自动恢复功能
    
    # 健康检查
    health_check:
      interval: 30  # 健康检查间隔,单位秒
      timeout: 10   # 超时时间,单位秒
      
    # 备份配置
    backup:
      enable: true     # 启用备份
      interval: 3600   # 备份间隔,单位秒
      keep_backups: 24 # 保留备份天数
      
  # 网络配置
  network:
    # 事件总线配置
    event_bus:
      max_queue_size: 50000  # 最大队列大小
      batch_size: 100        # 批量大小
      
    # 连接配置
    connection:
      heartbeat_interval: 30      # 心跳间隔,单位秒
      reconnect_delay: 5          # 重连延迟,单位秒
      max_reconnect_attempts: 10  # 最大重连尝试次数
      
  # 数据中心日志配置
  log:
    level: "INFO"  # 日志级别
    # 包含网关名称的日志格式
    has_gateway_format: "<green>{time:YYYY-MM-DD HH:mm:ss.SSS}</green> | <level>{level}</level> | 
    <magenta>{extra[gateway_name]}</magenta> | <cyan>{extra[module_name]}</cyan> | 
    <cyan>{function}:{line}</cyan> | <level>{message}</level>\n"
    # 不包含网关名称的日志格式(用于内部日志)
    no_gateway_format: "<green>{time:YYYY-MM-DD HH:mm:ss.SSS}</green> | <level>{level}</level> | 
    <cyan>{extra[module_name]}</cyan> | <cyan>{function}:{line}</cyan> | <level>{message}</level>\n"

    console:
      enabled: true  # 控制台日志记录

    file:
      enabled: false                      # 文件日志记录
      name_format: "{time:YYYYMMDD}.log"  # 日志文件名格式
      rotation: "100 MB"                  # 当文件超过 100MB 时进行轮转
      retention: "30 days"                # 保留日志的天数
      compression: "zip"                  # 日志压缩格式

    # 性能日志
    performance_log:
      enable: true   # 启用性能日志
      interval: 300  # 性能日志记录间隔,单位秒

# 市场配置
market:
  # 交易时间配置
  trading_hours:
    day_session:         # 日盘
      start: "09:00:00"  # 开始时间
      end: "15:00:00"    # 结束时间
      
    night_session:       # 夜盘
      start: "21:00:00"  # 开始时间
      end: "23:00:00"    # 结束时间
      
  # 节假日配置
  holidays:
    file_path: "config/holidays.json"  # 节假日文件路径
    
# 服务发现配置
service_discovery:
  enable: true  # 启用服务发现
  
  # 服务注册
  registration:
    service_name: "data_center"          # 服务名称
    service_id: "data_center_001"        # 服务ID
    tags: ["data", "market", "storage"]  # 服务标签
    
  # 健康检查
  health_check:
    endpoint: "/health"  # 健康检查端点
    interval: 30         # 间隔时间,单位秒
    timeout: 10          # 超时时间,单位秒
    
# 安全配置
security:
  # API访问控制
  api_access:
    enable_auth: false    # 启用API访问认证,内部服务,暂不启用认证
    rate_limit: 1000      # 每分钟请求限制
    
  # 数据加密
  encryption:
    enable: false         # 启用数据加密,内部数据,暂不加密
    algorithm: "AES-256"  # 加密算法