创建连接时Kafka brokerlist与1经纪人?

时间:2017-12-26 09:04:09

标签: apache-kafka kafka-consumer-api kafka-producer-api

我正在运行Kafka群集。

示例代码:

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的行为是否相同?

1 个答案:

答案 0 :(得分:1)

  

提到整个经纪人名单是强制性的吗?

没有。代理列表不必包含完整的服务器集。但是,如果服务器发生故障,建议指定多个。

  

如果我只提供localhost会发生什么:9092,它会不会一直使用这个特定的经纪人?

没有。即使只有localhost:9092被指定为bootstrap.servers,客户端也会通过向该代理发送元数据请求来检索所有代理列表。完成此操作后,所有代理可以为客户端提供服务。

  

如果localhost:9092经纪人关闭怎么办?

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

  

消费者API的行为是否相同?

是的,以上所有内容也适用于消费者。