- 存储预发送消息(主动方业务执行之前进行,预发送的消息存储后状态为待确认)
- 确认并发送消息(主动方业务完成之后,主动方或消息状态确认系统通过此接口将消息变为取消或发送中)
- 查询状态确认超时的消息(消息状态确认系统使用)
- 确认消息已被成功消费(被动方业务执行完成之后调用)
- 查询消费确认超时的信息
字段名 | 含义 |
---|---|
id | 主键ID |
version | 版本号 |
cuser | 创建人 |
muser | 修改人 |
ctime | 创建时间 |
mtime | 修改时间 |
message_id | 消息ID |
message_body | 消息内容 |
message_try_times | 消息重试次数 |
message_queue | 消息队列名 |
message_dead | 消息是否死亡 |
status | 消息状态 |
remark | 备注 |
- 预存储消息接口:创建消息,将消息状态初始化为待确认,持久化
- 确认发送消息接口:将消息状态更改为发送中,将消息发送到MQ,注意这里不将消息状态改为已发送
- 存储并发送消息接口:直接存储消息并且直接发送(比如支付网关通过消息服务通知其他服务)
- 直接发送消息接口:透传,消息服务不持久化消息,相当于直接调用MQ
- 根据id重发消息接口:用于消息恢复子系统或消息管理子系统,通过此接口重新发送接口
- 将消息标记为死亡接口:用于将消息标记为死亡,不再重发
- 花样查询消息接口:花样查询各种消息的接口
- 删除消息接口:业务操作成功和主动方业务失败后用于删除消息
- 重发某个队列中的全部死亡消息:防止出现被动方应用宕机后消息积压均重发多次后进入死亡状态的结果
- 主要用来用于手动管理死亡消息,重发等
- 处理待确认的超时消息(注意排序,超时时间越长应该越早处理)
- 主动方调用方业务执行成功,消息服务子系统中消息状态已变成发送中.我们必须保证消息被被动方消费
- 使用MQ实现
- 主动业务方流程
- 预发送消息
- 执行业务
- 确认发送(如果这一步超时会回滚前面的业务,但是消息已被发送到消息服务子系统并并持久化)