赞
踩
RocketMQ客户端中有两个独立的消费者实现类分别为DefaultMQPullConsumer和DefaultMQPushConsumer,
DefaultMQPullConsumer,该消费者使用时需要用户主动从Broker中Pull消息和消费消息,提交消费位点
registerMessageQueueListener():注册队列变化监听器,当队列发生变化是会被监听到
pull():从Broker中Pull消息,如果有PullCallback参数,则表示异步拉取
pullBlockIfNotFound():长轮询方式拉取,如果没有拉取到消息,那么Broker会讲请求Hold住一段时间,
当有消息来临时再发送pull请求
updateConsumeOffset():更新某一个Queue的消费位点
fetchConsumeOffset():查找某个Queue的消费位点
sendMessageBack():如果消费发送失败,则可以讲消息重新发回Broker,这个消费者组延迟一段时间后可以再消费(也就是重试)
fetchSubscribeMessageQueues():获取一个Topic的全部Queue信息
2.检查消费者的配置比,如消费者组名、消费类型、Queue的分配策略等参数是否符合规范,将订阅关系数据发给Rebalance服务对象
3.校验消费者实例名,如果时默认的名字,则更改为当前的程序进程id
4.获取一个MQClientInstance,如果MQClientInstance已经初始化,则直接返回初始化的实例。这是核心对象,每个ClientID缓存一个实例
5.设置Rebalance对象消费组、消费类型、Queue分配策略、MQClientInstance等参数
6.对BrokerAPI的封装类pullAPIWrapper进行初始化,同时注册消息,过滤filter
7.初始化位点管理器并加载位点信息,位点管理器分为本地管理和远程管理,集群消费时
消费位点保存在Broker中,由远程管理器管理,广播消息时位点在本地,由本地管理其管理
8.本地注册消费者实例,如果注册成功,则表示消费者启动成功
大部分属性、方法和DefaultMQPullConsumer是一样的
消费服务分为两种,即并行消费服务和顺序消费服务,对应的实现类分别是
ConsumeMessageConcurrentlyService和ConsumeMessageOrderlyService
根据用户监听器继承的不同接口初始化不同的消费服务程序
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。