day59_java_基础巩固

简介: 自己所掌握的基础知识加以巩固和记录!希望大家点赞收藏并能给予鼓励和支持!有任何建议或者帮助也可以来哦!!!虽然有些干货知识很通俗,但也是自己的必经之路i,加油!!!

RocketMQ 如何实现分布式事务?

1、生产者向 MQ 服务器发送 half 消息。

2、half 消息发送成功后,MQ 服务器返回确认消息给生产者。

3、生产者开始执行本地事务。

4、根据本地事务执行的结果(UNKNOW、commit、rollback)向 MQ Server 发送提交

或回滚消息。

5、如果错过了(可能因为网络异常、生产者突然宕机等导致的异常情况)提交/回滚消息,

则 MQ 服务器将向同一组中的每个生产者发送回查消息以获取事务状态。

6、回查生产者本地事物状态。

7、生产者根据本地事务状态发送提交/回滚消息。

8、MQ 服务器将丢弃回滚的消息,但已提交(进行过二次确认的 half 消息)的消息将投递

给消费者进行消费。


Half Message : 预 处 理 消 息 , 当 broker 收 到 此 类 消 息 后 , 会 存 储 到

RMQ_SYS_TRANS_HALF_TOPIC 的消息消费队列中。


检查事务状态:Broker 会开启一个定时任务,消费 RMQ_SYS_TRANS_HALF_TOPIC 队列

中的消息,每次执行任务会向消息发送者确认事务执行状态(提交、回滚、未知),如果是

未知,Broker 会定时去回调在重新检查。


超时:如果超过回查次数,默认回滚消息。

也就是他并未真正进入 Topic 的 queue,而是用了临时 queue 来放所谓的 half message,

等提交事务后才会真正的将 half message 转移到 topic 下的 queue。

相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
4月前
|
Java 编译器
java基础
【4月更文挑战第5天】java基础
42 2
|
2月前
|
存储 安全 算法
JAVA基础大汇总~
java必备基础,但是看之前你得有点基础哈哈哈
|
4月前
|
存储 缓存 安全
Java 基础
• Field : 可以使用 get() 和 set() 方法读取和修改 Field 对象关联的字段; • Method : 可以使用 invoke() 方法调用与 Method 对象关联的方法; • Constructor : 可以用 Constructor 创建新的对象。 Advantages of Using Reflection: • Extensibility Features : An application may make use of external, user-defined classes by creating instances of extensibility
|
4月前
|
Java
JAVA基础小记
JAVA基础小记
23 0
|
前端开发 Java 数据安全/隐私保护
day41_java_基础巩固
自己所掌握的基础知识加以巩固和记录!希望大家点赞收藏并能给予鼓励和支持!有任何建议或者帮助也可以来哦!!!虽然有些干货知识很通俗,但也是自己的必经之路i,加油!!!
|
Java 数据库连接 Spring
day42_java_基础巩固
自己所掌握的基础知识加以巩固和记录!希望大家点赞收藏并能给予鼓励和支持!有任何建议或者帮助也可以来哦!!!虽然有些干货知识很通俗,但也是自己的必经之路i,加油!!!
|
安全
day05_java基础
自己所掌握的基础知识加以巩固和记录!希望大家点赞收藏并能给予鼓励和支持!有任何建议或者帮助也可以来哦!
day02-Java基础
自己所掌握的基础知识加以巩固和记录!希望大家点赞收藏并能给予鼓励和支持!有任何建议或者帮助也可以来哦!
|
算法 安全 Java
|
存储 缓存 算法