refactor(openspec): 归档心跳数据库v2更新相关文档
将update-heartbeat-db-v2目录下的文档迁移至archive目录 更新specs目录下的相关规范文件以反映最新变更
This commit is contained in:
@@ -2,9 +2,7 @@
|
||||
|
||||
## Purpose
|
||||
本规范定义本服务如何连接 Kafka 集群、订阅主题并消费消息(以 buffer 形式透传 payload),以及错误处理/重连与消费确认语义。
|
||||
|
||||
## Requirements
|
||||
|
||||
### Requirement: Kafka连接管理
|
||||
系统 MUST 能够建立和维护与 Kafka 集群的连接。
|
||||
|
||||
@@ -46,3 +44,25 @@
|
||||
#### Scenario: 路由有效消息
|
||||
- **WHEN** 接收到有效格式的心跳消息时
|
||||
- **THEN** 系统应该将消息路由到正确的处理器
|
||||
|
||||
### Requirement: 心跳消息载荷格式(生产者约束)
|
||||
Kafka 心跳消息 MUST 包含数据库落库所需的必填字段,并采用 UTF-8 编码。
|
||||
|
||||
#### Scenario: JSON 心跳消息
|
||||
- **WHEN** 生产者向主题推送心跳消息
|
||||
- **THEN** 消息 value 应为 JSON(UTF-8)
|
||||
- **AND** 至少包含 ts_ms、hotel_id、room_id、device_id、ip、power_state、guest_type、cardless_state、service_mask、pms_state、carbon_state、device_count、comm_seq
|
||||
- **AND** 可选包含 extra(json object)
|
||||
|
||||
### Requirement: 分区键友好的 Kafka Key
|
||||
系统 MUST 支持使用 `hotel_id:device_id` 作为 Kafka message key 以获得更好的分区与有序性。
|
||||
|
||||
#### Scenario: 缺失 key 仍可处理
|
||||
- **WHEN** 消息未携带 key
|
||||
- **THEN** 系统仍应能够消费与处理该消息
|
||||
|
||||
#### Scenario: 使用 device_id 作为 key
|
||||
- **WHEN** 生产者发送消息
|
||||
- **THEN** 建议使用 `hotel_id:device_id` 作为 Kafka message key
|
||||
- **AND** 以提升同设备有序性与消费侧批量聚合效率
|
||||
|
||||
|
||||
Reference in New Issue
Block a user