fe76884b27bcc2ae3101c1059a802fb32e87f684
- 新增配置项:旧/新明细表写入开关、目标表名、`room_status` 独立开关 - 重构 `DatabaseManager`,抽象通用批量 COPY 写入内核,支持面向不同目标表的复用 - 新增双明细写入编排器,旧/新表各自独立执行、独立重试、独立 fallback - 调整 `HeartbeatProcessor.processBatch()`,确保 `room_status` 始终独立执行 - 错误表 `heartbeat_events_errors` 仅记录新表写入失败,旧表失败不再写错误表 - 重新定义消费暂停策略,基于当前启用的关键 sink 判断,非全局一刀切 - 补充按 sink 维度的统计项与启动日志 - 新增相关测试用例,确保双写编排的正确性
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
Languages
JavaScript
84.6%
PLpgSQL
10.9%
Batchfile
4.4%
Dockerfile
0.1%