feat: 实现Redis集成与Kafka消息处理优化

- 新增Redis集成模块,支持心跳写入与控制台日志队列
- 优化Kafka消费者实现,支持多实例与自动重连
- 改进消息处理器,支持批量处理与多层解码
- 更新数据库表结构,调整字段类型与约束
- 添加Redis与Kafka的配置项和环境变量支持
- 补充测试用例和文档说明
This commit is contained in:
2026-01-14 17:58:45 +08:00
parent eb94aaf92b
commit 910f1c353f
28 changed files with 1691 additions and 177 deletions

View File

@@ -1,9 +1,25 @@
# 数据处理器规范
## 需求
## Purpose
本规范定义心跳处理器对 Kafka 消息 value 的解码/解压(含两层以内组合)、字段校验、转换为分区表写入结构,以及批量写库与失败丢弃/记录策略。
## Requirements
### Requirement: 心跳数据解包
系统必须能够解包Kafka消息中的二进制心跳数据。
系统 MUST 能够解包 Kafka 消息中的心跳数据。
#### Scenario: 支持常见编码/压缩(两层以内)
- **WHEN** Kafka 消息 value 为下列任意形式时:
- UTF-8 JSON对象或数组
- base64(二进制)
- gzip / deflate(zlib) / deflate(raw) / brotli 压缩后的二进制
- **THEN** 系统应当按“最多两层”的策略尝试解码/解压
- **AND** 成功时应还原为 JSON 对象或数组
- **AND** 失败时应记录错误并丢弃该消息
#### Scenario: 支持包装结构
- **WHEN** 解包得到的 JSON 为包装结构(例如包含 `data`/`payload`/`body` 字段)
- **THEN** 系统应优先提取其中的对象作为心跳数据源
#### Scenario: 解包有效心跳数据
- **WHEN** 接收到有效格式的Kafka心跳消息时
@@ -16,7 +32,7 @@
- **AND** 记录错误日志
### Requirement: 心跳数据验证
系统必须能够验证解包后的心跳数据有效性。
系统 MUST 能够验证解包后的心跳数据有效性。
#### Scenario: 验证有效心跳数据
- **WHEN** 解包后的心跳数据格式正确且字段完整时
@@ -30,7 +46,7 @@
- **AND** 丢弃该数据
### Requirement: 心跳数据转换
系统必须能够将解包后的心跳数据转换为数据库存储格式。
系统 MUST 能够将解包后的心跳数据转换为数据库存储格式。
#### Scenario: 转换心跳数据格式
- **WHEN** 心跳数据验证通过时
@@ -38,9 +54,13 @@
- **AND** 添加必要的元数据
### Requirement: 批量处理支持
系统必须支持批量处理心跳数据,提高处理效率。
系统 MUST 支持批量处理心跳数据,提高处理效率。
#### Scenario: 批量处理心跳数据
- **WHEN** 接收到大量心跳消息时
- **THEN** 系统应该将数据分批处理
- **AND** 每批处理的数量可配置
#### Scenario: Kafka 单条消息携带批量心跳
- **WHEN** Kafka 消息 value 为 JSON 数组(批量心跳)
- **THEN** 系统应将数组内每条心跳作为独立项进入批处理队列