检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
实现订阅关系一致 方案概述 订阅关系一致指的是同一个消费组下所有消费者所订阅的Topic、Tag必须完全一致。如果订阅关系不一致,消息消费的逻辑就会混乱,甚至导致消息丢失。 消费原理 RocketMQ为每个Topic划分了消息队列(Queue),队列数越大消费的并发度越大。一个消
通过消息幂等实现消息去重 方案概述 在RocketMQ的业务处理过程中,如果消息重发了多次,消费者端对该重复消息消费多次与消费一次的结果是相同的,多次消费并没有对业务产生负面影响,那么这个消息处理过程是幂等的。消息幂等保证了无论消息被重复投递多少次,最终的处理结果都是一致的,避免了因消息重复而对业务产生影响。
pic下设置不同的标签。标签能够有效保持代码的清晰度和连贯性,并优化RocketMQ提供的查询系统。消费者可以根据Tag实现对不同Topic的不同消费逻辑,实现更好的扩展性。 Topic是消息的一级分类,Tag是消息的二级分类,关系如下图。 应用场景 在实际业务中,通过合理使用T
收发普通消息前,请参考收集连接信息收集RocketMQ所需的连接信息。 准备环境 在命令行输入python,检查是否已安装Python。得到如下回显,说明Python已安装。 Python 3.7.1 (default, Jul 5 2020, 14:37:24) [GCC 4.8.5
} } 异步发送 异步发送是指消息发送方发出一条消息后,不等服务端返回响应,接着发送下一条消息的通讯方式。 使用异步发送需要客户端实现异步发送回调接口(SendCallback)。即消息发送方在发送了一条消息后,不需要等待服务端响应接着发送第二条消息。发送方通过回调接口接收服务端响应,并处理响应结果。
收发普通消息前,请参考收集连接信息收集RocketMQ所需的连接信息。 准备环境 执行以下命令,检查是否已安装Go。 go version 返回如下回显时,说明Go已经安装。 go version go1.16.5 linux/amd64 如果未安装Go,请下载并安装。 进入Go脚本所在的bin目录下。
x版本收发普通消息前,需要确保Topic的消息类型为“普通”。 准备环境 执行以下命令,检查是否已安装Go。 go version 返回如下回显时,说明Go已经安装。 go version go1.16.5 linux/amd64 如果未安装Go,请下载并安装。 在“go.mod”中增加以下代码,添加依赖。
收发事务消息前,请参考收集连接信息收集RocketMQ所需的连接信息。 准备环境 执行以下命令,检查是否已安装Go。 go version 返回如下回显时,说明Go已经安装。 go version go1.16.5 linux/amd64 如果未安装Go,请下载并安装。 进入Go脚本所在的bin目录下。
在消费代码中设置,顺序消费消息的代码与普通消费的代码相同。 准备环境 执行以下命令,检查是否已安装Go。 go version 返回如下回显时,说明Go已经安装。 go version go1.16.5 linux/amd64 如果未安装Go,请下载并安装。 在“go.mod”中增加以下代码,添加依赖。
收发顺序消息前,请参考收集连接信息收集RocketMQ所需的连接信息。 准备环境 执行以下命令,检查是否已安装Go。 go version 返回如下回显时,说明Go已经安装。 go version go1.16.5 linux/amd64 如果未安装Go,请下载并安装。 进入Go脚本所在的bin目录下。
定时消息将占用普通消息约3倍的存储空间,大量使用定时消息时需要注意存储空间占用。 准备环境 执行以下命令,检查是否已安装Go。 go version 返回如下回显时,说明Go已经安装。 go version go1.16.5 linux/amd64 如果未安装Go,请下载并安装。 进入Go脚本所在的bin目录下。
x版本收发事务消息前,需要确保Topic的消息类型为“事务”。 准备环境 执行以下命令,检查是否已安装Go。 go version 返回如下回显时,说明Go已经安装。 go version go1.16.5 linux/amd64 如果未安装Go,请下载并安装。 在“go.mod”中增加以下代码,添加依赖。
printf("%s%n", sendResult); producer.shutdown(); }} 事务消息生产者需要实现两个回调函数,其中executeLocalTransaction回调函数在发送完半事务消息后被调用,即上图中的第3阶段,checkLoca
topic:表示Topic名称。 gid:表示生产者组名称,请根据业务实际情况输入生产者组名称。 name_srv:表示实例连接地址和端口。 事务消息生产者需要实现两个回调函数,其中local_execute回调函数在发送完半事务消息后被调用,即上图中的第3阶段,check_callback回调函数在
开启RocketMQ ACL访问 通过ACL(Access Control List)可以实现对RocketMQ实例中生产者和消费者身份的精确识别,达到权限管理的目的。开启ACL权限控制功能后,生产消息和消费消息时,需要鉴权。 约束与限制 仅2021年8月21号后购买的实例,支持设置ACL访问控制。
TTP-PROXY、FILTERSRV_CONSUMER等。这些都是RocketMQ内置的,RocketMQ服务端需要使用这些内置的消费组实现一些特定的功能和机制。 父主题: 消费组问题
AMQP-0-9-1版本:支持。 多租户 支持 支持 支持 多协议支持 兼容RocketMQ协议。 只支持Kafka自定义协议。 RabbitMQ基于AMQP协议实现。 跨语言支持 支持多语言的客户端。 采用Scala和Java编写,支持多种语言的客户端。 支持多种语言的客户端。 流量控制 RocketMQ
批量创建Topic RocketMQ未提供批量创建Topic接口,用户想批量创建Topic时只能手动多次调用接口一个个创建,效率低下。现通过代码实现接口循环调用,可实现批量创建Topic的效果。 前提条件 已获取IAM和RocketMQ服务所在区域的Endpoint地址。 已获取RocketMQ
RocketMQ最佳实践一览表 最佳实践 说明 通过消息幂等实现消息去重 为了防止消息重复消费导致业务处理异常,RocketMQ的消费者在接收到消息后,有必要根据业务上的唯一Key对消息做幂等处理。本章节介绍消息幂等的概念、适用场景以及实施方法。 通过Topic和Tag实现消息分类 在RocketMQ中,T
使用一主两备架构,备节点通过数据同步的方式保持数据一致。当节点故障时,通过Raft协议自动切换主备关系,保持数据强一致性。 数据容灾 通过支持数据多副本方式实现数据容灾。 跨AZ容灾部署架构 跨AZ容灾部署架构仅介绍4.8.0版本,5.x底层的架构不体现,只提供TPS。 4.8.0版本中一个Bro