RocketMQ--PushConsumer消费模式-广播模式

本文介绍了RocketMQ的PushConsumer消费模式中的广播模式,该模式允许消息被集群中的所有消费者实例消费,解决了不同Tag消息对应消费的问题。在代码示例中展示了如何配置广播模式并实现特定Tag消息的处理,同时指出广播模式可能存在冗余发送的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

RocketMQ–PushConsumer消费模式-广播模式

image-20201023054907662

广播模式可以解决集群模式不同消费端对不同Tag消息的对应消费

MessageModel.BROADCASTING

consumer.setMessageModel(MessageModel.BROADCASTING)

会有冗余发送

					String tags = msg.getTags();
					if(tags.equals("TagB")) {
						System.out.println("收到消息:" + "  topic :" + topic + "  ,tags : " + tags + " ,msg : " + msgBody);
					}

把消息投递到指定队列里面,消费者只消费指定队列

image-20201023060419377

修正

image-20201023060252682

### RocketMQ 消费模型详解 #### 点对点消费模型 在 RocketMQ 的基本消息传递模式中,存在一种称为点对点(P2P)的消费模型。此模型确保每条消息仅由单个消费者接收并处理,在需要严格的一次性处理的应用场合下尤为适用[^1]。 #### 广播消费模型 除了 P2P 外,另一种常见的消费方式为广播(Broadcast),即同属一个 Consumer Group 下的所有实例都会各自独立接收到全部的消息副本,这有助于实现多活架构下的数据同步需求[^2]。 #### 消费者分组机制 RocketMQ 使用消费者分组(Consumer Group)来管理和协调多个消费者的协作关系。当一组内的成员数量超过主题分区数目时,则会形成动态分配策略;反之则采取静态均摊的方式完成任务调度工作,从而保障整体系统的高效稳定运行。 #### 偏移量管理 (Offset Management) 对于分布式环境中保持状态一致性至关重要的是偏移量(offsets)的概念——它记录着已读取到的位置信息以便后续追踪未确认提交的数据项。借助于这一特性,即使面对网络波动或是节点故障等情况也能做到无缝衔接而不至于遗漏任何重要通知[^4]。 ```python from rocketmq.client import PushConsumer, ConsumeStatus def callback(msg): print(f"Received message: {msg.body.decode('utf-8')}") return ConsumeStatus.CONSUME_SUCCESS consumer = PushConsumer("example_group") # 创建一个新的PushConsumer对象,并指定所属group名称 consumer.subscribe("TopicTest", "*") # 订阅特定topic及其过滤表达式(此处表示匹配所有tag) consumer.register_message_listener(callback)# 注册监听器函数用于实际业务逻辑处理过程之中 consumer.start() # 启动服务端口等待来自broker的通知推送过来即可 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值