【问题标题】:Scala code to check whether kafka broker (server) is available or not用于检查 kafka 代理(服务器)是否可用的 Scala 代码
【发布时间】:2019-05-09 05:09:12
【问题描述】:

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

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

【问题讨论】:

  • 与其说“我想要”,您能否请edit 您的问题包括您尝试过的内容,以及当经纪人不可用时您会遇到哪些未捕获的错误? FWIW,您应该在该属性中使用多个服务器地址

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


【解决方案1】:

一种选择是使用 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;
        }

附: 它适用于 Kafka 0.11+ 版本。

【讨论】:

  • 它不工作 - 我遇到错误 - 1. 无法解析重载方法“创建”。 2.无法解析符号道具 3.无法解析符号静态 4.无法解析符号TIMEOUT_MS。
猜你喜欢
  • 1970-01-01
  • 2018-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-11
  • 1970-01-01
相关资源
最近更新 更多