RocketMQ消费模式:DefaultMQPushConsumer与DefaultLitePullConsumerImpl

DefaultMQPushConsumer

DefaultMQPushConsumer在前面的章节中已经学习,由此我们知道:DefaultMQPushConsumer内部自动commit offset,无法手动commit offset,消费到的消息主动推送到Consumer的listener进行业务逻辑处理。

DefaultLitePullConsumerImpl

DefaultLitePullConsumerImpl允许设置是否需要自动commit offset(默认自动),DefaultLitePullConsumerImpl消费到的消息缓存在内存中,Conumser需要主动通过poll从内存中获取消息,进行业务处理。

DefaultLitePullConsumerImpl工作过程

DefaultLitePullConsumerImpl工作过程基本与DefaultMQPushConsumer过程相似。
在这里插入图片描述
通过定时任务进行消息的拉取
在这里插入图片描述
PullTaskImpl拉取到消息后,封装成ConsumeRequest
在这里插入图片描述
直接放入到本地内存缓存consumeRequestCache(类型为BlockingQueue)中
在这里插入图片描述
这里由于使用了内存进行消息的缓存,所以PullTaskImpl在定时拉取消息时会对当前缓存的消息数量进行判断,如果缓存数量过大(默认最大缓存10000条),则暂停消息拉取
在这里插入图片描述

Push与Pull模式比较

1、Push模式自由可控性不高,几乎近实时的拉取消息,拉取到消息马上推送lisener进行业务处理。
2、Pull模式自由可控性高,可以自主决定何时提交offset,何时进行消息拉取以及可等到大批量消息时再处理。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乐观男孩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值