rocketmq事务

事务消息

解决的问题:保证本地事务和发送消息同时成功, 保证分布式系统的最终一致性。

 

其他方案的问题:

1. 先发消息, 再执行本地事务。 

问题: 消息发成功之后, 系统宕机,本地事务没有执行成功。

 

2. 先执行本地事务, 再发消息。

问题: 本地事务执行成功, 系统宕机, 消息没有发送成功。

 

 

3.  先执行本地事务, 再发消息。 并放到同一个事务中。

问题: 本地事务发送成功, 发送消息超时。 本地事务回滚。

3.1  消息实际发送失败, 符合预期

3.2  消息实际发送成功,不符合预期。

 

综上: 

1. 使用事务消息 可以有效地解决以上问题 -- 建议1

2. 如果感觉事务消息实现复杂,可以使用2 + 重试 + 离线数据对账 + 补偿 的形式, 保证消息不漏发。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章