Apache kafka 创建连接时Kafka brokerlist vs 1 broker?

Apache kafka 创建连接时Kafka brokerlist vs 1 broker?,apache-kafka,kafka-consumer-api,kafka-producer-api,Apache Kafka,Kafka Consumer Api,Kafka Producer Api,我正在运行卡夫卡群集 示例代码: Properties props = new Properties(); props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092,localhost:9093,localhost:9094"); KafkaProducer<String, String> producer = new Ka

我正在运行卡夫卡群集

示例代码:

Properties props = new Properties();
props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG,
                                      "localhost:9092,localhost:9093,localhost:9094");     
KafkaProducer<String, String> producer = new KafkaProducer<>(props);
提及整个经纪人名单是强制性的吗? 如果我只提供localhost:9092,它会一直使用这个特定的代理吗? 如果localhost:9092代理关闭怎么办? 消费者API的行为是否相同? 提及整个经纪人名单是强制性的吗

否。代理列表不必包含完整的服务器集。不过,建议在服务器出现故障时指定多个

如果我只提供localhost:9092,它会一直使用这个特定的代理吗

不可以。即使只有localhost:9092指定为bootstrap.servers,客户端也会通过向该代理发送元数据请求来检索所有代理列表。这样做之后,所有经纪人都可以为客户提供服务

如果localhost:9092代理关闭怎么办

localhost:9092关闭只会影响该代理上的分区。对rest代理上的分区没有影响。但是,如果客户端应用程序也关闭了,那么即使在集群返回后,它也无法再找到集群,因为它无法连接到已经关闭的localhost:9092。这就是为什么建议用户提供多个代理,而不是一个

消费者API的行为是否相同

是的,对于消费者来说,上述所有都是正确的