我想测试Kafka/Flink与 FlinkKafkaConsumer011 以及 FlinkKafkaProducer011 例如。过程将是:读Kafka与Flink的主题Flink做了些手脚和Flink一起写另一个Kafka主题以字符串为例,从输入主题中读取字符串,转换为大写,写入新主题。问题是如何测试流?当我说测试时,这是单元/集成测试。谢谢!
FlinkKafkaConsumer011
FlinkKafkaProducer011
yzuktlbb1#
flink文档中有一个关于如何为转换操作符编写单元\集成测试的小文档:link。该文档还有一小部分关于测试检查点和状态处理,以及关于使用abstractstreamoperatortestharness。但是,我认为您对端到端集成测试(包括测试源和汇)更感兴趣。为此,您可以启动一个flink迷你集群。下面是一个链接,指向启动flink小型集群的示例代码:link。您还可以在jvm中启动kafka代理,并将其用于测试目的。flink的kafka连接器在集成测试中就是这样做的。下面是启动kafka服务器的示例代码:link。如果您在本地运行,您可以使用一个简单的生成器应用程序为您的源kafka主题生成消息(有许多可用的。您可以连续或基于不同的配置间隔生成消息)。下面是一个关于如何在本地运行时设置flink的作业全局参数的示例:kafka010example。另一种选择是创建一个集成环境(相对于生产环境)来运行端到端测试。您将能够真正感受到您的程序在类似于产品的环境中的行为。通常建议有一个完整的并行测试环境-包括测试源\接收器kafka主题。
1条答案
按热度按时间yzuktlbb1#
flink文档中有一个关于如何为转换操作符编写单元\集成测试的小文档:link。该文档还有一小部分关于测试检查点和状态处理,以及关于使用abstractstreamoperatortestharness。
但是,我认为您对端到端集成测试(包括测试源和汇)更感兴趣。为此,您可以启动一个flink迷你集群。下面是一个链接,指向启动flink小型集群的示例代码:link。
您还可以在jvm中启动kafka代理,并将其用于测试目的。flink的kafka连接器在集成测试中就是这样做的。下面是启动kafka服务器的示例代码:link。
如果您在本地运行,您可以使用一个简单的生成器应用程序为您的源kafka主题生成消息(有许多可用的。您可以连续或基于不同的配置间隔生成消息)。下面是一个关于如何在本地运行时设置flink的作业全局参数的示例:kafka010example。
另一种选择是创建一个集成环境(相对于生产环境)来运行端到端测试。您将能够真正感受到您的程序在类似于产品的环境中的行为。通常建议有一个完整的并行测试环境-包括测试源\接收器kafka主题。