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" # 加密算法