卡夫卡领导人选举何时发生?

Mar*_*ngh 8 apache-kafka kafka-producer-api apache-kafka-connect

卡夫卡高级制作人选出领导者的时间和频率是多少?是在发送每条消息之前还是在创建连接时只执行一次?

Vij*_*var 8

每个经纪人都有关于主题(和分区)列表及其领导者的信息,每当新的领导者被选出或分区数量发生变化时,动物园管理员将对其进行更新.

因此,当生产者对其中一个经纪人进行调用时,它会响应该信息列表.一旦生产者收到这些信息,它就会缓存并使用它连接到领导者.因此,下次当它想要将消息发送到该特定主题(和分区)时,它将使用此缓存信息.

让我们假设只有一个领导者,并且没有该主题/分区二重奏的副本,它被粉碎了.在这种情况下,它将尝试连接到该领导者并且失败.它将尝试从其缓存的其他代理列表中获取领导者,以检查该主题是否有任何领导者!因为它没有找到任何,它会尝试击中同一个领导者(已经死了),并且在达到最大不重试之后它会抛出异常!