web-dev-qa-db-ja.com

ストリーミング用のメッセージを生成するためのシミュレーター/ツールはありますか?

テストの目的で、毎秒100,000メッセージを生成するクライアントをシミュレートしてkafkaトピックに送信する必要があります。これらのランダムメッセージを生成するのに役立つツールや方法はありますか?

10
Sameeksha Raina

ダミーロードを生成するための組み込みツールがあり、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 を参照して図を参照してください。使い方を教えてください。

1つの使用例は次のようになります。

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

ここで重要なのは、「スロットルの最大メッセージ量が1秒あたり約100000メッセージになる」ことを示す--throughput 100000フラグです。

16
serejja

また、 https://github.com/josephadler/eventsim を確認することをお勧めします。これにより、より「現実的な」合成データが生成されます(ええ、私は自分の皮肉を認識していますちょうど言った:-P):

Eventsimは、テストおよびデモ用のイベントデータを生成するプログラムです。私たちはビッグデータの流行に敏感なので(少なくとも時々)、Scalaで書かれています。偽の音楽ウェブサイト(Spotifyのような写真)のページリクエストを複製するように設計されています。結果は実際の使用データのように見えますが、完全に偽物です。必要な数のデータを作成するようにプログラムを構成できます。数時間の数人のユーザーのデータ、または長年にわたる膨大な数のユーザーのデータです。データをファイルに書き込んだり、ApacheKafkaにパイプで送信したりできます。

偽のデータは、製品開発、正確性テスト、デモ、パフォーマンステスト、トレーニング、または実際に見えるデータのストリームが役立つその他の場所で使用できます。おそらく、このデータを機械学習アルゴリズムの研究に使用するべきではありません。また、実際の人々の行動を理解するためにこのデータを使用するべきではありません。

3
Michael G. Noll

Kafka Connectを使用して、ランダムなテストデータを生成できます。このカスタムソースコネクタを確認してください https://github.com/xushiyan/kafka-connect-datagen

これにより、メッセージテンプレートやランダム化可能なフィールドなどの設定を定義して、テストデータを生成できます。 詳細なデモンストレーションについてはこの投稿 もチェックしてください。

0
Raymond