Files
Web_BLS_Heartbeat_Server/.env.example
XuJiacheng 43fa7505e5 feat: 新增 G4 热表独立双写能力
- 新增配置项以支持旧/新明细表的独立写入开关及目标表名。
- 重构 DatabaseManager,抽象通用批量 COPY 写入内核,支持不同目标表的复用。
- 新增双明细写入编排器,支持旧/新表独立执行、重试及 fallback。
- 调整 HeartbeatProcessor.processBatch(),确保 room_status 独立执行。
- 错误表仅记录新表写入失败,旧表失败不再写入错误表。
- 重新定义消费暂停策略,基于当前启用的关键 sink 判断。
- 补充按 sink 维度的统计项与启动日志。

新增 G4 热表相关的数据库规范与处理逻辑,确保系统在双写模式下的稳定性与可扩展性。
2026-03-09 15:49:12 +08:00

97 lines
2.3 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# =========================
# 应用基础配置
# =========================
NODE_ENV=production
PORT=3000
# 日志级别debug | info | warn | error
LOG_LEVEL=info
LOG_FORMAT=json
# =========================
# Kafka 配置
# =========================
# 多个 broker 用英文逗号分隔
KAFKA_BROKERS=localhost:9092
KAFKA_CLIENT_ID=bls-heartbeat
KAFKA_GROUP_ID=bls-heartbeat-consumer
# 推荐使用 KAFKA_TOPICS多个 topic 用英文逗号分隔
KAFKA_TOPICS=blwlog4Nodejs-rcu-heartbeat-topic
# 兼容旧写法;如已使用 KAFKA_TOPICS可不填写
# KAFKA_TOPIC=blwlog4Nodejs-rcu-heartbeat-topic
# latest / earliest
KAFKA_FROM_OFFSET=latest
KAFKA_CONSUMER_INSTANCES=6
KAFKA_AUTO_COMMIT=true
KAFKA_AUTO_COMMIT_INTERVAL_MS=5000
KAFKA_RETRY_ATTEMPTS=0
KAFKA_RETRY_DELAY=1000
KAFKA_MAX_IN_FLIGHT_MESSAGES=200
KAFKA_FETCH_MAX_BYTES=10485760
KAFKA_FETCH_MIN_BYTES=1
KAFKA_FETCH_MAX_WAIT_MS=100
# SASL/SSL 按实际环境开启
KAFKA_SASL_ENABLED=false
KAFKA_SASL_MECHANISM=plain
KAFKA_SASL_USERNAME=
KAFKA_SASL_PASSWORD=
KAFKA_SSL_ENABLED=false
# =========================
# PostgreSQL 配置
# =========================
POSTGRES_HOST=127.0.0.1
POSTGRES_PORT=5432
POSTGRES_DATABASE=log_platform
POSTGRES_USER=log_admin
POSTGRES_PASSWORD=your_password
POSTGRES_IDLE_TIMEOUT_MS=30000
# 可选:兼容标准 PG 环境变量;留空则优先使用上面的 POSTGRES_*
# PGHOST=
# PGPORT=
# PGTARGETDB=
# PGUSER=
# PGPASSWORD=
# 数据库失败重试
DB_RETRY_ATTEMPTS=3
DB_RETRY_DELAY=1000
# 双写开关
# 旧明细表heartbeat.heartbeat_events
DB_LEGACY_HEARTBEAT_ENABLED=true
# 新热表heartbeat.heartbeat_events_g4_hot
DB_G4_HOT_HEARTBEAT_ENABLED=false
# room_status 写入开关
DB_ROOM_STATUS_ENABLED=true
# 如无特殊需要,保持默认表名即可
DB_LEGACY_TABLE=heartbeat.heartbeat_events
DB_G4_HOT_TABLE=heartbeat.heartbeat_events_g4_hot
# =========================
# Redis 配置
# =========================
REDIS_ENABLED=true
REDIS_HOST=10.8.8.109
REDIS_PORT=6379
REDIS_PASSWORD=
REDIS_DB=15
# 若提供 REDIS_URL则业务侧可优先使用统一连接串
REDIS_URL=
REDIS_CONNECT_TIMEOUT_MS=5000
REDIS_PROJECT_NAME=BLS主机心跳日志
REDIS_HEARTBEAT_INTERVAL_MS=3000
REDIS_API_BASE_URL=http://127.0.0.1:3000
# =========================
# 批处理配置
# =========================
PROCESSOR_BATCH_SIZE=100
PROCESSOR_BATCH_TIMEOUT=5000