我正在运行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
经纪人失败怎么办?答案 0 :(得分:1)
提到整个经纪人名单是强制性的吗?
没有。代理列表不必包含完整的服务器集。但是,如果服务器发生故障,建议指定多个。
如果我只提供localhost会发生什么:9092,它会不会一直使用这个特定的经纪人?
没有。即使只有localhost:9092
被指定为bootstrap.servers
,客户端也会通过向该代理发送元数据请求来检索所有代理列表。完成此操作后,所有代理可以为客户端提供服务。
如果localhost:9092经纪人关闭怎么办?
localhost:9092
关闭只会影响该代理上的分区。对其余经纪商的分区没有影响。但是,如果客户端应用程序也已关闭,即使它返回后也无法找到群集,因为它无法连接到已经失效的localhost:9092
。这就是为什么建议用户提供多个经纪人而不仅仅是一个经纪人。
消费者API的行为是否相同?
是的,以上所有内容也适用于消费者。