XuJiacheng fe76884b27 feat: 新增 G4 热表独立双写能力
- 新增配置项:旧/新明细表写入开关、目标表名、`room_status` 独立开关
- 重构 `DatabaseManager`,抽象通用批量 COPY 写入内核,支持面向不同目标表的复用
- 新增双明细写入编排器,旧/新表各自独立执行、独立重试、独立 fallback
- 调整 `HeartbeatProcessor.processBatch()`,确保 `room_status` 始终独立执行
- 错误表 `heartbeat_events_errors` 仅记录新表写入失败,旧表失败不再写错误表
- 重新定义消费暂停策略,基于当前启用的关键 sink 判断,非全局一刀切
- 补充按 sink 维度的统计项与启动日志
- 新增相关测试用例,确保双写编排的正确性
2026-03-09 16:54:47 +08:00
2026-03-03 21:28:27 +08:00

Web_BLS_Heartbeat_Server

BLS心跳接收端用于接收并处理Kafka队列中的心跳数据经过解包处理后写入PostgreSQL数据库。

功能介绍

  • 从Kafka队列接收心跳数据
  • 解包和验证心跳数据格式
  • 批量处理心跳数据,提高处理效率
  • 将处理后的数据写入PostgreSQL数据库
  • 支持高并发和自动重连机制

技术栈

  • Node.js (JavaScript) - 运行环境
  • Vite - 构建工具
  • Kafka - 消息队列
  • PostgreSQL - 数据库

快速开始

安装依赖

npm install

配置

复制配置文件模板并根据环境需求修改:

cp src/config/config.example.js src/config/config.js

构建

npm run build

运行

# 启动后端Kafka consumer + DB + Redis
npm run start

# 注意npm run dev 是 Vite 开发服务器,不会启动 Kafka consumer
# npm run dev

项目结构

├── src/                  # 源代码目录
│   ├── config/           # 配置文件
│   ├── kafka/            # Kafka消息处理
│   ├── processor/        # 心跳数据处理
│   ├── db/               # 数据库操作
│   └── index.js          # 项目入口
├── openspec/             # OpenSpec规范文档
├── package.json          # 项目依赖
├── vite.config.js        # Vite配置
└── README.md             # 项目说明

开发命令

命令 描述
npm install 安装项目依赖
npm run build 构建项目
npm run dev 启动开发服务器
npm run test 运行测试
npm run lint 代码检查
Description
BLS心跳接收端
Readme 805 KiB
Languages
JavaScript 84.6%
PLpgSQL 10.9%
Batchfile 4.4%
Dockerfile 0.1%