分布式事务解决方案-RocketMQ实现可靠消息最终一致性

架构成长之路:RocketMQ分布式事务解决方案—可靠消息一致性 本地事务与消息发送的原子性问题即:事务发起方在本地事务执行成功后消息必须发出去,否则就丢弃消息。事务发起方(消息生产方)将消息发给消息中间件,事务参与方从消息中间件接收消息,事务发起方和消息中间件之间,事务参与方(消息消费方)和消息中间件之间都是通过网络通信,由于网络通信的不确定性会导致分布式事务问题。在RocketMQ 4.3后实现了完整的事务消息,实际上其实是对本地消息表的一个封装,将本地消息表移动到了MQ内部,解决 Producer 端的消息发送与本地事务执行的原子性问题。 阅读详情

1.什么是可靠消息最终一致性事务

​ 可靠消息最终一致性方案是指当事务发起方执行完成本地事务后并发出一条消息,事务参与方(消息消费者)一定能够接收消息并处理事务成功,此方案强调的是只要消息发给事务参与方最终事务要达到一致。

​ 此方案是利用消息中间件完成,如下图:

​ 事务发起方(消息生产方)将消息发给消息中间件,事务参与方从消息中间件接收消息,事务发起方和消息中间件之间,事务参与方(消息消费方)和消息中间件之间都是通过网络通信,由于网络通信的不确定性会导致分布式事务问题。

 

 

因此可靠消息最终一致性方案要解决以下几个问题:

1).本地事务与消息发送的原子性问题

​ 本地事务与消息发送的原子性问题即:事务发起方在本地事务执行成功后消息必须发出去,否则就丢弃消息。即实现本地事务和消息发送的原子性,要么都成功,要么都失败。本地事务与消息发送的原子性问题是实现可靠消息最终一致性方案的关键问题。

先来尝试下这种操作,先发送消息,再操作数据库:

begin transaction;
	//1.发送MQ
	//2.数据库操作
commit transation;

这种情况下无法保证数据库操作与发送消息的一致性,因为可能发送消息成功,数据库操作失败。

你立马想到第二种方案,先进行数据库操作,再发送消息:

begin transaction;
	//1.数据库操作
	//2.发送MQ
commit transation;

​ 这种情况下貌似没有问题,如果发送MQ消息失败,就会抛出异常,导致数据库事务回滚。但如果是超时异常,数据库回滚,但MQ其实已经正常发送了,同样会导致不一致。

2)事务参与方接收消息的可靠性

事务参与方必须能够从消息队列接收到消息,如果接收消息失败可以重复接收消息。

3)消息重复消费的问题

​ 由于网络2的存在,若某一个消费节点超时但是消费成功,此时消息中间件会重复投递此消息,就导致了消息的重复消费。

​ 要解决消息重复消费的问题就要实现事务参与方的方法幂等性。

2.解决方案

​ 上节讨论了可靠消息最终一致性事务方案需要解决的问题,本节讨论具体的解决方案。

2.1.本地消息表方案

​ 本地消息表这个方案最初是eBay提出的,此方案的核心是通过本地事务保证数据业务操作和消息的一致性,然后通过定时任务将消息发送至消息中间件,待确认消息发送给消费方成功再将消息删除。

下面以注册送积分为例来说明:

下例共有两个微服务交互,用户服务和积分服务,用户服务负责添加用户,积分服务负责增加积分。

 

 

交互流程如下:

1)用户注册

​ 用户服务在本地事务新增用户和增加 ”积分消息日志“。(用户表和消息表通过本地事务保证一致)

下边是伪代码

begin transaction;
	//1.新增用户
	//2.存储积分消息日志
commit transation;

这种情况下,本地数据库操作与存储积分消息日志处于同一个事务中,本地数据库操作与记录消息日志操作具备原子性。

2)定时任务扫描日志

​ 如何保证将消息发送给消息队列呢?

​ 经过第一步消息已经写到消息日志表中,可以启动独立的线程,定时对消息日志表中的消息进行扫描并发送至消息中间件,在消息中间件反馈发送成功后删除该消息日志,否则等待定时任务下一周期重试。

