MQ如何保证分布式事务的最终一致性
分布式事务:业务相关的多个操作,保证它们同时成功或者同时失败最终一致性:只要保证最终的事务是对齐的就行强一致性:每一个过程的
MQ中要保证事务的最终一致性
- 生产者要保证100%的消息投递。
- 消费者保证幂等消费。唯一ID+业务自己实现幂等。
分布式MQ的三种语义:
- at least once:至少一次
- at most once:至多一次
- exactly once:有且仅有一次
- RocketMQ并不能保证exactly once。商业版本当中提供了exactly once的实现机制
- Kafka:在最新版本的源码中,提供了exactly once的demo
- RabbitMQ:erlang天生就成了一种屏障
本文由作者按照 CC BY 4.0 进行授权