为开发人员/集成测试环境设置Apache Kafka

bal*_*teo 8 apache-kafka

我正在寻找有关如何在开发人员和集成测试环境中设置和运行Apache Kafka的建议和指示.

我想避免在每个开发人员的机器上手动下载和设置整个软件包,并且还可以找到一种在集成测试时自动启动节点的简单方法.

是否存在用于开发/集成测试目的的某种嵌入式Kafka(想想想要避免成熟的RDBMS的Java开发人员的H2并行)?

我是否必须采用某种流浪汉解决方案?顺便说一句,我找到了以下有趣的要点:https://gist.github.com/svanellewee/8d978db827a860186569但它需要设置Vagrant + VirtualBox ...

Mic*_*oll 3

是否有某种嵌入式 Kafka 用于开发/集成测试目的

Kafka 实际上包含可让您运行嵌入式 Kafka 集群的测试工具以及单元测试工具(从 2017 年的 Kafka v0.10.2.0 开始)。请参阅文档: https://kafka.apache.org/documentation/streams/developer-guide/testing.html

例如,您可以通过以下方式将相关的 Maven 工件添加到您的构建中:

<dependency>
    <groupId>org.apache.kafka</groupId>
    <artifactId>kafka-streams-test-utils</artifactId>
    <!-- Replace with desired Kafka version. -->
    <version>2.2.0</version>
    <scope>test</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)

文档位于: https://kafka.apache.org/documentation/streams/developer-guide/testing.html

以下提示将有助于编写测试:

我希望避免在每台开发人员的机器上手动下载和设置整个包,并找到一种简单的方法在集成测试时自动启动节点。

如果满足您的需求,上面的内容可能是最简单的,因为它可以很好地融入到现有的开发/测试流程中,例如 maven、gradle 或 sbt 等工具。

但是,如果您需要执行更高级的测试(例如,故意中途关闭 Kafka 代理以验证您的应用程序是否能在部分中断中幸存),您可能需要查看: