# 概念

  • 消费者和消费者组
  • 再均衡,分区的所有权从一个消费者转移到另一个消费者

# 创建消费者

# 必要配置

  • bootstrap.servers
  • key.serializer
  • value.serializer

# 订阅主题

参数为主题列表或正则表达式

# 轮询

  • 群组协调
  • 分区再均衡
  • 发送心跳
  • 获取数据

# 其他配置

  • fetch.min.bytes
  • fetch.max.wait.ms
  • max.partition.fetch.bytes
  • session.timeout.ms
  • auto.timeout.ms
  • enable.auto.commit
  • partition.assignment.strategy
  • client.id
  • max.poll.records
  • receive.buffer.bytes、send.buffer.bytes

# 提交和偏移量

提交:更新分区当前位置
提交方式:
* 自动提交
* 提交当前偏移量
* 异步提交
* 同步和异步组合提交
* 提交特定的偏移量

# 再均衡监听器

ConsumerRebalanceListener

  • onPartitionRevoked
  • onPartitionsAssigned

# 从特定偏移量消费

  • seekToBeginning
  • seekToEnd
  • seek

# 如何退出

consumer.wakeup()

# 反序列化器

  • 自定义反序列化器
  • Avro 反序列化

# 独立消费者

不需要加入消费者群组,为自己分配分区,consumer.assign (partitions)