3)消费消息

​ 如何保证消费者一定能消费到消息呢?

​ 这里可以使用MQ的ack(即消息确认)机制,消费者监听MQ,如果消费者接收到消息并且业务处理完成后向MQ发送ack(即消息确认),此时说明消费者正常消费消息完成,MQ将不再向消费者推送消息,否则消费者会不断重试向消费者来发送消息。

​ 积分服务接收到”增加积分“消息,开始增加积分,积分增加成功后向消息中间件回应ack,否则消息中间件将重复投递此消息。

​ 由于消息会重复投递,积分服务的”增加积分“功能需要实现幂等性。

2.2.RocketMQ事务消息方案

​ RocketMQ 是一个来自阿里巴巴的分布式消息中间件,于 2012 年开源,并在 2017 年正式成为 Apache 顶级项目。据了解,包括阿里云上的消息产品以及收购的子公司在内,阿里集团的消息产品全线都运行在 RocketMQ 之上,并且最近几年的双十一大促中,RocketMQ 都有抢眼表现。Apache RocketMQ 4.3之后的版本正式支持事务消息,为分布式事务实现提供了便利性支持。

​ RocketMQ 事务消息设计则主要是为了解决 Producer 端的消息发送与本地事务执行的原子性问题,RocketMQ 的设计中 broker 与 producer 端的双向通信能力,使得 broker 天生可以作为一个事务协调者存在;而 RocketMQ 本身提供的存储机制为事务消息提供了持久化能力;RocketMQ 的高可用机制以及可靠消息设计则为事务消息在系统发生异常时依然能够保证达成事务的最终一致性。

​ 在RocketMQ 4.3后实现了完整的事务消息,实际上其实是对本地消息表的一个封装,将本地消息表移动到了MQ内部,解决 Producer 端的消息发送与本地事务执行的原子性问题。

 

 

执行流程如下:

为方便理解我们还以注册送积分的例子来描述 整个流程。

Producer 即MQ发送方,本例中是用户服务,负责新增用户。MQ订阅方即消息消费方,本例中是积分服务,负责新增积分。

1、Producer 发送事务消息

​ Producer (MQ发送方)发送事务消息至MQ Server,MQ Server将消息状态标记为Prepared(预备状态),注意此时这条消息消费者(MQ订阅方)是无法消费到的。

​ 本例中,Producer 发送 ”增加积分消息“ 到MQ Server。

2、MQ Server回应消息发送成功

​ MQ Server接收到Producer 发送给的消息则回应发送成功表示MQ已接收到消息。

3、Producer 执行本地事务

​ Producer 端执行业务代码逻辑,通过本地数据库事务控制。

​ 本例中,Producer 执行添加用户操作。

4、消息投递

​ 若Producer 本地事务执行成功则自动向MQServer发送commit消息,MQ Server接收到commit消息后将”增加积分消息“ 状态标记为可消费,此时MQ订阅方(积分服务)即正常消费消息;

​ 若Producer 本地事务执行失败则自动向MQServer发送rollback消息,MQ Server接收到rollback消息后 将删除”增加积分消息“ 。

​ MQ订阅方(积分服务)消费消息,消费成功则向MQ回应ack,否则将重复接收消息。这里ack默认自动回应,即程序执行正常则自动回应ack。

5、事务回查

​ 如果执行Producer端本地事务过程中,执行端挂掉,或者超时,MQ Server将会不停的询问同组的其他 Producer来获取事务执行状态,这个过程叫事务回查。MQ Server会根据事务回查结果来决定是否投递消息。

以上主干流程已由RocketMQ实现,对用户侧来说,用户需要分别实现本地事务执行以及本地事务回查方法,因此只需关注本地事务的执行状态即可。

RoacketMQ提供RocketMQLocalTransactionListener接口:

