是否有任何模拟器/工具可以生成流式传输消息?

时间:2016-10-19 12:35:27

标签: streaming apache-kafka simulation messaging stub

出于测试目的,我需要模拟客户端每秒生成100,000条消息并将它们发送到kafka主题。是否有任何工具或方法可以帮助我生成这些随机消息?

3 个答案:

答案 0 :(得分:14)

有一个用于生成虚拟负载的内置工具,位于bin/kafka-producer-perf-test.shhttps://github.com/apache/kafka/blob/trunk/bin/kafka-producer-perf-test.sh)。您可以参考https://github.com/apache/kafka/blob/trunk/tools/src/main/java/org/apache/kafka/tools/ProducerPerformance.java#L106找出如何使用它。

一个用法示例如下:

bin/kafka-producer-perf-test.sh --broker-list localhost:9092 --messages 10000000 --topic test --threads 10 --message-size 100 --batch-size 10000 --throughput 100000

这里的关键是--throughput 100000标志,表示“每秒最大消息量约为100000条消息”

答案 1 :(得分:2)

我还建议你看一下https://github.com/josephadler/eventsim,它会产生更“逼真”的合成数据(是的,我知道我刚才所说的讽刺:-P):

  

Eventsim是一个为测试和演示生成事件数据的程序。   它是用Scala编写的,因为我们是大数据时髦(至少   有时)。它旨在复制虚假音乐的页面请求   网站(图片类似Spotify);结果看起来很真实   使用数据,但完全是假的。您可以将程序配置为   根据需要创建尽可能多的数据:少数几个用户的数据   小时,或多年来大量用户的数据。   您可以将数据写入文件,或将其传输到Apache Kafka。

     

您可以将虚假数据用于产品开发,正确性   测试,演示,性能测试,培训或任何其他地方   其中真实数据流很有用。你可能不应该   使用这些数据来研究机器学习算法,当然   不应该用它来了解真实的人的行为。

答案 2 :(得分:0)

您可以使用Kafka Connect生成随机测试数据。签出此自定义源连接器https://github.com/xushiyan/kafka-connect-datagen

它允许您定义一些设置,例如消息模板和可随机化的字段,以生成测试数据。还要检查this post for detailed demonstration