web-dev-qa-db-fra.com

Apache Kafka - paramètres linger.ms et batch.size

Dans kafka settings du producteur, quel est le comportement attendu si vous avez linger.ms défini sur 0 et un batch.size différent de zéro? Combien de temps le producteur attendra-t-il que batch.size soit atteint avant Cela va-t-il attendre indéfiniment que la taille des messages soit inférieure à la taille de lot spécifiée OR puisque linger.ms est égal à zéro, il ne fera aucun traitement par lots et enverra simplement chaque demande?

6
Vivek Agarwal

Non, cela ne signifie pas que le producteur attendra que le lot soit plein. Le producteur enverra des lots à moitié pleins et même des lots contenant un seul message.

Par conséquent, la définition d'une taille de lot trop élevée ne provoquera pas de retard dans l'envoi des messages; il utilisera simplement plus de mémoire pour les lots. La définition d'une taille de lot trop petite entraînera une surcharge car le producteur devra envoyer des messages plus fréquemment.

Par défaut (linger.ms = 0), le producteur enverra des messages dès qu'un thread d'expéditeur sera disponible pour les envoyer, même s'il n'y a qu'un seul message dans le lot.

J'espère que ça aide.

Merci.

4
dossani