3. 最终一致性设计与实现——独立消息服务
3.1 整体架构

3.2 消息服务子系统
3.2.1 基本功能
- 存储预发送消息(主动方业务执行之前进行,预发送的消息存储后状态为待确认)
- 确认并发送消息(主动方业务完成之后,主动方或消息状态确认系统通过此接口将消息变为取消或发送中)
- 查询状态确认超时的消息(消息状态确认系统使用)
- 确认消息已被成功消费(被动方业务执行完成之后调用)
- 查询消费确认超时的信息
3.2.2 数据库设计
| 字段名 |
含义 |
| id |
主键ID |
| version |
版本号 |
| cuser |
创建人 |
| muser |
修改人 |
| ctime |
创建时间 |
| mtime |
修改时间 |
| message_id |
消息ID |
| message_body |
消息内容 |
| message_try_times |
消息重试次数 |
| message_queue |
消息队列名 |
| message_dead |
消息是否死亡 |
| status |
消息状态 |
| remark |
备注 |
3.3 消息管理子系统
3.4 消息状态确认子系统
3.4.1 接口设计
- 处理待确认的超时消息(注意排序,超时时间越长应该越早处理)
3.5 消息恢复子系统
- 主动方调用方业务执行成功,消息服务子系统中消息状态已变成发送中.我们必须保证消息被被动方消费
3.6 实时消息服务子系统
3.7 异步确认(防止可补偿流程错误导致主流程回滚)
- 主动业务方流程
- 预发送消息
- 执行业务
- 确认发送(如果这一步超时会回滚前面的业务,但是消息已被发送到消息服务子系统并并持久化)
相关文章:
-
2022-12-23
-
2021-10-01
-
2021-11-23
-
2021-05-26
-
2022-02-19
-
2021-10-07
猜你喜欢
-
2021-10-30
-
2021-10-29
-
2021-09-03
-
2021-07-24
-
2021-08-21
-
2021-12-28
相关资源
-
下载
2023-01-29
-
下载
2022-12-06
-
下载
2022-12-17