加载中...

事务消息是消息中间件提供的一种机制,用于保证本地数据库事务的执行与消息发送这两个动作的原子性:要么事务提交且消息可被消费,要么事务回滚且消息不可见,避免出现改了库没发消息或发了消息没改库的不一致。
RocketMQ 的方案最具代表性:生产者先发送半消息(对消费者不可见),再执行本地事务,随后根据结果提交或回滚该消息;若生产者中途宕机未给出结论,Broker 会定时向生产者集群发起事务回查,由业务方检查本地事务状态后补交结论。
Kafka 的事务解决的是多分区写入与消费位点的原子提交(read-process-write),与绑定本地数据库事务是不同问题;通用的替代方案是 Outbox 模式,把待发消息与业务数据写入同一库同一事务,再由中继进程或 CDC 转发到消息系统。
典型场景为订单创建后通知扣减库存、发放积分等跨服务最终一致性流程。

登录 后参与讨论
暂无讨论,来发表第一条评论吧