跳到主要内容

四、RocketMQ源码分析之消息消费概述


1、消息消费概述

  • 消息消费方式
    拉取、推送。
  • 消费者组与消费模式
    多个消费者组成一个消费组,两种模式:集群(消息被其中任何一个消息者消费)、广播模式(全部消费者消费)。
  • ConsumeFromWhere consumeFromWhere
    从何处开始消费,可选值:
    1)CONSUME_FROM_LAST_OFFSET:上一次消费偏移量
    2)CONSUME_FROM_FIRST_OFFSET:从头开始
    3)CONSUME_FROM_TIMESTAMP:从某个时间点开始
  • 消费进度存储
    其实现类为:OffsetStore offsetStore。消费者需要记录消息消费的进度:
    1)广播模式:广播模式由于每个消费者都需要消费消息,故消息的进度(最后消费的偏移量可以保存在本地)。
    2)集群模式:由于集群中的消费者只要一个消费消息即可,故消息的消费进度,需要保存在集中点,故 RocketMQ存储在Broker所在的服务器。

2、消息消费实现

首先看一下消费 Demo。

 

使用推送模式,设置消费者所属组,订阅主题、定义消息消费回调接口,推送消息后消费方具体业务处理,并返回CONSUME_SUCCESS表示消费成功。

消息消费者具体实现类:org.apache.rocketmq.client.impl.consumer.DefaultMQPushConsumerImpl。

2.1 DefaultMQPushConsumerImpl

2.1.1 消费端初始化(构造方法)