我要做的是
对于一个大学项目,我正在尝试比较apache flink和apache kafka使用不同配置(1个节点、2个节点、4个节点、改变cpu核心数量等)的流性能(吞吐量、延迟)。
为此,我创建了一个twitterjson数据集,其中包含约15000条tweet,每条tweet由一个新行分隔。
问题
据我所知 Kafka
遵循“producer-kafka cluster/brokers-consumer”模式,为了对延迟进行基准测试,我将测量每条记录的producer和consumer之间的时间。
问题是,据我所知 Apache Flink
缺少producer模式的功能-似乎我必须指定一个 source
对于 TaskManagers
(“消费者”)将获取并处理。
这使我很难告诉我应该如何以可比较的方式对这两个系统进行基准测试,因为对于延迟度量,我将度量生产者和消费者之间的时间,而在 Flink
我得测量一下 JobManager
以及 TaskManagers
. 所以制片人的角色就不在了。
假设我没有误解某些东西,我将如何以可比较的方式衡量这两个系统,以便做出合理的判断?
1条答案
按热度按时间hrirmatl1#
你能用flink做的就是建造这条管道:
我将两个kafka生产者(事件生成器中的生产者和flink中的生产者)配置为使用log append时间戳。我将安排flink作业将传入的时间戳复制到相应输出记录的字段中,以便写入输出主题的是具有两个时间戳的事件:一个由kafka代理为输入分区生成,另一个由处理输出分区的代理生成。我将进一步安排它,以便在两种情况下使用相同的代理,以便时间戳具有明显的可比性。
你应该可以为Kafka流媒体做几乎相同的事情。
顺便说一句,15000条推文将通过这种方式太快获得有意义的结果。我建议实现一个事件生成器,它可以输出任意长的事件流。