Refine Kafka persistence topic boundaries
This commit is contained in:
+13
-12
@@ -20,15 +20,16 @@ Kafka 主要用于跨系统异步事件、削峰落库、可靠重试、失败
|
||||
|
||||
| Topic | 用途 | 典型生产方 | 典型消费方 |
|
||||
| --- | --- | --- | --- |
|
||||
| `im.message.persist` | 私聊、群聊消息异步落库 | IM WS 节点 | 消息持久化消费者 |
|
||||
| `im.message.persist` | 私聊消息异步落库 | IM WS 节点 | 消息持久化消费者 |
|
||||
| `im.group.message.persist` | 群聊消息异步落库 | IM WS 节点 | 群消息持久化消费者 |
|
||||
| `im.message.push` | 离线 Push 提醒 | 消息落库消费者、业务事件生产方 | 极光/厂商 Push 消费者 |
|
||||
| `im.business.event` | 好友、群、会议、工作台等 C 端业务事件 | IM HTTP、Admin 后台 | IM 节点事件投递消费者 |
|
||||
| `im.group.admin.event` | Admin 后台群操作投递到 C 端 | Admin 后台 | IM 节点 WS 投递消费者 |
|
||||
| `im.cache.invalidate` | 跨节点缓存失效 | 业务写接口、后台配置 | IM 节点缓存消费者 |
|
||||
| `im.file.security` | 文件内容安全和恶意文件检测 | 上传完成链路 | 阿里云安全检测消费者 |
|
||||
| `im.file.lifecycle` | 孤立文件回收、引用绑定、合规删除 | 文件服务、业务写接口 | 文件生命周期消费者 |
|
||||
| `im.audit.event` | 审计日志 | 所有敏感写链路 | 审计消费者 |
|
||||
| `im.workbench.event` | 工作台模块红点、会议、日报、月报、信箱事件 | 工作台业务服务、Admin 后台 | IM WS 投递、系统通知消费者 |
|
||||
| `im.file.lifecycle` | 已不采用 | 文件生命周期小流量动作同步处理 | 无 |
|
||||
| `im.audit.event` | 跨系统审计事件 | IM Server、Admin 后台 | Admin/HotGo 审计消费者 |
|
||||
| `im.workbench.event` | 已不采用 | 工作台小流量动作同步处理 | 无 |
|
||||
| `im.dead.letter` | 失败事件归档 | 各消费者 | 运维补偿任务 |
|
||||
|
||||
## 3. 幂等与重试
|
||||
@@ -61,16 +62,16 @@ Kafka 消息统一携带 `event_id`、`trace_id`、`tenant_code`、`biz_type`、
|
||||
|
||||
1. 上传完成后投递 `im.file.security`,调用阿里云内容安全和恶意文件检测。
|
||||
2. 安全检测完成后更新文件审核状态,并通过 `im.business.event` 或系统通知告知相关用户。
|
||||
3. 消息发送、收藏、群文件登记、日报/月报/反馈/举报提交成功后投递 `im.file.lifecycle`,建立业务引用和 ACL。
|
||||
4. 业务撤回、删除、合规处置或临时文件 TTL 到期后投递 `im.file.lifecycle`,执行引用释放、禁用下载或 OSS 删除。
|
||||
3. 消息附件引用绑定、群文件登记等小流量动作同步落库,不再投递 `im.file.lifecycle`。
|
||||
4. 业务撤回、删除、合规处置或临时文件 TTL 回收如需异步化,另行评估专门任务队列。
|
||||
|
||||
## 6. 工作台链路结论
|
||||
|
||||
工作台“查询类接口”不需要 Kafka,但工作台“状态变化和提醒类事件”适合 Kafka:
|
||||
工作台“查询类接口”不需要 Kafka,状态变化和提醒类事件当前也同步处理:
|
||||
|
||||
1. 会议创建、更新、取消、提醒、参会响应生产 `im.workbench.event`,消费者生成系统通知、红点并通过 WS 通知在线客户端。
|
||||
2. 日报/月报提交、撤回、重开、管理员催办生产 `im.workbench.event`,用于红点、催办 Push 和审计。
|
||||
3. 总经理信箱提交生产 `im.workbench.event` 和 `im.audit.event`,后台处理结果再回推 C 端。
|
||||
1. 会议创建、更新、取消、提醒、参会响应同步生成系统通知、红点并通过 WS 通知在线客户端。
|
||||
2. 日报/月报提交、撤回、重开、管理员催办同步生成红点、催办 Push 和审计。
|
||||
3. 总经理信箱提交同步处理,后台处理结果再回推 C 端。
|
||||
4. 工作台模块配置变更生产 `im.cache.invalidate`,IM 节点刷新进程内配置缓存。
|
||||
|
||||
## 7. 已补充:缓存失效与 Admin 配置查询
|
||||
@@ -85,6 +86,6 @@ Kafka 消息统一携带 `event_id`、`trace_id`、`tenant_code`、`biz_type`、
|
||||
|
||||
1. 先实现 Kafka 基础生产者、消费者、配置、健康检查和消费幂等表。
|
||||
2. 接入 `im.group.admin.event`,解决 Admin 后台群操作通过 Kafka 投递到 C 端。
|
||||
3. 接入 `im.message.persist`,将消息异步落库和幂等重试闭环。
|
||||
3. 接入 `im.message.persist` 和 `im.group.message.persist`,将私聊、群聊消息在 IM 内部异步落库和幂等重试闭环。
|
||||
4. 接入 `im.file.security`,把 OSS 上传完成后的文件安全检测异步化。
|
||||
5. 接入 `im.workbench.event`,先覆盖会议提醒、日报/月报催办、总经理信箱提交通知。
|
||||
5. 工作台事件保持 IM 内部同步处理;跨系统审计仍通过 `im.audit.event` 投递给 Admin/HotGo。
|
||||
|
||||
Reference in New Issue
Block a user