feat: 添加 Kafka 消费者和消息处理功能

- 新增 Kafka 消费者实现,支持消息处理和错误处理。
- 实现 OffsetTracker 类,用于跟踪消息偏移量。
- 新增消息解析和数据库插入逻辑,支持从 Kafka 消息构建数据库行。
- 实现 UDP 数据包解析功能,支持不同类型的 UDP 消息。
- 新增 Redis 错误队列处理,支持错误重试机制。
- 实现 Redis 客户端和集成类,支持日志记录和心跳机制。
- 添加 Zod 验证模式,确保 Kafka 消息有效性。
- 新增日志记录和指标收集工具,支持系统监控。
- 添加 UUID 生成工具,支持唯一标识符生成。
- 编写处理器逻辑的单元测试,确保功能正确性。
- 配置 Vite 构建工具,支持 Node.js 环境下的构建。
This commit is contained in:
2026-03-14 17:33:19 +08:00
parent d62f83b4a4
commit 677dda80b9
101 changed files with 14904 additions and 0 deletions

View File

@@ -0,0 +1,13 @@
{"level":"info","message":"Starting register consumer","timestamp":1773480367035,"context":{"env":"development","kafka":{"brokers":["kafka.blv-oa.com:9092"],"topic":"blwlog4Nodejs-rcu-register-topic","groupId":"bls-register-consumer-probe-1773480366464"},"db":{"host":"10.8.8.80","port":5434,"database":"log_platform","schema":"rcu_info","table":"rcu_info_events_g5","roomStatusSchema":"room_status","roomStatusTable":"room_status_moment_g5"},"flushIntervalMs":3000}}
{"level":"info","message":"Kafka Consumer rebalancing","timestamp":1773480367119,"context":{"groupId":"bls-register-consumer-probe-1773480366464","clientId":"bls-register-producer"}}
{"level":"info","message":"Kafka Consumer connected","timestamp":1773480367237,"context":{"groupId":"bls-register-consumer-probe-1773480366464","clientId":"bls-register-producer"}}
{"level":"info","message":"Kafka Consumer rebalanced","timestamp":1773480367237,"context":{"clientId":"bls-register-producer","groupId":"bls-register-consumer-probe-1773480366464"}}
{"level":"info","message":"Run counters","timestamp":1773480377038,"context":{"kafkaPulled":23,"dbInserted":23,"parseError":0,"dbFailed":0}}
{"level":"info","message":"Run counters","timestamp":1773480387038,"context":{"kafkaPulled":37,"dbInserted":31,"parseError":0,"dbFailed":0}}
[probe] published topic=blwlog4Nodejs-rcu-register-topic ts_ms=1773480366464 hotel_id=1172 room_id=515
[probe-db] event_rows=1
[probe-db] event.ts_ms=1773480366464 room_id=515 app_version=v1.2
[probe-db] event.udp_raw=YWJjZGVm
[probe-db] room_status_rows=1
[probe-db] room_status.room_id=515 register_ts_ms=1773480366464 upgrade_ts_ms=1773480367698