RocketMQ事务如何避免单点问题

如题,

  • 一个RocketMQ事务包含两部分:消息投递和本地事务执行。
  • 如果本地事务执行成功了,在向Broker发送确认消息之前宕掉了,那么如何保证这个分布式事务的正确执行?
  • 按照RocketMQ的逻辑,如果出现此种情况,rocketmq会发送消息回查请求,可是此时该机器已宕机,无法对回查请求作出响应,那么如何判断事务成功还是失败了呢?

本质上RocketMQ的分布式事务还是采用的2PC协议,那么按理说也就绕不过单点问题。
或者说可以通过对同一事务作集群处理,总能找到一台未失效的机器?

还请大佬们解惑

阅读 2.6k
2 个回答

反查逻辑写的好,就不会有问题;
如果机器没了,反查也不好使,只能人工介入

新手上路,请多包涵

如何事务处理失败,回查也失败的话当然属于事务失败了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题