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