对于kafka bootstrap.servers配置,应该提供所有代理详细信息。
如果没有,kafka生产者/消费者将如何解决所有可用的经纪人?
如果是,生成者/消费者需要在添加节点后重启吗?
答案 0 :(得分:4)
bootstrap.servers配置对于生产者和消费者是必需的,并且它必须至少有一个代理主机:端口,以便允许生产者/消费者连接到群集,然后获取所有其他元数据(主题是谁,谁是领导者等等。
如果添加节点,则无需重新启动生产者/消费者,但当前配置当然是陈旧的。我的意思是 ... 如果您有一个包含broker1和broker2的集群,并将它们放入bootstrap.servers配置中,那么生产者/消费者将连接到集群。 让我们假设你添加了broker3,并在那里部署了一些新的主题/分区。您的生产者/消费者将能够通过向broker1或broker2询问元数据来读取/读取这些新主题/分区,因为有关它们的信息(以便它们位于broker3上)将可用。
当然,如果你关闭broker1和broker2,你的集群将只由broker3组成,那么你必须使用bootstrap.servers配置只用broker3重启生产者/消费者。
bootstrap.servers配置只是(顾名思义)启动时使用的配置;然后每个客户端都能够直接连接到代理(用于在那里读/写主题/分区),即使这样的代理不在bootstrap.servers配置中。