public interface RocketMQLocalTransactionListener {
   /**
   - 发送prepare消息成功此方法被回调,该方法用于执行本地事务
   - @param msg 回传的消息,利用transactionId即可获取到该消息的唯一Id
   - @param arg 调用send方法时传递的参数,当send时候若有额外的参数可以传递到send方法中,这里能获取到
   - @return 返回事务状态,COMMIT:提交  ROLLBACK:回滚  UNKNOW:回调
     */
       RocketMQLocalTransactionState executeLocalTransaction(Message msg, Object arg);
   /**
   - @param msg 通过获取transactionId来判断这条消息的本地事务执行状态
   - @return 返回事务状态,COMMIT:提交  ROLLBACK:回滚  UNKNOW:回调
     */
       RocketMQLocalTransactionState checkLocalTransaction(Message msg);
   }
  • 发送事务消息:

以下是RocketMQ提供用于发送事务消息的API:

TransactionMQProducer producer = new TransactionMQProducer("ProducerGroup");
producer.setNamesrvAddr("127.0.0.1:9876");
producer.start();
//设置TransactionListener实现
producer.setTransactionListener(transactionListener);
//发送事务消息
SendResult sendResult = producer.sendMessageInTransaction(msg, null);

3 RocketMQ实现可靠消息案例

本实例通过RocketMQ中间件实现可靠消息最终一致性分布式事务,模拟两个账户的转账交易过程。

案例内容参见:http://www.pbteach.com/post/java_distribut/subject_dtx-04/

本案例使用了RocketMQ作为消息中间件,RocketMQ主要解决了两个功能:

​ 1、本地事务与消息发送的原子性问题。

​ 2、事务参与方接收消息的可靠性。

4 总结

​ 可靠消息最终一致性事务适合执行周期长且实时性要求不高的场景。引入消息机制后,同步的事务操作变为基于消息执行的异步操作, 避免了分布式事务中的同步阻塞操作的影响,并实现了两个服务的解耦。

分布式事务解决方案(TCC和最终一致性) 分布式事务解决方案探讨-TCC和可靠消息最终一致性方案 阅读详情

相关推荐

Revit Dynamo实战:用Excel数据批量生成桥梁模型(附自适应族技巧)

本文详细介绍了如何利用Revit Dynamo结合Excel数据实现桥梁参数化建模,重点讲解了数据驱动建模、自适应族优化及大型项目性能管理三大核心技巧。通过结构化Excel数据、高级自适应族创建和分块处理策略,显著提升桥梁建模效率与设计变更响应能力。

weixin_42520025的博客 376

分布式事务之通过RocketMQ事务实现可靠消息最终一致性方案

分布式事务之可靠消息实现最终一致性

jikeyeka的博客 2056

Nacos 2.3.2与PostgreSQL的Docker化部署实战

本文详细介绍了Nacos 2.3.2与PostgreSQL的Docker化部署实战,包括环境准备、数据库配置、镜像获取与导入、容器部署及常见问题排查。通过Docker容器化技术,结合PostgreSQL的稳定性和扩展性,为微服务架构提供高效的服务发现和配置管理解决方案。

k5l6m的博客 279

最终一致性分布式事务如何保障实际生产中99.99%高可用

一、写在前面 上一篇文章咱们聊了聊TCC分布式事务,对于常见的微服务系统,大部分接口调用是同步的,也就是一个服务直接调用另外一个服务的接口。 这个时候,用TCC分布式事务方案来保证各个接口的调用,要么一起成功,要么一起回滚,是比较合适的。 但是在实际系统的开发过程中,可能服务间的调用是异步的。 也就是说,一个服务发送一个消息给MQ,即消息中间件,比如Roc...

605

docker部署zabbix6.2.7+grafana

docker部署zabbix6.2.7+grafana。

qq_48391148的博客 3646

半导体测试(一)

探针台是一种用于在晶圆上进行配合探针卡进行电路量测的设备,在测试过程中,探针工作站会将探针与晶圆上的每个die进行接触,以进行电性测量。在这个过程中,每个die都被测试以确保它能基本满足器件的特征或设计规格书(Specification),通常包括电压、电流、时序和功能的验证。晶圆是一个圆形的硅片,在这个半导体的基础之上,建立了许多独立的单个的电路;在所有的die都被探测(Probed)之后,晶圆被切割成独立的dice,这就是常说的die saw,所有被标示为失效的die都被报废,。

