出于测试目的,我需要模拟客户端每秒生成100,000条消息并将它们发送到kafka主题。是否有任何工具或方法可以帮助我生成这些随机消息?
答案 0 :(得分:14)
有一个用于生成虚拟负载的内置工具,位于bin/kafka-producer-perf-test.sh
(https://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。