Scala代码检查kafka代理(服务器)是否可用

时间:2018-12-07 12:20:16

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

如何检查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")

我可以知道如何检查上述引导服务器是否可用。

1 个答案:

答案 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+版本。