m0_37606066的博客 8408

4.7 分布式事务(八)Spring Cloud微服务系统基于Rocketmq可靠消息最终一致性实现分布式事务

安装搭建 Rocketmq 服务器,搭建单机 Rocketmq 服务器可参考笔记:4.1 RocketMQ (一) 安装搭建双主双从同步复制 Rocketmq 服务器可参考笔记:4.2 RocketMQ (二) 双主双从同步复制集群方案基于 Rocketmq 可靠消息的分布式事务方案原理可参考Rocketmq事务消息笔记:4.3 RocketMQ 发送事务消息原理分析和代码实现我们这里直接利用本地已经下载好的一些文件和此前搭建RabbitMQ准备的虚拟机来快速搭建我们项目需要的 Rocketmq 服务器;首

蟑螂恶霸的博客 390

Haystack框架实战:从零构建企业级智能问答系统

自然语言处理(NLP)技术通过让计算机理解和生成人类语言,正在深刻改变信息检索与交互方式。其核心原理在于将文本转化为机器可处理的向量表示,并通过语义相似度计算实现精准匹配。这一技术价值在于能够从海量非结构化数据中快速提取精准信息,大幅提升知识获取效率。在工程实践中,检索增强生成(RAG)架构结合了密集向量检索与大语言模型生成能力,成为构建智能问答、知识库助手等应用的主流方案。该架构通过将用户查询与文档库进行语义匹配,并为大语言模型提供精准上下文,有效提升了回答的准确性与可追溯性。本文以Haystack这一生

weixin_42521032的博客 572

RocketMQ分布式事务解决方案-可靠消息一致性

什么是可靠消息最终一致性 可靠消息最终一致性方案是指当事务发起方执行完成本地事务后并发出一条消息,事务参与方(消息消费者)一定能够接收消息并处理事务成功,此方案强调的是只要消息发给事务参与方最终事务要达到一致。 此方案是利用消息中间件完成,如下图: 事务发起方(消息生产方)将消息发给消息中间件,事务参与方从消息中间件接收消息,事务发起方和消息中间件之间,事务参与方(消息消费方)和消息中间件之间都是...

3897

一文看懂英伟达A100、H100、A800、H800、H20

想要Deepseek私有化部署吗?无论是训练大型AI模型,还是进行高性能计算(HPC),还是Deepseek私有化部署,都需要强大的GPU支持。而英伟达(NVIDIA)作为全球领先的AI芯片制造商,推出了一系列高性能GPU,包括等,广泛应用于AI训练、推理、科学计算等领域。如果想搭建一个属于自己的算力中心,该如何选择合适的GPU?本文将带你详细了解这些GPU的特性,并指导你如何搭建算力中心。一、英伟达算力GPU系列解析1. A100:数据中心AI计算的奠基石:Ampere:6912:432。

【可全包】本人程序员,不需要做任何吹嘘,只是实在写点程序,写点文档,熟悉各类主流框架,SSM,SpringBoot,Flask,Djiango,Mysql,Sqlite,VUE,Uniapp等,各类程序设计专家,优质作者 2万+

vscode的launch:program ‘‘ does not exist

如图 一般是由于launch.json文件没有配置好的缘故。在右下角的ADD configuration如选第二个登录: 看到program这一栏,这一栏很重要,一般是选择你CMakelist,编译出来的可执行文件 看我CMakelist, 我生成的可执行文件是test_,所以路径可以这样输入: 我在之前cmake的时候已经有了test_这个文件了 然后就可以运...

狂小虎/Anthony Dave的博客 KuangXiaoHu's Blogs 5万+

rocketmq怎么保证消息一致性_分布式事务解决方案-RocketMQ实现可靠消息最终一致性...

1.什么是可靠消息最终一致性事务​ 可靠消息最终一致性方案是指当事务发起方执行完成本地事务后并发出一条消息,事务参与方(消息消费者)一定能够接收消息并处理事务成功,此方案强调的是只要消息发给事务参与方最终事务要达到一致。​ 此方案是利用消息中间件完成,如下图:​ 事务发起方(消息生产方)将消息发给消息中间件,事务参与方从消息中间件接收消息,事务发起方和消息中间件之间,事务参与方(消息消费方)和消息...

