博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
RocketMq 消费消息的两种方式 pull 和 push
阅读量:758 次
发布时间:2019-03-23

本文共 486 字,大约阅读时间需要 1 分钟。

在RocketMQ中一般有两种获取消息的方式,一个是拉(pull,消费者主动去broker拉取),一个是推(push,主动推送给消费者)

区别是:

push方式里,consumer把轮询过程封装了,并注册MessageListener监听器,取到消息后,唤醒MessageListener的consumeMessage()来消费,对用户而言,感觉消息是被推送过来的。

pull方式里,取消息的过程需要用户自己写,首先通过打算消费的Topic拿到MessageQueue的集合,遍历MessageQueue集合,然后针对每个MessageQueue批量取消息,一次取完后,记录该队列下一次要取的开始offset,直到取完了,再换另一个MessageQueue。

从下面这张简单的示意图也可以大致看出其中的差别,相当于是说,push的方式是:消息发送到broker后,如果是push,则broker会主动把消息推送给consumer即topic中,而pull的方式是:消息投递到broker后,消费端需要主动去broker上拉消息,即需要手动写代码实现,

在这里插入图片描述

两种方式的优缺点对比

转载地址:http://fmozk.baihongyu.com/

你可能感兴趣的文章