检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
实现订阅关系一致 方案概述 订阅关系一致指的是同一个消费组下所有消费者所订阅的Topic、Tag必须完全一致。如果订阅关系不一致,消息消费的逻辑就会混乱,甚至导致消息丢失。 消费原理 RocketMQ为每个Topic划分了消息队列(Queue),队列数越大消费的并发度越大。一个消
通过消息幂等实现消息去重 方案概述 在RocketMQ的业务处理过程中,如果消息重发了多次,消费者端对该重复消息消费多次与消费一次的结果是相同的,多次消费并没有对业务产生负面影响,那么这个消息处理过程是幂等的。消息幂等保证了无论消息被重复投递多少次,最终的处理结果都是一致的,避免了因消息重复而对业务产生影响。
pic下设置不同的标签。标签能够有效保持代码的清晰度和连贯性,并优化RocketMQ提供的查询系统。消费者可以根据Tag实现对不同Topic的不同消费逻辑,实现更好的扩展性。 Topic是消息的一级分类,Tag是消息的二级分类,关系如下图。 应用场景 在实际业务中,通过合理使用T
name_srv:表示实例连接地址和端口。 事务消息生产者需要实现两个回调函数,其中local_execute回调函数在发送完半事务消息后被调用,即上图中的第3阶段,check_callback回调函数在收到回查时调用,即上图中的第6阶段。两个回调函数均可返回3种事务状态: TransactionStatus
}} 事务消息生产者需要实现两个回调函数,其中executeLocalTransaction回调函数在发送完半事务消息后被调用,即上图中的第3阶段,checkLocalTransaction回调函数在收到回查时调用,即上图中的第6阶段。两个回调函数均可返回3种事务状态: LocalTransactionState
topic1:表示Topic名称。 事务消息生产者需要实现两个回调函数,其中ExecuteLocalTransaction回调函数在发送完半事务消息后被调用,即上图中的第3阶段,CheckLocalTransaction回调函数在收到回查时调用,即上图中的第6阶段。两个回调函数均可返回3种事务状态: primitive
批量创建Topic RocketMQ未提供批量创建Topic接口,用户想批量创建Topic时只能手动多次调用接口一个个创建,效率低下。现通过代码实现接口循环调用,可实现批量创建Topic的效果。 前提条件 已获取IAM和RocketMQ服务所在区域的Endpoint地址。 已获取RocketMQ
创建消费组后不能修改关联代理。 最大重试次数 设置普通消费的最大重试次数。 取值范围:1~16 如果是顺序消费,可通过消费者的setMaxReconsumeTimes函数配置。 是否允许以广播模式消费 是否设置为广播消费。 若开启广播消费,每条消息都会被消费组内的所有消费者消费一次。否则,每条消息只会被消费组内的某一消费者消费。
开启RocketMQ ACL访问 通过ACL(Access Control List)可以实现对RocketMQ实例中生产者和消费者身份的精确识别,达到权限管理的目的。开启ACL权限控制功能后,生产消息和消费消息时,需要鉴权。 前提条件 已购买RocketMQ实例。 开启RocketMQ
使用一主两备架构,备节点通过数据同步的方式保持数据一致。当节点故障时,通过Raft协议自动切换主备关系,保持数据强一致性。 数据容灾 通过支持数据多副本方式实现数据容灾。 跨AZ容灾部署架构 跨AZ容灾部署架构仅介绍4.8.0版本,5.x底层的架构不体现,只提供TPS。 4.8.0版本中一个Bro
cketMQ实例不能直接通信,需要打通VPC之间的网络。 客户端连接RocketMQ实例的方式如表1所示。 表1 连接方式说明 连接方式 实现方式 参考文档 公网连接 在RocketMQ控制台开启公网访问,配置弹性公网IP,客户端通过弹性公网IP访问RocketMQ实例。 配置RocketMQ实例的公网访问
AMQP-0-9-1版本:支持。 多租户 支持 支持 支持 多协议支持 兼容RocketMQ协议。 只支持Kafka自定义协议。 RabbitMQ基于AMQP协议实现。 跨语言支持 支持多语言的客户端。 采用Scala和Java编写,支持多种语言的客户端。 支持多种语言的客户端。 流量控制 RocketMQ
构造函数的“enableMsgTrace”参数传入“true”,例如: DefaultMQProducer producer = new DefaultMQProducer("ProducerGroupName", true); 生产者开启消息轨迹(事务消息) 构造函数的“en
通过suspendTimeMillis设置重试时间间隔。 默认值为1000ms,即1s。 通过消费者的setMaxReconsumeTimes函数配置最大重试次数。若未设置参数值,默认为无限重试。 普通消费 重试时间间隔根据重试次数阶梯变化,如表2所示。 创建消费组时设置。 取值范围:1-16。
RocketMQ最佳实践一览表 最佳实践 说明 通过消息幂等实现消息去重 为了防止消息重复消费导致业务处理异常,RocketMQ的消费者在接收到消息后,有必要根据业务上的唯一Key对消息做幂等处理。本章节介绍消息幂等的概念、适用场景以及实施方法。 通过Topic和Tag实现消息分类 在RocketMQ中,T
TTP-PROXY、FILTERSRV_CONSUMER等。这些都是RocketMQ内置的,RocketMQ服务端需要使用这些内置的消费组实现一些特定的功能和机制。 父主题: 消费组问题
服务RocketMQ版来收发消息。 收发消息 收发普通消息 收发顺序消息 收发事务消息 05 实践 您可以通过消息幂等实现消息去重。 实践场景 通过消息幂等实现消息去重 02 购买 您可以根据实际需求在控制台购买不同规格的RocketMQ实例。 购买方式 购买RocketMQ实例
客户端连接RocketMQ实例5.x版本收发定时消息前,需要确保Topic的消息类型为“定时”。 适用场景 定时消息适用于以下场景: 消息对应的业务逻辑有时间窗口要求,如电商交易中超时未支付关闭订单的场景。在订单创建时发送一条定时消息,5分钟以后投递给消费者,消费者收到此消息后需要判断对应订单是否完
客户端连接RocketMQ实例5.x版本收发定时消息前,需要确保Topic的消息类型为“定时”。 适用场景 定时消息适用于以下场景: 消息对应的业务逻辑有时间窗口要求,如电商交易中超时未支付关闭订单的场景。在订单创建时发送一条定时消息,5分钟以后投递给消费者,消费者收到此消息后需要判断对应订单是否完
客户端连接RocketMQ实例5.x版本收发定时消息前,需要确保Topic的消息类型为“定时”。 适用场景 定时消息适用于以下场景: 消息对应的业务逻辑有时间窗口要求,如电商交易中超时未支付关闭订单的场景。在订单创建时发送一条定时消息,5分钟以后投递给消费者,消费者收到此消息后需要判断对应订单是否完