Sam*_*ina 7 simulation streaming messaging stub apache-kafka
出于测试目的,我需要模拟客户端每秒生成100,000条消息并将它们发送到kafka主题.是否有任何工具或方法可以帮助我生成这些随机消息?
ser*_*jja 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
Run Code Online (Sandbox Code Playgroud)
这里的关键是--throughput 100000标志"节流最大消息量为每秒约100000条消息"
现有的答案(例如,kafka-producer-perf-test.sh)对性能测试很有用,但当您需要生成的不仅仅是“单个原始字节流”时,则不然。例如,如果您需要使用嵌套结构模拟更真实的数据,或者在彼此有某种关系的多个主题中生成数据,那么它们是不够的。因此,如果您需要的不仅仅是生成一堆原始字节,我会查看下面的替代方案。
2020 年 12 月更新:截至今天,我建议使用https://github.com/MichaelDrogalis/voluble。一些背景信息:作者是 Confluent for Kafka Streams 和 ksqlDB 的产品经理,以及http://www.onyxplatform.org/的作者/开发者。
来自卷自述文件:
- 通过与 Java Faker 集成创建真实数据。
- 跨主题关系
- 填充记录的键和值
- 生成原始值和复杂/嵌套值
- 有界或无界数据流
- 墓碑
Voluble 作为 Kafka 连接器提供,可以轻松扩展和更改序列化格式。您可以通过其 REST API 或与 ksqlDB 集成来使用 Kafka Connect。在本指南中,我将演示使用后者,但两者的配置相同。我省略了连接特定的配置,比如需要为任何连接器配置的序列化器和任务。
旧答案(2016):我建议看一下https://github.com/josephadler/eventsim,它会产生更“真实”的合成数据(是的,我知道我刚才说的话的讽刺意味:-P):
Eventsim 是一个为测试和演示生成事件数据的程序。它是用 Scala 编写的,因为我们是大数据的时髦人士(至少有时是这样)。它旨在复制虚假音乐网站的页面请求(图片类似于 Spotify);结果看起来像真正的使用数据,但完全是假的。您可以将程序配置为根据需要创建尽可能多的数据:仅几个用户几个小时的数据,或多年内大量用户的数据。您可以将数据写入文件,或通过管道将其输出到 Apache Kafka。
您可以将虚假数据用于产品开发、正确性测试、演示、性能测试、培训,或用于真实数据流有用的任何其他地方。您可能不应该使用这些数据来研究机器学习算法,并且绝对不应该使用它来了解真实的人的行为方式。
| 归档时间: |
|
| 查看次数: |
8998 次 |
| 最近记录: |