rocketmq的两种消费模型

heyanan heyanan     2022-12-07     395

关键词:

转自:

https://blog.csdn.net/ID__9527/article/details/84255680

RocketMQ是阿里巴巴公司的一个消息队列框架(很多思想借鉴Kafka),对于RocketMQ本身不做过多说明,下面主要说明RocketMQ的两种消费模型。

    消费模型有两种:广播消费消息模型,集群消费消息模型。

    广播消费消息模型,指消费这消费某主题的所有队列的消息,消费组在该消息模型下不起作用,类似JMS的publish/subscribe.

    集群消费消息模型,是指同一个消费组的消费者各自消费某一主题的消费队列的消息,比如有一个主题 topicA,该主题有4个队列(创建主题的时候可以指定该主题的队列的数量),有一个消费组testConsumerGroup,该消费组有四个消费者(四个机器或者四个进程),则四个消费者各自消费一个消息队列。

    情景回顾:在做RocketMQ的监控时,测试消息的消费情况,发现不同消费组,都会消费掉同一条消息,这和我对当时集群消费模型的理解(即:集群模式,消息队列中的消息只能被消费一次)不符。在查阅资料及代码验证后得出结论:

    1. 在Rocket集群消费模式下,(订阅)同一个主题(Topic)下的消息,对于不同的消费组是一种“广播形式”,即每个消费组的都会消费消息。

    2. 在Rocket集群消费模式下,(订阅)同一个主题(Topic)下的消息,对于相同的消费组的消费者而言是一种集群模式,即消费者平分消息并消费。
————————————————
版权声明:本文为CSDN博主「ID__9527」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ID__9527/java/article/details/84255680

rocketmq消息过滤(代码片段)

目录说明生产端消费端说明消息过滤的两种方式:Tag和SQL表达式。生产者:对Message设置Tag、用户属性消费者:subscribe时指定Tag、SQL表达式生产端@TestpublicvoidsendMessage()throwsExceptionDefaultMQProducerdefaultMQProducer=RocketMqU 查看详情

rocketmq消费者监听模型解析——图解源码级解析

查看详情

rocketmq基本概念

#基本概念----##1消息模型(MessageModel)RocketMQ主要由Producer、Broker、Consumer三部分组成,其中Producer负责生产消息,Consumer负责消费消息,Broker负责存储消息。Broker在实际部署过程中对应一台服务器,每个Broker可以存储多个Topic的消... 查看详情

多线程之线程间协作的两种方式:waitnotifynotifyall和condition

Java并发编程:线程间协作的两种方式:wait、notify、notifyAll和Condition  在前面我们将了很多关于同步的问题,然而在现实中,需要线程之间的协作。比如说最经典的生产者-消费者模型:当队列满时,生产者需要等待队列有空间... 查看详情

rocketmq源码(22)—consumemessageorderlyservice顺序消费消息源码(代码片段)

基于RocketMQrelease-4.9.3,深入的介绍了ConsumeMessageOrderlyService顺序消费消息源码。此前我们学习了consumer消息的拉取流程源码:RocketMQ源码(18)—DefaultMQPushConsumer消费者发起拉取消息请求源码RocketMQ源码(19)—Broker处理DefaultMQPushC... 查看详情

rocketmq源码(21)—consumemessageconcurrentlyservice并发消费消息源码(代码片段)

基于RocketMQrelease-4.9.3,深入的介绍了ConsumeMessageConcurrentlyService并发消费消息源码。此前我们学习了consumer消息的拉取流程源码:RocketMQ源码(18)—DefaultMQPushConsumer消费者发起拉取消息请求源码RocketMQ源码(19)—Broker处理DefaultMQ... 查看详情

rocketmq(05)——消息的群集消费和广播消费(代码片段)

消息的群集消费和广播消费RocketMQ的消费者进行消息消费时有两种消费方式,群集消费和广播消费。默认是群集消费。群集消费Consumer都有一个Group,当两个Consumer实例属于同一个Group时,它们会共享消息队列中的消息消费位移,... 查看详情

css的两种盒子模型

     css的两种盒子模型:W3C标准盒子模型、IE盒子模型     两者的相同之处:都包含margin、border、padding、content     两者的不同之处:W3C标准盒子模型的content部分不包含其他... 查看详情

rocketmq(05)——消息的群集消费和广播消费(代码片段)

消息的群集消费和广播消费RocketMQ的消费者进行消息消费时有两种消费方式,群集消费和广播消费。默认是群集消费。群集消费Consumer都有一个Group,当两个Consumer实例属于同一个Group时,它们会共享消息队列中的消息... 查看详情

kafka的两种模式

1:点对点模式2:发布/订阅模式两者的主要区别是:点对点模式:消息队列中的数据被第一个消费者消费完毕后,消息队列会删除该被消费者消费的数据;发布/订阅模式:1:主要有多个topic主题。2... 查看详情

关于生产者与消费者模式的两种实现方式

1、wait&notify方法:publicclassWaitAndNotify{privatefinalintMAX_SIZE=100;privateLinkedList<Object>list=newLinkedList<Object>();publicvoidproduce(intnum){synchronized(list){while(list.size( 查看详情

rocketmq-消费重试机制

介绍:  RocketMQ的消息重试及时分为两种,一种是Producer端重试,一种是Consume端重试。  1、Producer端重试:    1.1消息发没发成功,默认情况下是3次重试。  2、Consumer端重试:    2.1exception的情况,一般重复16次1... 查看详情

rocketmq之消息的生产与消费(代码片段)

基本示例中提供了以下两个功能RocketMQ可用于以三种方式发送消息:可靠的同步、可靠的异步和单向传输。前两种消息类型是可靠的,因为无论它们是否成功发送都有响应。RocketMQ可以用来消费消息。1添加依赖maven:<depen... 查看详情

rocketmq之消息的生产与消费(代码片段)

基本示例中提供了以下两个功能RocketMQ可用于以三种方式发送消息:可靠的同步、可靠的异步和单向传输。前两种消息类型是可靠的,因为无论它们是否成功发送都有响应。RocketMQ可以用来消费消息。1添加依赖maven:<depen... 查看详情

activemq的两种消息模式,主题队列

1、开发的模式流程如下:2、队列模式Queue如果生产者产生了100条消息,那么两个消费同时在的话,会分工合作来接收这100条消息。就是每个消费者接收到50条来处理。3、主题模式topic如果生产者产生了100条消息,消费者在还没有... 查看详情

rocketmq源码阅读----消息消费(普通消息)

RocketMQConsumer消费拉取的消息的方式有两种1.      Push方式:rocketmq已经提供了很全面的实现,consumer通过长轮询拉取消息后回调MessageListener接口实现完成消费,应用系统只要重写MessageListener 的方法完成业务逻辑即... 查看详情

rocketmq消息过滤(代码片段)

...blicvoidsendMessage()throwsExceptionDefaultMQProducerdefaultMQProducer=RocketMqUtil.getDefaultMQProducer();Messagemsg=newMessage(RocketMqUtil.TOPIC,"filter","filter-message-1".getBytes(Charset.forName("UTF-8")));//设置消息的属性msg.putUserProperty("age"... 查看详情

rocketmq消息过滤(代码片段)

...blicvoidsendMessage()throwsExceptionDefaultMQProducerdefaultMQProducer=RocketMqUtil.getDefaultMQProducer();Messagemsg=newMessage(RocketMqUtil.TOPIC,"filter","filter-message-1".getBytes(Charset.forName("UTF-8")));//设置消息的属性msg.putUserProperty("age"... 查看详情