检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
统的设计阶段梳理业务逻辑的消费耗时和设置消费并发度。 梳理消费耗时 通过压测获取消息的消费耗时,并对耗时较高的操作代码逻辑进行分析和优化。梳理消息的消费耗时需要注意以下几点: 消息消费逻辑的计算复杂度是否过高,代码是否存在复杂的递归和循环处理。 消息消费逻辑中的I/O操作是否是必须,是否可以使用本地缓存等方案规避。
name_srv:表示实例连接地址和端口。 事务消息生产者需要实现两个回调函数,其中local_execute回调函数在发送完半事务消息后被调用,即上图中的第3阶段,check_callback回调函数在收到回查时调用,即上图中的第6阶段。两个回调函数均可返回3种事务状态: TransactionStatus
}} 事务消息生产者需要实现两个回调函数,其中executeLocalTransaction回调函数在发送完半事务消息后被调用,即上图中的第3阶段,checkLocalTransaction回调函数在收到回查时调用,即上图中的第6阶段。两个回调函数均可返回3种事务状态: LocalTransactionState
费者进行消费。 发送定时消息前,请参考收集连接信息收集RocketMQ所需的连接信息。 适用场景 定时消息适用于以下场景: 消息对应的业务逻辑有时间窗口要求,如电商交易中超时未支付关闭订单的场景。在订单创建时发送一条定时消息,5分钟以后投递给消费者,消费者收到此消息后需要判断对应
topic1:表示Topic名称。 事务消息生产者需要实现两个回调函数,其中ExecuteLocalTransaction回调函数在发送完半事务消息后被调用,即上图中的第3阶段,CheckLocalTransaction回调函数在收到回查时调用,即上图中的第6阶段。两个回调函数均可返回3种事务状态: primitive
根据消息优先级判断:在业务中紧急程度高和紧急程度一般的消息用不同的Topic来区分,方便后续业务处理。 根据业务关联性判断:业务逻辑上不相关的消息用不同Topic来区分,业务逻辑上强关联的消息发送到同一Topic下,并用Tag进行子类型或流程先后关系的区分。 实施方法 以物流运输场景为例,普通
实现订阅关系一致 方案概述 订阅关系一致指的是同一个消费组下所有消费者所订阅的Topic、Tag必须完全一致。如果订阅关系不一致,消息消费的逻辑就会混乱,甚至导致消息丢失。 消费原理 RocketMQ为每个Topic划分了消息队列(Queue),队列数越大消费的并发度越大。一个消费
客户端连接RocketMQ实例5.x版本收发定时消息前,需要确保Topic的消息类型为“定时”。 适用场景 定时消息适用于以下场景: 消息对应的业务逻辑有时间窗口要求,如电商交易中超时未支付关闭订单的场景。在订单创建时发送一条定时消息,5分钟以后投递给消费者,消费者收到此消息后需要判断对应
收发事务消息 分布式消息服务RocketMQ版的事务消息支持在业务逻辑与发送消息之间提供事务保证,通过两阶段的方式提供对事务消息的支持,事务消息交互流程如图1所示。 图1 事务消息交互流程 事务消息生产者首先发送半消息,然后执行本地事务。如果执行成功,则发送事务提交,否则发送事务
收发事务消息 分布式消息服务RocketMQ版的事务消息支持在业务逻辑与发送消息之间提供事务保证,通过两阶段的方式提供对事务消息的支持,事务消息交互流程如图1所示。 图1 事务消息交互流程 事务消息生产者首先发送半消息,然后执行本地事务。如果执行成功,则发送事务提交,否则发送事务
为“定时”。 RocketMQ TCP协议的Python SDK只支持Linux系统。 适用场景 定时消息适用于以下场景: 消息对应的业务逻辑有时间窗口要求,如电商交易中超时未支付关闭订单的场景。在订单创建时发送一条定时消息,5分钟以后投递给消费者,消费者收到此消息后需要判断对应
生产者发送消息时,消息已经设置了唯一的Key,在消费者消费消息时,可以根据消息的Key进行幂等处理。消费者通过getKeys()能够读取到消息的唯一标识(如订单号等),业务逻辑围绕该唯一标识进行幂等处理即可。
创建消费组后不能修改关联代理。 最大重试次数 设置普通消费的最大重试次数。 取值范围:1~16 如果是顺序消费,可通过消费者的setMaxReconsumeTimes函数配置。 是否允许以广播模式消费 是否设置为广播消费。 若开启广播消费,每条消息都会被消费组内的所有消费者消费一次。否则,每条消息只会被消费组内的某一消费者消费。
RocketMQ相关概念 主题(Topic) 消息关联的基础逻辑单元。消息生产与消费时的基础单位。 队列(Queue) 一个主题由多个队列组成。队列数越大消费的并发度越大。 生产者(Producer) 消息写入的触发者,负责将消息推送到服务端。 生产者组(Producer Group)
序设计的更接近特定客户的要求,或满足不同地区的法律或其他要求。 可用区:一个可用区是一个或多个物理数据中心的集合,有独立的风火水电,AZ内逻辑上再将计算、网络、存储等资源划分成多个集群。一个Region中的多个AZ间通过高速光纤相连,以满足用户跨AZ构建高可用性系统的需求。 项目
通过suspendTimeMillis设置重试时间间隔。 默认值为1000ms,即1s。 通过消费者的setMaxReconsumeTimes函数配置最大重试次数。若未设置参数值,默认为无限重试。 普通消费 重试时间间隔根据重试次数阶梯变化,如表2所示。 创建消费组时设置。 取值范围:1-16。
使用控制台连接RocketMQ 本章节介绍RocketMQ实例如何在控制台生产消息。此功能通过将指定消息发送给RocketMQ实例,验证业务逻辑是否正常。 前提条件 已存在“运行中”的RocketMQ实例。 已创建Topic,且Topic具有发布权限。 使用控制台连接RocketMQ生产消息
而Tag可以理解为是二级分类。本章节介绍如何搭配使用Topic和Tag来实现消息过滤。 实现订阅关系一致 订阅关系不一致,可能导致消息消费逻辑混乱,消息被重复消费或遗漏。本章节介绍订阅关系一致的概念、原理以及实施方法。 消息堆积处理建议 本章节介绍出现消息堆积的主要原因和实施方法。
如果客户端和RocketMQ实例部署在同一个VPC内,网络默认互通。 如果客户端和RocketMQ实例部署在不同VPC中,由于VPC之间逻辑隔离,客户端和RocketMQ实例不能直接通信,需要打通VPC之间的网络。 客户端连接RocketMQ实例的方式如表1所示。 表1 连接方式说明
构造函数的“enableMsgTrace”参数传入“true”,例如: DefaultMQProducer producer = new DefaultMQProducer("ProducerGroupName", true); 生产者开启消息轨迹(事务消息) 构造函数的“en