ROCKETMQ概念模型

PRODUCER、CONSUMER、BROKRE、TOPIC、QUENE基本概念关系:

总结如下:

1、producer和topic关系(多对多)

producer group可以包含多个逻辑相同或相似的producer,一个producer可以向单个或多个topic发送消息,同一个group下的不同producer也可以向不同的topic发送消息。

2、consumer和topic关系(多对多)

consumer group包含多个逻辑相同的consumer,一个consumer可以订阅多个topic,但同一个group下的不同consumer订阅不同的topic会出现问题,因订阅信息不一致,导致部分queue没有订阅这订阅。另外同一consumer可以配置线程池,提升吞吐量。

3、broker和topic关系(多对多)

broker group由相同name的一个master和多个slave组成,一个broker group可以提供多个topic服务,同一个topic也可以分布到多个broker group上,又称topic分片。不同broker上的相同topic可以不同配置 ,如不同的queue数量。

4、topic、queue、tag关系(一对多)

一个topic可以设置多个queue,相当一个topic横向切分。可以为topic设置tag,进一步细分topic,相当于对topic的纵向切分。同一个queue只能被相同group下的某一个consumer消费。

5、 message

消费模型包括:广播消费和集群消费。 消费顺序包括:顺序消费和并发消费,顺序消费最大的并发量是queue的数量,而并发消费依赖于客户端线程池设定。

Broker:

Broker角色:ASYNC_MASTER、SYNC_MASTER、SLAVE。若不容许消息丢失,则需要部署Master为SYNC_MASTER,且至少部署一台SLAVE。若可以允许消息丢失,可以部署Master为ASYNC_MASTER,可部署也可不部署SLAVE。

刷盘方式:异步刷盘和同步刷盘,一般用异步刷盘,否则性能损耗很多。可通过SYNC_MASTER+SLAVE来保证可靠性。

参考博文:

https://blog.youkuaiyun.com/binzhaomobile/article/details/73332463

https://blog.youkuaiyun.com/a417930422

转载于:https://my.oschina.net/arvinzhao/blog/1783815

### 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、付费专栏及课程。

余额充值