rocketmq源码-consumer启动

前言

这篇笔记记录consumer启动的逻辑
consumer主要是负责去broker中拉取消息,然后将拉取到的消息,交给消费者去处理
consumer本质上也是一个netty客户端,所以,在启动的时候,和producer有很多相似的点,但是有1个区别点:
1、producer的负载均衡是在真正去发送消息的时候,通过轮询的方式,选择其中的一个messageQueue;但是consumer是在启动的时候,通过负载均衡策略去分配consumerQueue

相同点:
1、producer和consumer对于broker来说,都说客户端,所以在启动时,都会启动nettyClient,nettyClient负责向broker发送消息、发送拉取消息的请求

源码

consumer的启动,入口层代码也是比较简单的,如图1所示

  1. 需要初始化一个consumer对象,这里的consumer对象和consumerGroup是存在一个映射关系的
  2. 然后订阅对应的topic即可,这里在订阅topic的时候,同时会把subExpression的信息存入到内存中,方便在后面接收到消息之后进行过滤
  3. 接着注册回调方法,这里的回调方法是真正处理消息的代码
  4. 然后调用start()方法启动即可

图1:图1

在其start()方法中,我们只关心消费者启动的代码,消息轨迹相关的࿰

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值