RocketMQ原理解析-consumer 1.启动

http://blog.csdn.net/quhongwei_zhanqiu/article/details/39142653


有别于其他消息中间件由broker做负载均衡并主动向consumer投递消息,RocketMq是基于拉模式拉取消息,consumer做负载均衡并通过长轮询向broker拉消息。

 

Consumer消费拉取的消息的方式有两种

1.      Push方式:rocketmq已经提供了很全面的实现,consumer通过长轮询拉取消息后回调MessageListener接口实现完成消费,应用系统只要MessageListener完成业务逻辑即可

2.      Pull方式:完全由业务系统去控制,定时拉取消息,指定队列消费等等,当然这里需要业务系统去根据自己的业务需求去实现

 

下面介绍默认以push方式为主,因为绝大多数是由push消费方式来使用rocketmq的。


consumer启动流程

指定group

订阅topic

注册消息监听处理器,当消息到来时消费消息

消费端Start

         复制订阅关系

         初始化rebalance变量

         构建offsetStore消费进度存储对象

         启动消费消息服务

         向mqClientFactory注册本消费者

         启动client端远程通信

         启动定时任务

                   定时获取nameserver地址

                   定时从nameserver获取topic路由信息

                   定时清理下线的borker

                   定时向所有broker发送心跳信息,(包括订阅关系)

                   定时持久化Consumer消费进度(广播存储到本地,集群存储到Broker)

                   统计信息打点

                   动态调整消费线程池

         启动拉消息服务PullMessageService

         启动消费端负载均衡服务RebalanceService

         从namesrv更新topic路由信息

         向所有broker发送心跳信息,(包括订阅关系)

         唤醒Rebalance服务线程



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值