Kafka高级制作人选举领导者的时间和频率如何? 是在发送每条消息之前还是在创建连接时只执行一次?
答案 0 :(得分:6)
每个经纪人都有关于主题(和分区)及其领导者列表的信息,无论何时选出新领导者或分区数量发生变化,动物园管理员都会及时更新。
因此,当生产者调用其中一个经纪人时,它会回复此信息列表。一旦生产者收到这些信息,它就会缓存并使用它连接到领导者。因此,下次当它想要将消息发送到该特定主题(和分区)时,它将使用此缓存信息。
让我们假设只有一个领导者并且没有该主题/分区二重奏的副本并且它被粉碎了。在这种情况下,它将尝试连接到该领导者并且失败。它将尝试从其缓存的其他代理列表中获取领导者,以检查该主题是否有任何领导者!因为它没有发现任何东西,它会尝试击中同一个领导者(已经死了),并且在达到最大不重试次数后会抛出异常!!