RocketMQ(11)——消费者拉模式和推模式
Posted elim168
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RocketMQ(11)——消费者拉模式和推模式相关的知识,希望对你有一定的参考价值。
消费者拉模式和推模式
RocketMQ提供了两种消息的消费模式,拉模式和推模式。我们先来看一下拉模式消费的应用。
拉模式消费
拉模式消费使用的是DefaultMQPullConsumer,核心逻辑是先拿到需要获取消息的Topic对应的队列,然后依次从队列中拉取可用的消息。拉取了消息后就可以进行处理,处理完了需要更新消息队列的消费位置。下面代码就演示了使用DefaultMQPullConsumer拉取消息进行消费的示例。核心方法就是调用consumer的pull()
拉取消息。该示例中使用的是同步拉取,即需要等待Broker响应后才能继续往下执行。如果有需要也可以使用提供了PullCallback
的重载方法。同步的pull()
返回的是PullResult对象,其中的状态码有四种状态,可以看到示例代码中分别对四种状态进行了不同的处理。只有状态为FOUND才表示拉取到了消息,此时可以进行消费。消费完了需要调用updateConsumeOffset()
更新消息队列的消费位置,这样下次通过fetchConsumeOffset()
获取消费位置时才能获取到正确的位置。如果有需要,用户也可以自己管理消息的消费位置。
@Test
public void testPullConsumer(
以上是关于RocketMQ(11)——消费者拉模式和推模式的主要内容,如果未能解决你的问题,请参考以下文章
深度挖掘 RocketMQ底层源码「底层源码挖掘系列」透彻剖析贯穿RocketMQ的消费者端的运行核心的流程(Pull模式-上)
深度挖掘RocketMQ底层源码「底层源码挖掘系列」透彻剖析贯穿RocketMQ的消费者端的运行调度的流程(Pull模式)