如何检查Kafka服务器是否可用。
我尝试了以下scala代码 -生产者API。
val props = new Properties()
props.put("bootstrap.servers", "hworker.dev.m.private:7667")
props.put("acks", "1")
props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer")
props.put("value.serializer", "org.apache.kafka.connect.json.JsonSerializer")
我可以知道如何检查上述引导服务器是否可用。
答案 0 :(得分:0)
一种选择是使用Kafka AdminClient,如下所示。如果服务器没有响应,它将返回TimeOutException。
private static final TIMEOUT_MS = 5000;
try (AdminClient client = AdminClient.create(props)) {
client.listTopics(new ListTopicsOptions().timeoutMs(TIMEOUT_MS)).listings().get();
} catch (ExecutionException ex) {
LOG.error("Kafka is not available, timed out after {} ms", TIMEOUT_MS);
return;
}
P.S。 它将适用于Kafka 0.11+版本。