测试kafka和flink集成流程

Tho*_*mas 3 integration-testing scala apache-kafka apache-flink

我想测试卡夫卡/弗林克集成FlinkKafkaConsumer011FlinkKafkaProducer011例如。

该过程将是:

  1. 使用 Flink 从 kafka 主题中读取
  2. 使用 Flink 进行一些操作
  3. 用 Flink 写入另一个 kafka topic

使用字符串示例,从输入主题中读取字符串,转换为大写,写入新主题。

问题是如何测试流量?

当我说测试时,这是单元/集成测试。

谢谢!

小智 5

Flink 文档中有一个关于如何为转换运算符编写单元\集成测试的小文档:link。该文档还有一小部分关于测试检查点和状态处理,以及关于使用 AbstractStreamOperatorTestHarness。

但是,我认为您对端到端集成测试(包括测试源和接收器)更感兴趣。为此,您可以启动 Flink 迷你集群。这是启动 Flink 迷你集群的示例代码的链接:link

您还可以在 JVM 中启动 Kafka Broker 并将其用于测试目的。Flink 的 Kafka 连接器为集成测试做到了这一点。这是启动 Kafka 服务器的示例代码:link

如果您在本地运行,您可以使用一个简单的生成器应用程序为您的源 Kafka Topic 生成消息(有很多可用。您可以连续或基于不同的配置间隔生成消息)。以下是如何在本地运行时设置 Flink 的作业全局参数的示例:Kafka010Example

另一种选择是创建一个集成环境(相对于生产)来运行您的端到端测试。您将能够真正了解您的程序在类生产环境中的表现。始终建议拥有完整的并行测试环境 - 包括测试源\接收器 Kafka 主题。