2016-10-19 4 views
4

À des fins de test, j'ai besoin de simuler le client pour générer 100 000 messages par seconde et les envoyer au sujet kafka. Y a-t-il un outil ou un moyen qui peut m'aider à générer ces messages aléatoires?Existe-t-il un simulateur/outil pour générer des messages en streaming?

+0

Je n'ai jamais travaillé avec kafka. Mais voulez-vous que le client réagisse pour une quantité élevée de msg sur demande ou voulez-vous que le client demande autant de msgs? Dans le premier cas, vous pouvez utiliser [stubbydb] (https://github.com/NaturalIntelligence/StubbyDB). Dans le second cas, vous pouvez utiliser [jmeter] (http://jmeter.apache.org/). –

Répondre

6

Il existe un outil intégré pour générer une charge fictive, situé au bin/kafka-producer-perf-test.sh (https://github.com/apache/kafka/blob/trunk/bin/kafka-producer-perf-test.sh). Vous pouvez vous référer au https://github.com/apache/kafka/blob/trunk/tools/src/main/java/org/apache/kafka/tools/ProducerPerformance.java#L106 pour comprendre comment l'utiliser.

Un exemple d'utilisation serait comme ça:

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

La clé est le drapeau --throughput 100000 qui indique « montant maximum de message gaz à environ 100000 messages par seconde. » Ici

2

Je voudrais aussi penser de jeter un oeil à https://github.com/josephadler/eventsim, qui produira plus de données synthétiques « réalistes » (oui, je suis conscient de l'ironie de ce que je viens de dire :-P):

Eventsim est un prog RAM qui génère des données d'événement pour les tests et les démos. Il est écrit en Scala, parce que nous sommes de gros hipsters de données (au moins parfois). Il est conçu pour répliquer les demandes de page pour un site web de musique (image quelque chose comme Spotify); les résultats ressemblent à utilisent des données, mais sont totalement faux. Vous pouvez configurer le programme pour créer autant de données que vous le souhaitez: des données pour quelques utilisateurs pour quelques heures, ou des données pour un grand nombre d'utilisateurs d'utilisateurs sur de nombreuses années. Vous pouvez écrire les données dans des fichiers ou les envoyer à Apache Kafka.

Vous pouvez utiliser les données fausses pour le développement de produits, la correction tests, démonstrations, tests de performance, formation, ou dans tout autre lieu où un flux de données réelles est utile. Vous ne devriez probablement pas utiliser ces données pour rechercher des algorithmes d'apprentissage automatique, et certainement ne devrait pas l'utiliser pour comprendre comment les vrais gens se comportent.