rocketmq消费

 

【PullMessageService 消息拉取】

RocketMQ 通过 PullMessageService 拉取消息。

通过代码段 PullMessageService#run可以看出:

关于PullRequest

PullMessageService 添加 PullRequest 有两种方式:

延时添加

立即添加

---------------------------------------------------------------------

【关于ProcessQueue】

ProcessQueue 是 MessageQueue 在消费端的重现、快照。PullMessageService 从消息服务器默认每次拉取 32 条消息,按消息的队列偏移量顺序存放在 ProcessQueue 中,PullMessageService 再将消息提交到消费者消费线程池。消息消费成功后,从 ProcessQueue 中移除。

 消费流程:

1.拉取消息(PullMessageService,异步线程,消费者->broker(生产者),回调处理,)

从 LinkedBlockingQueue<PullRequest> 队列获取请求数据,那问题是:请求数据怎么进入这个队列的?

2.提交到消费者消费线程池

3.消费消息 监听器-进入业务消费层

消息拉取长轮询机制:

怎么体现:怎么结合pull push优缺点

broker端:处理消费端发送拉取请求,实现长轮询,从存储文件commitlog中获取消息

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值