weixin_42150745的博客 595

SAP S/4HANA 数据 API 化与 MCP 集成全流程实战指南

通过 RAP 发布 OData、利用 Communication Arrangement 打通外网、再在 MCP-server 里封装函数签名,你就能把 S/4HANA 的核心数据安全、标准化地暴露给任意支持 MCP 的大模型。这条链路的每一个环节都由 SAP 与 MCP 社区提供了现成框架,既兼顾了企业合规,也让 LLM 落地更为轻量。期待你在项目里把这些拼图真正串联起来,让业务数据与生成式 AI 碰撞出高价值的火花。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 962

dubbo分布式事务解决方案_分布式事务解决方案-RocketMQ实现可靠消息最终一致性...

1.什么是可靠消息最终一致性事务​ 可靠消息最终一致性方案是指当事务发起方执行完成本地事务后并发出一条消息,事务参与方(消息消费者)一定能够接收消息并处理事务成功,此方案强调的是只要消息发给事务参与方最终事务要达到一致。​ 此方案是利用消息中间件完成,如下图:​ 事务发起方(消息生产方)将消息发给消息中间件,事务参与方从消息中间件接收消息,事务发起方和消息中间件之间,事务参与方(消息消费方)和消息...

weixin_39632212的博客 251

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

分布式事务(4)可靠消息最终一致性

1 可靠消息最终一致性事务的基本概念 2 问题产生分析 2.1 本地事务与消息发送的原子性问题 2.2 事务参与方接收消息的可靠性 2.3 消息重复消费的问题 3 解决方案 3.1 本地消息表方案 3.2 RocketMQ事务消息方案 4 RocketMQ实现可靠消息最终一致性事务 demo 4.1 demo组成说明 4.2 创建数据库 5.3.4.启动RocketMQ 3.3.5 导入distribution-tx 5.3.8 测试场景 4.2 小结 5 可靠消息最终一致性事务应用场景

michael_linux的博客,一个小小小学生。滴水穿石,步步为营,只为那刹那芳华。 1370

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

可靠消息最终一致性【本地消息表、RocketMQ 事务消息方案】

一、可靠消息最终一致性事务概述 可靠消息最终一致性方案是指当事务发起方执行完成本地事务后并发出一条消息,事务参与方(消息消费者)一定能够接收消息并处理事务成功,此方案强调的是只要消息发给事务参与方最终事务要达到一致。 此方案是利用消息中间件完成,如下图: 事务发起方(消息生产方)将消息发给消息中间件,事务参与方从消息中间件接收消息,事务参与方(消息消费方)和消息中间件之间都是通过网络通信,由于网络通信的不确定性会导致分布式事务问题。因此可靠消息最终一致性方案要解决以下几个问题: 【1】本地事务与消息发送

程序猿进阶 1553

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

分布式事务解决方案之可靠消息最终一致性

可靠消息最终一致性方案是指当事务发起方执行完成本地事务后并发出一条消息,事务参与方(消息消费者)一定能 够接收消息并处理事务成功,此方案强调的是只要消息发给事务参与方最终事务要达到一致。此方案是利用消息中间件完成,如下图:\事务发起方(消息生产方)将消息发给消息中间件,事务参与方从消息中间件接收消息,事务发起方和消息中间件 之间,事务参与方(消息消费方)和消息中间件之间都是通过网络通信,由于网络通信的不确定性会导致分布式事 务问题。1.本地事务与消息发送的原子性问题。

LU58542226的博客 762

如何解决微服务下引起的 分布式事务问题

虽然叫分布式事务,但不是一定是分布式部署的服务之间才会产生分布式事务。不是在同一个服务或同一个数据库架构下,产生的事务,也就是分布式事务。跨数据源的分布式事务跨服务的分布式事务。

林夕 1151

分布式事务之最大努力通知和可靠消息最终一致

