除了 Properties,我们使用最多的就是 Consumer 定义的 API 以及它的实现类 KafkaConsumer,分为以下几类

    API 类别 接口名 说明
    元数据 assignment 获取该消费者分配的分区信息
    Set subscription() 该消费者消费的主题名称
    void subscribe(Collection) 订阅主题
    subscribe(Collection, ConsumerRebalanceListener callback) 当消费者订阅的主题发生变化时,就会回调相关方法。我们可以在回调中处理 offset,比如将它们持久化至 Kafka 或其它存储层中。
    assign(Collection) 手动指定消费分区
    unsubscribe()
    拉取数据 poll(Duration) 从相关 Broker 端拉取数据。如果数据已就绪,则会立即返回,否则会等待直到超时。
    提交位移 commitSync() 同步提交最近一次 poll() 操作的位移。与主题和分区相关。如果超过 default.api.timeout.ms,则会抛出 TimeoutException 异常。
    commitAsync() 异步提交所有主题位移
    commitAsync(OffsetCommitCallback) 异步提交位移,并有回调方法。如果出现异常,会传递给回调方法,或者被丢弃。
    设置初始位移 seek(TopicPartition, long)
    seekToBeginning
    seekToEnd
    下次 poll() 操作所用到的位移,注意,可能会导致数据丢失
    获取分区下一条待写入消息位移 position(TopicPartition) 获取某分区下一条写入的位移值
    获取分区提交位移 committed(Set) 获取最后一次向给定分区提交的位移。
    metrics 获取消费者监控指标
    partitionsFor(String) 获取给定主题的元数据信息
    listTopics() 获取主题
    Set paused 获取以前调用 pause(Collection) 暂停的分区集合
    pause(Collection)
    resume(Collection) 重新开启被暂停使用的分区集合
    offsetsForTimes(Map) 根据时间戳获取对应的偏移量
    beginningOffsets(Collection)
    endOffsets(Collection)
    ConsumerGroupMetadata groupMetadata() 获取消费者组元数据信息
    enforceRebalance() 强制消费者组开启重平衡
    close(Duration) 关闭消费者
    wakeup() 中断 NIO 的 poll 方法,