请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

看了分布式事务这里,有些疑问?

最后本地成功提交后发送了消息,但是这个时候如果消费端如果出现了错误,那生产端的已经处理的业务怎么办呢?还是说通过业务设计来避免这个问题,请老师解答下

正在回答

1回答

基于RocketMQ的分布式事务本身是一种补偿型的事务。RocketMQ只能保证消费者能消费成功这条消息,才认为这条消息被成功投递;否则就会重试(重试15次,如果还是消费失败,那就进死信队列,死信队列的消息一般需要人工介入了);

0 回复 有任何疑惑可以回复我~
  • 提问者 艾尔布鲁 #1
    谢谢老师指点
    回复 有任何疑惑可以回复我~ 2019-09-06 14:45:51
  • 老师好,请问强分布式事务一般采用哪种方案实现啊?
    回复 有任何疑惑可以回复我~ 2019-09-16 17:46:54
  • 我没有听说过"强分布式事务"这种词汇,不确定理解了您的意思?
    您指的强分布式事务是ACID特性都具备吗?如果是这样,那么不好意思,目前没有。分布式事务一般是由BASE原理以及CAP定理推导出的,而一般可用性与分区容错性都需要具备,所以只能在极端场景下,一定程度上牺牲一致性,于是分布式事务往往会使用一些补偿性的方案,不管是课上的MQ方案,还是TCC、Saga。而基于XA协议的方案,往往因为性能不佳、容错性不佳,不被采纳。
    -------
    如果您指的强分布式事务方案 是指的实效性比较高的话,那可以尝试TCC.
    回复 有任何疑惑可以回复我~ 2019-09-16 18:04:17
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信