您好,欢迎访问代理记账网站
  • 价格透明
  • 信息保密
  • 进度掌控
  • 售后无忧

RocketMQ事务消息的理解

RocketMQ事务消息的理解

1.简述:

​ 保证本地事务和发送消息的一致性,不保证后续消费者的一致性。

2.原理:

事务消息采用2PC+事务补偿机制来保证一致性

  • 2PC:提交回滚事务消息

  • 事务补偿机制:处理二阶段超时或者失败的消息,利用了事务回查来检查本地事务的状态,从而判断事务消息是提交还是回滚。

3.事务消息的流程概要

事务消息流程图

  • 提交回滚事务消息

    1.发送half消息

    2.half消息回传ack

    3.MQ Server将消息持久化

    4.执行本地事务,根据本地事务的执行成功与否来决定事务消息的状态(commit、rollback、unkown)

    如果事务消息的状态为commit则让消费者消费消息。rollback则直接丢弃消息。unkown则进入事务补偿

  • 事务补偿

    1.对于没有commit/rollback的消息,MQ Server会向producer发起事务回查请求。默认查询次数:15

    2.producer收到回查请求,检查回查消息对应的状态

    3.根据回查消息状态来重新commit/rollback

4.事务消息的特点

  1. 事务消息在一阶段对用户不可见

    half消息属于一阶段消息,对用户不可见。它会备份原消息的Topic、Queue,改变主题为RMQ_SYS_TRANS_HALF_TOPIC(对外不可见)。RocketMQ会开启一个定时任务,从该Topic中拉取消息进行消费,向producer发送事务回查请求,根据查询到的事务状态来决定是提交还是回滚消息

  2. Commit和Rollback操作以及Op消息的引入

    待整理


分享:

低价透明

统一报价,无隐形消费

金牌服务

一对一专属顾问7*24小时金牌服务

信息保密

个人信息安全有保障

售后无忧

服务出问题客服经理全程跟进