从 Java 应用程序启动 Zookeeper 和 Kafka 服务器

Starting Zookeeper and Kafka servers from Java application

我正在使用一个 Java 应用程序启动消费者阅读 Kafka 主题。 每次需要启动消费者应用程序时,我都必须在 cmd 中使用命令启动 Zookeeper 和 Kafka 服务器。 是否可以 start/stop 使用小型 Java 程序? 谢谢。

请参阅此主题,它是关于在 Java 中启动 Zookeeper 的:

指向这个:

Is it possible to start a zookeeper server instance in process, say for unit tests?

如果您需要它来进行测试之类的操作,我认为更好的方法是使用提供 KafkaCluster 嵌入式实现的 Debezium 库。 您可以在此处查看我们如何在 Vert.x Kafka 客户端项目中使用它进行单元测试:

https://github.com/vert-x3/vertx-kafka-client/blob/master/src/test/java/io/vertx/kafka/client/tests/KafkaClusterTestBase.java

环顾四周 ;)

要为您的测试启动 Kafka 集群,您可以使用以下包装器: https://www.testcontainers.org/modules/kafka/

另请参阅此项目,该项目在 Spring 应用程序的上下文中进一步集成了 Kafka: https://github.com/vspiliop/embedded-kafka-cluster