kafka的消费入门

2023-06-12 23:09:38 浏览数 (1)

基本概念

  • Topic 主题
  • 消费组 (一个topic可以有多个topic)
  • 消费者(一个消费者必须属于一个消费组,一个topic可以有多个消费者)

分区

  • 消费者的分区消息,是可以自己选择的,有分区器

消费的必要处理

  • broker的ip和端口列表
  • 消费组名称
  • topic名称
  • 序列化方式

消费者对象的属性

  • Topic
  • Partition
  • Offset
  • TimestampType(创建时间,追加日志的时间)
  • serializedKeySize
  • serializedValueSize
  • Headers
  • Key
  • Value
  • Checksum

消费者poll做的事情

  • offset位移提交
    • 分区中的offset
    • 消费中的offset
  • 消费者的位移存储在__consumer_offsets中
  • 也可以指定位移消费
  • 自动提交要解决的问题
    • 重复消费(手动提交处理)
    • 消息丢失(手动提交处理)
  • kafka的再均衡
    • 问题:再均衡期间,消费者无法读取到消息(可能会发生重复消费)
  • 消费者拦截器拦截三种行为
    • onConsum
    • onCommit
    • close
  • 消费者类KafkaConsumer是非线程安全的
    • 多线程处理
      • 每个线程一个KafkaConsumer实例
      • 多个消费者线程消费同一个分区
      • 一个消费者,多线程处理消息
  • 重要的参数
    • fetch.min(max).bytes一次拉取的消息的数量
    • fetch.max.wait.ms消息时间
    • max.partition.fetch.byts每个分区返回给consumer最大数据
    • max.pool.records最大小橡树

0 人点赞