【问题标题】:Spring Boot start Zookeeper and Kafka Server from JavaSpring Boot 从 Java 启动 Zookeeper 和 Kafka Server
【发布时间】:2019-08-23 19:22:48
【问题描述】:

到目前为止,我已经在运行 Spring Boot 应用程序之前从命令行启动了 zookeeper 和 kafka 服务器,但现在我需要直接从代码启动它们。
首先,我尝试在 main 方法中使用 ProcessBuilder:

Process process = new ProcessBuilder("C:\\kafka_2.12-2.2.0\\bin\\windows\\zookeeper-server-start.bat",
"C:\\kafka_2.12-2.2.0\\config\\zookeeper.properties").start();
    InputStream is = process.getInputStream();
    InputStreamReader isr = new InputStreamReader(is);
    BufferedReader br = new BufferedReader(isr);
    String line;

    while ((line = br.readLine()) != null) {
      System.out.println(line);
    }

但这似乎不起作用,因为控制台上没有打印任何内容,过了一会儿应用程序抛出了 TimeOutException。

其次,我想让 kafka 服务器在 Zookeeper 启动后运行;怎样才能做到这一点?

【问题讨论】:

标签: java apache-kafka


【解决方案1】:

您必须使用ZookeeperExecutor 从“您的”Java 应用程序中启动 Zookeeper API,方法是提供 4 个初始参数和一个线程运行器。 ZooKeeper API 文档中给出了一个示例 https://zookeeper.apache.org/doc/r3.4.13/javaExample.htmlhttps://www.programcreek.com/java-api-examples/?api=org.apache.zookeeper.server.ZooKeeperServerMain

【讨论】:

  • 对于 Kafka 服务器呢?
  • 您将需要在您的 maven 项目中依赖 kafa,并使用 ProducerConsumer 从 java api 调用 kafka。 this 回答中给出了最好的例子之一
猜你喜欢
  • 2018-01-11
  • 1970-01-01
  • 2017-11-20
  • 1970-01-01
  • 1970-01-01
  • 2016-10-14
  • 1970-01-01
  • 1970-01-01
  • 2019-08-25
相关资源
最近更新 更多