feat: 实现GUID主键与service_mask索引改造

- 将主键从自增id改为GUID格式并添加格式校验
- 为service_mask添加表达式索引优化首位查询性能
- 更新相关文档说明改造方案与验证步骤
- 添加统计模块记录数据库写入与Kafka消费量
- 重构Redis心跳协议改用LIST类型存储项目状态
- 修复部署脚本中的服务名称不一致问题
This commit is contained in:
2026-01-17 18:37:44 +08:00
parent 662eeee380
commit 41301f9ce5
21 changed files with 828 additions and 106 deletions

View File

@@ -11,13 +11,13 @@
## 2. 偏差与风险(需要评估)
### 2.1 “主键仅 id” 与 PostgreSQL 分区约束冲突
- 需求写:主键为 `id (bigserial)`
- 现实现:`PRIMARY KEY (ts_ms, id)`
- 需求写:主键为 `id`GUID
- 现实现:`PRIMARY KEY (ts_ms, guid)`(其中 guid 为 varchar(32)
原因PostgreSQL 分区表的主键/唯一约束通常需要包含分区键,否则无法在父表创建全局约束。
影响:
- 业务若强依赖“仅 id 即主键”的语义,需要额外约定(例如只把 id 当作全局唯一序列号使用,主键组合用于物理约束)。
- 业务若强依赖“仅 guid 即主键”的语义,需要额外约定(例如只把 guid 当作全局唯一序列号使用,主键组合用于物理约束)。
### 2.2 “自动分区”实现方式
- 需求写:新分区可自动创建。