Kafka运行流程整理

  • 1、Kafka的组成分为生产者、broker、消费者
  • 2、kafka解决的问题:解耦、削峰
  • 3、一个topic下有多个partition,一个partition下有主从副本,副本位于不同的机器当中,partition中有多个message,massage由多个offset组成
  • 4、数据运行流程:
    • 生产者:

      • 1、生产者生产数据,然后从ZK中获取leader信息,发送到leader中(写到log、logindex、timeindex),leader同步数据到follower,kafka采用所有副本同步成功算成功机制
      • 2、kafka采用Isr机制保证实时检测状态健康的follower(解决有的副本机器长时间等待,导致不能给生产者响应ack)
      • 3、kafka采用高水位线机制保证数据安全(通过水位线记录数据同步最找的机器的位置,如果服务产生故障,将会删除所有机器中高于水位线的数据,从最低水位线位置开始同步数据)
      • 5、所有数据同步完成后,会发送ack给leader。leader再响应给producer
      • 6、ack的状态:0:不进行确认 1:leader确认成功 -1:所有副本同步
      • 7、使用ack为-1状态时,会造成数据重复写入,采用幂等性策略解决问题(producer会将pid+sequence的组合信息发送给broker,然后保存到partition,如果发送的数据sequence小于保存的值,就不再写入数据)
    • 消费者:

      • 1、消费者消费数据时,首先从zookeeper获取数据所在的位置和偏移量
      • 2、消费者根据ZK返回的数据信息,找到数据所在的节点文件,从上次消费的位置继续消费
      • 3、消费策略:顺序消费、范围消费(规定消费者消费数据位置)
      • 3、数据积压问题:增大kafka的分区、增加spark、flink的并行度
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值