テストの目的で、毎秒100,000メッセージを生成するクライアントをシミュレートしてkafkaトピックに送信する必要があります。これらのランダムメッセージを生成するのに役立つツールや方法はありますか?
ダミーロードを生成するための組み込みツールがあり、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 を参照して図を参照してください。使い方を教えてください。
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
フラグです。
また、 https://github.com/josephadler/eventsim を確認することをお勧めします。これにより、より「現実的な」合成データが生成されます(ええ、私は自分の皮肉を認識していますちょうど言った:-P):
Eventsimは、テストおよびデモ用のイベントデータを生成するプログラムです。私たちはビッグデータの流行に敏感なので(少なくとも時々)、Scalaで書かれています。偽の音楽ウェブサイト(Spotifyのような写真)のページリクエストを複製するように設計されています。結果は実際の使用データのように見えますが、完全に偽物です。必要な数のデータを作成するようにプログラムを構成できます。数時間の数人のユーザーのデータ、または長年にわたる膨大な数のユーザーのデータです。データをファイルに書き込んだり、ApacheKafkaにパイプで送信したりできます。
偽のデータは、製品開発、正確性テスト、デモ、パフォーマンステスト、トレーニング、または実際に見えるデータのストリームが役立つその他の場所で使用できます。おそらく、このデータを機械学習アルゴリズムの研究に使用するべきではありません。また、実際の人々の行動を理解するためにこのデータを使用するべきではありません。
Kafka Connectを使用して、ランダムなテストデータを生成できます。このカスタムソースコネクタを確認してください https://github.com/xushiyan/kafka-connect-datagen
これにより、メッセージテンプレートやランダム化可能なフィールドなどの設定を定義して、テストデータを生成できます。 詳細なデモンストレーションについてはこの投稿 もチェックしてください。