【事务型消息】

发布时间 2023-07-13 13:04:19作者: 飞翔在天

参考: https://developer.aliyun.com/article/712456

 

可以梳理一下完美解决 “账单变更 Case” 需要解决的关键点:

  • 必须满足“一致性”要求,即账单服务数据库变更事务提交成功,风险控制服务和短信通知服务收到“账单变更”消息;账单服务数据库变更事务回滚,风险控制服务和短信通知服务不会收到“账单变更”消息。
  • “账单变更”消息发布失败,尽量避免导致数据库变更事务的回滚。

为了解决以上描述的两个需求,消息队列需要提供一种特殊类型的消息:消息队列收到消息后不会立刻投递消息到消息订阅者,而是根据消息发布者应用的数据库事务状态决定消息是否投递。如果数据库事务提交,则消息投递到订阅者;反之则不投递。此类消息被命名为 事务型消息”。

 

支持事务型消息: RocketMQ