2017-10-12 4 views
0

Im utilisant VisualVM pour profiler une application qui utilise akka-streams-kafka.Fil de discussion Kafka Coordinateurs dans Akka-streams-kafka

Il montre beaucoup de fils de blocage coordinateur Kafka It shows a lot of Kafka coordinator blocking threads

Qui sont ces coordinateurs?

J'ai aussi trois consommateurs Kafka qui sont également bloquent les discussions I also have three Kafka consumers that are also blocking threads

Dois-je créer un contexte d'exécution distinct pour eux?

Répondre

0

De client Java Kafka API

  1. Un consommateur par discussion Une option simple est de donner à chaque thread son propre instance de consommation. Voici les avantages et les inconvénients de cette approche: PRO: Il est le plus facile à mettre en œuvre PRO: Il est souvent le plus rapide car aucune coordination inter-thread est nécessaire PRO: Il fait en cours de traitement sur un base de partition très facile à mettre en œuvre (chaque thread juste traite les messages dans l'ordre où ils les reçoivent). CON: Plus de consommateurs signifie plus de connexions TCP au cluster (une par thread). En général Kafka gère les connexions de manière très efficace, ce qui est généralement un petit coût . CON: Plusieurs consommateurs signifie que plus de demandes sont envoyées au serveur et un peu moins de traitement par lots, ce qui peut entraîner une baisse du débit d'E/S. CON: le nombre total de threads sur tous les processus sera limité par le nombre total de partitions.