繁体   English   中英

Apache Flink 和 Kafka Stream 基准测试

[英]Apache Flink and Kafka Stream Benchmarking

我正在尝试做的事情

对于一个大学项目,我正在尝试比较 Apache Flink 和 Apache Kafka 流性能(吞吐量、延迟),使用不同的配置(1 个节点、2 个节点、4 个节点、改变 CPU 内核数量等)。

为此,我创建了一个 twitter JSON 数据集,其中包含约 15.000 条推文,每条推文由换行符分隔。

问题

据我所知, Kafka遵循“生产者 - Kafka 集群/经纪人 - 消费者”模式,并且为了对延迟进行基准测试,我将测量每条记录的生产者和消费者之间的时间。

问题是,据我所知, Apache Flink缺乏生产者模式的能力 - 似乎我必须为数据 stream 指定数据source ,然后TaskManagers (“消费者”)将获取和处理。

这让我很难说出我应该如何以可比较的方式对两个系统进行基准测试,因为对于延迟测量,我将测量ProducerConsumer之间的时间,而在Flink中我必须测量JobManagerTaskManagers之间的时间。 所以这里会缺少生产者部分。

假设我没有误解某些东西,我将如何以可比的方式测量两个系统以便做出合理的判断?

你可以用 Flink 做的就是构建这个管道:

event generator -> input topic -> flink job -> output topic -> analysis

我将配置两个 Kafka 生产者(事件生成器中的一个和 Flink 中的一个)以使用日志附加时间戳。 我会安排 flink 作业将传入的时间戳复制到相应 output 记录的字段中,以便写入 output 主题的事件是具有两个时间戳的事件:一个由 kafka 代理为输入分区生成,另一个是其他由处理 output 分区的代理生成。 我会进一步安排它,以便在两种情况下都使用相同的代理,以便时间戳明显具有可比性。

您应该能够为 Kafka Streaming 做几乎相同的事情。

顺便说一句,15000 条推文将通过这种方式过快地流过,无法获得有意义的结果。 我建议实现一个事件生成器,它可以抽出任意长的事件流。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM