Scala 测试卡夫卡和弗林克积分流

Scala 测试卡夫卡和弗林克积分流,scala,apache-kafka,integration-testing,apache-flink,Scala,Apache Kafka,Integration Testing,Apache Flink,例如,我想用FlinkKafkaConsumer011和FlinkKafkaProducer011测试Kafka/Flink的集成 这一进程将是: 与弗林克一起阅读卡夫卡主题 用弗林克进行一些操纵 和弗林克一起写另一个卡夫卡主题 以字符串为例,从输入主题中读取字符串,转换为大写,写入新主题 问题是如何测试流量 当我说测试时,这是单元/集成测试 谢谢 Flink文档中有一个关于如何为转换操作符编写单元\集成测试的小文档:。该文档还有一个关于测试检查点和状态处理的小节,以及关于使用AbstractS

例如,我想用
FlinkKafkaConsumer011
FlinkKafkaProducer011
测试Kafka/Flink的集成

这一进程将是:

  • 与弗林克一起阅读卡夫卡主题
  • 用弗林克进行一些操纵
  • 和弗林克一起写另一个卡夫卡主题
  • 以字符串为例,从输入主题中读取字符串,转换为大写,写入新主题

    问题是如何测试流量

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


    谢谢

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

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

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

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


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

    您可以查看。这是一个对卡夫卡进行测试的极好工具。我已经检查了这个库,问题是对于Flink,我们必须使用
    FlinkKafkaConsumer***
    FlinkKafkaProducer***
    ,而且它似乎不能与这个嵌入式卡夫卡一起工作,因为他们不是卡夫卡消费者或卡夫卡生产者。您对如何创建这样的集成环境有什么建议吗?我想从k8s开始,为了引导主题中的一些数据,以便我的作业能够读取它,我想创建一个新作业,该作业将创建此类数据,然后在使用我的prod作业中的数据时提供模拟响应,这样我就可以模拟我的所有生产环境。你知道有比这个更好的主意吗?