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

时间:2017-03-07 10:05:10

标签: apache-kafka

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

我希望避免在每个开发人员手动下载和设置整个软件包。在集成测试时,还可以找到一种自动启动节点的简便方法。

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

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

2 个答案:

答案 0 :(得分:2)

我认为KafkaUnit是最接近H2的地方。你可以在这里找到它(https://github.com/chbatey/kafka-unit)。 或者只使用通过

<dependency> <groupId>info.batey.kafka</groupId> <artifactId>kafka-unit</artifactId> <version>0.6</version> </dependency>

适用于单元/集成测试所有在一个JVM中,类似于Curator Testingserver。

答案 1 :(得分:2)

  

是否存在用于开发/集成测试目的的某种嵌入式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>

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

以下指针将有助于编写测试:

  

我希望避免在每个开发人员手动下载和设置整个软件包。在集成测试时,还可以找到一种自动启动节点的简便方法。

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

但是,如果您需要执行更高级的测试 - 例如故意在中途取消Kafka经纪人以验证您的应用程序在部分中断后仍然存在 - 您可能需要查看: