测试kafka和flink集成流程

时间:2018-04-16 09:07:20

标签: scala apache-kafka integration-testing apache-flink

我想测试Kafka / Flink与FlinkKafkaConsumer011FlinkKafkaProducer011的集成。

过程将是:

  1. 使用Flink
  2. 阅读kafka主题
  3. 使用Flink进行一些操作
  4. 使用Flink
  5. 写入另一个kafka主题

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

    问题是如何测试流量?

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

    谢谢!

1 个答案:

答案 0 :(得分:2)

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

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

您还可以在JVM中启动Kafka代理并将其用于测试目的。 Flink的Kafka连接器用于集成测试。以下是启动Kafka服务器的示例代码:link

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

另一种方法是创建集成环境(与生产相比)来运行端到端测试。您将能够真实地了解您的程序在类似生产的环境中的行为方式。始终建议使用完整的并行测试环境 - 包括测试源\接收器Kafka主题。