分布式事务解决方案之可靠消息最终一致性 什么是可靠消息最终一致性事务 解决方案 本地消息表方案 RocketMQ事务消息方案 分布式事务解决方案之最大努力通知 什么是最大努力通知 解决方案 分布式事务对比分析 1.分布式事务解决方案之可靠消息最终一致性 1.1 什么是可靠消息最终一致性事务 可靠消息最终一致性方案是指当事务发起方执行完成本地事务后并..

二手程序员 1283

分布式事务总结

​ 通过上面我们已经学习了CAP理论的相关知识,CAP是一个已经被证实的理论:一个分布式系统最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容忍性(Partition tolerance)这三项中的两项。它可以作为我们进行架构设计、技术选型的考量标准。

lastingboy的博客 2941

消费消息删除_【进阶之路】可靠消息最终一致性解决方案

导言大家好,我是南橘,从接触java到现在也有差不多两年时间了,两年时间,从一名连java有几种数据结构都不懂超级小白,到现在懂了一点点的进阶小白,学到了不少的东西。知识越分享越值钱,我这段时间总结(包括从别的大佬那边学习,引用)了一些平常学习和面试中的重点(自我认为),希望给大家带来一些帮助上一章,讲了分布式系统中的柔性事务解决方案,并且介绍了一下2PC、3PC、与TCC解决方案。这一...

weixin_27230891的博客 144

基于可靠消息确保分布式事务的最终一致性:以电商系统中订单服务的新建订单为例

以电商系统中订单服务的创建订单接口为例,设计了一套基于可靠消息的分布式事务最终一致性方案,所用到的技术栈包括gRPC、RocketMQ、Redis 分布式锁,开发语言为 Golang。具体的功能包括基于 RocketMQ 发送事务消息以确保在分布式事务当中执行订单创建与库存扣减,以及基于 RocketMQ 的延时消息实现订单超时未支付的库存归还。

YGGP的博客 1538

消息队列与分布式事务:探讨不同MQ如何实现可靠消息最终一致性

可靠消息最终一致性方案是指当事务发起方执行完成本地事务后并发出一条消息,事务参与方(消息消费者)一定能够接收消息并处理事务成功,此方案强调的是只要消息发给事务参与方最终事务要达到一致。事务发起方(消息生产方)将消息发给消息中间件,事务参与方从消息中间件接收消息,事务发起方和消息中间件之间,事务参与方(消息消费方)和消息中间件之间都是通过网络通信,由于网络通信的不确定性会导致分布式事务问题。

Apple_Boy的博客 1869

@kafkalistener消费不到消息_分布式事务解决方案之可靠消息最终一致性+最大努力通知...

可靠消息最终一致性此方案利用消息中间件完成,事务发起方(生产者)将消息发给中间件,事务参与方(消费者)从消息中间件中获取消息。事务发起方与中间件,事务参与方与中间件之间都是由网络连接的,由于网络的不确定性,引起了分布式事务问题。因此,消息可靠最终一致性方案需要解决如下问题:本地事务与消息发送的原子性问题:即只要本地事务执行完成,消息到达中间件有一定要完成。事务参与方接受消息可靠性:事务参与者可以从...

weixin_30007303的博客 949

分库分表-分布式事务理论和方案

分布式事务、本地消息表、最大努力通知

qq_28136919的博客 2431

分布式事务实现方案

分布式事务1.基础概念1.1.什么是事务1.2.本地事务1.3.分布式事务1.4 分布式事务产生的场景2.分布式事务基础理论2.1.CAP理论2.1.1.理解CAP2.1.2.CAP组合方式2.1.3 总结2.2.BASE理论3.分布式事务解决方案之2PC(两阶段提交)3.1.什么是2PC3.2.解决方案3.2.1 XA方案3.2.2 Seata方案3.3.seata实现2PC事务3.3.1.业务说明3.3.2.程序组成部分3.3.3.创建数据库3.3.4.启动TC(事务协调器)3.3.5 discover

weixin_44440364的博客 2880
上一篇: rocketmq-spring-boot-starter 2.1.0 事务消息 txProducerGroup 移除解读
下一篇: RocketMQ的事务消息处理【half-message】
OkidoGreen
博客等级 码龄18年 7339粉丝 397原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值