kafka 相关配置总结

kafka 总结

  • 心跳线程和poll线程分开,但是心跳线程是在poll线程中启动的
  • 在满足max.partition.fetch.bytes限制的情况下,假如fetch到了100个record,放到本地缓存后,由于max.poll.records限制每次只能poll出15个record。
    那么KafkaConsumer就需要执行7次poll才能将这一次通过网络发起的fetch请求所fetch到的这100个record消费完毕。其中前6次是每次pool中15个record,最后一次是poll出10个record。
  • session.timeout.ms:这个值必须设置在broker configuration中的group.min.session.timeout.ms 与 group.max.session.timeout.ms之间。
    当Consumer由于某种原因不能发Heartbeat到coordinator时,并且时间超过session.timeout.ms时,就会认为该consumer已退出,它所订阅的partition会分配到同一group 内的其它的consumer
  • ·heartbeat.interval.ms:心跳是在consumer与coordinator之间进行的。心跳是确定consumer存活,加入或者退出group的有效手段。所以heartBeat最好小于session.timeout 这样我们可以在缺少多个heartBeat后再让该consumer退出
  • ·max.poll.interval.ms:前面说过要求程序中不间断的调用poll()。如果长时间没有调用poll,且间隔超过这个值时,就会认为这个consumer失败了。因为我们poll一般都是阻塞一段时间poll,如果pollTimeout大于max.poll.interval.ms 会导致
    如果没有数据 在阻塞过程中kafka 剔除该consumer

你可能感兴趣的:(kafka 相关配置总结)