采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
最后本地成功提交后发送了消息,但是这个时候如果消费端如果出现了错误,那生产端的已经处理的业务怎么办呢?还是说通过业务设计来避免这个问题,请老师解答下
基于RocketMQ的分布式事务本身是一种补偿型的事务。RocketMQ只能保证消费者能消费成功这条消息,才认为这条消息被成功投递;否则就会重试(重试15次,如果还是消费失败,那就进死信队列,死信队列的消息一般需要人工介入了);
谢谢老师指点
老师好,请问强分布式事务一般采用哪种方案实现啊?
我没有听说过"强分布式事务"这种词汇,不确定理解了您的意思? 您指的强分布式事务是ACID特性都具备吗?如果是这样,那么不好意思,目前没有。分布式事务一般是由BASE原理以及CAP定理推导出的,而一般可用性与分区容错性都需要具备,所以只能在极端场景下,一定程度上牺牲一致性,于是分布式事务往往会使用一些补偿性的方案,不管是课上的MQ方案,还是TCC、Saga。而基于XA协议的方案,往往因为性能不佳、容错性不佳,不被采纳。 ------- 如果您指的强分布式事务方案 是指的实效性比较高的话,那可以尝试TCC.
登录后可查看更多问答,登录/注册
面向未来微服务:熟练掌握Spring Cloud Alibaba
487 4
1.9k 1
2.5k 2
1.6k 3
3.5k 13