事务消息的流程分析|学习笔记

简介: 快速学习事务消息的流程分析

开发者学堂课程【RocketMQ知识精讲与项目实战(第一阶段)事务消息的流程分析】学习笔记,与课程紧密联系,让用户快速学习知识

课程地址:https://developer.aliyun.com/learning/course/702/detail/12390


事务消息的流程分析


内容介绍:

一、流程分析大框

二、事务消息发送及提交

三、事务补偿

四、事务消息状态

 

一、流程分析大框

消息的发送者发送给 MQ 的消息是带有事务控制的,需要事务提交的,如果没有提

交给事务,是不能被消费者消费的。

非事务类消息,可以直接被消费,而这一类事务消息我们称之为 HalfMsg,在它发送后,MQ 会给予一个结果表示收到,此时就开始处理本地的事务,处理之后要对半消息进行 Commit or Rollback,如果 MQ 提交了,消费者就可以消费了,如果MQ回管了,消息队列就会被删除,因此消费者就会接收不到。

在进行提交或回滚时,有可能本地事务执行失败了,超时没有对半消息进行处理,

那么消息队列会对消息进行回查,它会回调检查消息状态。

检查后,本地检查方法再对消息进行处理,不是提交就是回滚 ,这就是事务消息的

流程。

其中分为两个流程:正常事务消息的发送及提交、事务消息的补偿流程。

image.png


二、事务消息发送及提交

1、发送消息(half 消息)。

2、服务端响应消息写入结果。

3、根据发送结果执行本地事务(如果写入失败,此时half消息对业务不可见,本地逻辑不执行)。

4、根据本地事务状态执行 Commit 或者 Rollback(Commit 操作生成消息索引,消息对消费者可见)

 

三、事务补偿

1、对没有 Commit/Rollback 的事务消息(pending 状态的消息),从服务端发起一次“回查”

2、Producer 收到回查消息,检查回查消息对应的本地事务的状态

3、根据本地事务状态,重新 Commit 或者 Rollback

其中,补偿价段用于解决消息 Commit 或者 Rollback 发生超时或者失败的情况。

 

四、事务消息状态

事务消息共有三种状态,提交状态、回滚状态、中间状态:

TransactionStatus.CommitTransaction:提交事务,它允许消费者消费此消息。

TransactionStatus.RollbackTransaction:回滚事务,它代表该消息将被删除,不允

许被消费。

TransactionStatus.Unknown:中间状态,它代表需要检查消息队列来确定状态。

相关实践学习
快速体验阿里云云消息队列RocketMQ版
本实验将带您快速体验使用云消息队列RocketMQ版Serverless系列实例进行获取接入点、创建Topic、创建订阅组、收发消息、查看消息轨迹和仪表盘。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
5月前
|
Oracle 关系型数据库 MySQL
行锁
行锁是数据库并发控制机制,通过锁定特定行记录,实现多事务并行操作,提升性能。支持共享锁与排他锁,适用于电商、金融等高并发场景,需注意死锁预防与索引优化。
157 0
|
SQL 分布式计算 大数据
MaxCompute产品使用合集之如何在本地IDE(如IntelliJ IDEA)中配置MaxCompute (mc) 的任务和调试SQL
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
人工智能 搜索推荐 Android开发
Android系统版本演进:从1.0到最新,见证移动操作系统的蜕变####
本文以Android系统的迭代更新为线索,探讨了自2008年首个版本发布以来,Android在功能、性能、用户体验及安全性方面的显著进步。通过对比各代版本的亮点与改进,揭示了Android如何逐步发展成为全球领先的移动操作系统平台,并预测了未来发展趋势。 ####
966 24
|
存储 SQL 分布式计算
技术心得记录:深入学习HBase架构原理
技术心得记录:深入学习HBase架构原理
|
人工智能 自然语言处理 安全
AI技术在智能客服系统中的应用与挑战
【10月更文挑战第28天】本文将深入探讨人工智能(AI)技术在智能客服系统中的应用及其面临的挑战。我们将通过实例分析,了解AI如何改善客户服务体验,提高效率和降低成本。同时,我们也将关注AI在实际应用中可能遇到的问题,如语义理解、情感识别和数据安全等,并提出相应的解决方案。
|
机器学习/深度学习 监控 算法
YOLO
YOLO “【5月更文挑战第4天】”
440 7
|
存储 算法 分布式数据库
HBase原理 | HBase内部探险
HBase原理 | HBase内部探险
507 0
必知的技术知识:Excel通过身份证获取出生年月,性别,年龄,生肖,星座,省份等信息总结归纳
必知的技术知识:Excel通过身份证获取出生年月,性别,年龄,生肖,星座,省份等信息总结归纳
930 0
|
SQL 关系型数据库 MySQL
MySQL数据库之事物(详解)
MySQL数据库之事物(详解)
424 0
|
存储 Oracle 关系型数据库
从源码角度,分析PG事务号分配机制和防止事务号回卷
从源码角度,分析PG事务号分配机制和防止事务号回卷
从源码角度,分析PG事务号分配机制和防止事务号回卷