feat: 添加 Kafka 消费者和消息处理功能
- 新增 Kafka 消费者实现,支持消息处理和错误处理。 - 实现 OffsetTracker 类,用于跟踪消息偏移量。 - 新增消息解析和数据库插入逻辑,支持从 Kafka 消息构建数据库行。 - 实现 UDP 数据包解析功能,支持不同类型的 UDP 消息。 - 新增 Redis 错误队列处理,支持错误重试机制。 - 实现 Redis 客户端和集成类,支持日志记录和心跳机制。 - 添加 Zod 验证模式,确保 Kafka 消息有效性。 - 新增日志记录和指标收集工具,支持系统监控。 - 添加 UUID 生成工具,支持唯一标识符生成。 - 编写处理器逻辑的单元测试,确保功能正确性。 - 配置 Vite 构建工具,支持 Node.js 环境下的构建。
This commit is contained in:
91
docs/project.md
Normal file
91
docs/project.md
Normal file
@@ -0,0 +1,91 @@
|
||||
|
||||
0xB1命令
|
||||
## 模式
|
||||
- rcu_info
|
||||
### 数据表
|
||||
- rcu_info_events
|
||||
|
||||
#### 基础字段
|
||||
| 字段名 | 类型 | 备注 |
|
||||
| --- | --- | --- |
|
||||
| guid | int8 | 8位整数,由数据库自己生成 |
|
||||
| ts_ms | int8 | 事件发生的时间戳(毫秒级 Unix 时间),作为分区键和主键的一部分。 |
|
||||
| hotel_id | int2 | 酒店Code,smallint 类型,范围 [0, 32767],标识所属酒店。 |
|
||||
| room_id | varchar(50) | 房间号,字符串类型,长度 1~50,标识具体房间。 |
|
||||
| device_id | varchar(64) | 设备唯一标识符,最长64字符,以CRICS拼接字段为准。 |
|
||||
| write_ts_ms | int8 | 写入数据库的时间戳(毫秒级 Unix 时间) |
|
||||
|
||||
#### 信息字段
|
||||
| 字段名 | 类型 | 备注 |
|
||||
| --- | --- | --- |
|
||||
| is_send | int2 | 1:下发,0:上报 默认0 |
|
||||
| udp_raw | text | UDP原始数据(使用Base64编码) |
|
||||
| extra | jsonb | 扩展字段(JSON格式) |
|
||||
|
||||
#### 数据字段
|
||||
| 字段名 | 类型 | 备注 |
|
||||
| --- | --- | --- |
|
||||
| ip_type | int2 | IP类型 |
|
||||
| model_num | varchar(32) | 机型编号 |
|
||||
| server_ip | varchar(21) | 服务器IP |
|
||||
| ip | varchar(21) | IP:Port |
|
||||
| subnet_mask | varchar(15) | 子网掩码 |
|
||||
| gateway | varchar(15) | 网关 |
|
||||
| dns | varchar(15) | DNS |
|
||||
| app_version | varchar(64) | 软件版本号 |
|
||||
| rcu_time | varchar(25) | RCU时间 |
|
||||
| launcher_version | varchar(64) | Launcher版本号 |
|
||||
| mac | varchar(17) | MAC地址 |
|
||||
| room_type_id | int8 | 房间类型id |
|
||||
| config_version | varchar(32) | 配置版本号 |
|
||||
| room_status | int4 | 房间状态 |
|
||||
| season | int4 | 季节 |
|
||||
| sys_lock_status | int4 | 系统锁定状态 |
|
||||
| authorization_time | varchar(10) | 授权时间 |
|
||||
| authorization_days | varchar(10) | 授权天数 |
|
||||
| room_num_remark | varchar(255) | 房号备注 |
|
||||
| room_type_remark | varchar(64) | 房型备注 |
|
||||
| room_remark | varchar(64) | 房间备注 |
|
||||
| mcu_name | varchar(255) | MCU名称 |
|
||||
| central_control_name | varchar(255) | 中控机型名称 |
|
||||
| configure_hotel_name | varchar(255) | 配置数据酒店名称 |
|
||||
| configure_room_type_name | varchar(255) | 配置数据房型别名 |
|
||||
|
||||
|
||||
#### 生产服务器的推送的数据用于kafka的C#类:
|
||||
public class RegisterInfo
|
||||
{
|
||||
public long ts_ms { get; set; }
|
||||
public long upgrade_ts_ms { get; set; }
|
||||
public long hotel_id { get; set; }
|
||||
public string room_id { get; set; }
|
||||
public string device_id { get; set; }
|
||||
public ushort is_send { get; set; }
|
||||
public byte[] udp_raw { get; set; }
|
||||
public string extra { get; set; }
|
||||
public int ip_type { get; set; }
|
||||
public string model_num { get; set; }
|
||||
public string server_ip { get; set; }
|
||||
public string ip { get; set; }
|
||||
public string subnet_mask { get; set; }
|
||||
public string gateway { get; set; }
|
||||
public string dns { get; set; }
|
||||
public string app_version { get; set; }
|
||||
public string rcu_time { get; set; }
|
||||
public string launcher_version { get; set; }
|
||||
public string mac { get; set; }
|
||||
public int room_type_id { get; set; }
|
||||
public string config_version { get; set; }
|
||||
public int room_status { get; set; }
|
||||
public string season { get; set; }
|
||||
public int sys_lock_status { get; set; }
|
||||
public long authorization_time { get; set; }
|
||||
public long authorization_days { get; set; }
|
||||
public string room_num_remark { get; set; }
|
||||
public string room_type_remark { get; set; }
|
||||
public string room_remark { get; set; }
|
||||
public string mcu_name { get; set; }
|
||||
public string central_control_name { get; set; }
|
||||
public string configure_hotel_name { get; set; }
|
||||
public string configure_room_type_name { get; set; }
|
||||
}
|
||||
Reference in New Issue
Block a user