Kafka10.1 battement de coeur.d'intervalle.ms, de la session.délai d'attente.ms et max.sondage.d'intervalle.ms
Je suis à l'aide de kafka 0.10.1.1 et confondu avec le suivant 3 propriétés.
heartbeat.interval.ms
session.timeout.ms
max.poll.interval.ms
battement de coeur.d'intervalle.ms - Ceci a été ajouté dans 0.10.1 l'a et il enverra battement de coeur entre les sondages.
session.délai d'attente.ms - Ce est de commencer un rééquilibrage si aucune demande de kafka et il est remis à chaque sondage.
max.sondage.d'intervalle.ms - C'est dans le sondage.
Mais, quand kafka commence rééquilibrage? Pourquoi avons-nous besoin de ces 3? Ce sont les valeurs par défaut pour tous les?
Grâce
Nous avons résolu ce problème en augmentant la session.délai d'attente.ms et la diminution de max.sondage.les enregistrements . Cela fonctionne, mais nous sommes toujours à la recherche de meilleures solutions..
OriginalL'auteur user1578872 | 2017-05-16
Vous devez vous connecter pour publier un commentaire.
En supposant que nous parlons de Kafka 0.10.1.0 ou vers le haut, où chaque consommateur exemple utilise deux fils à la fonction. L'un est utilisateur de fil à partir de laquelle
poll
est appelé; l'autre est la pulsation de fil spécialement prend soin de battement de coeur des choses.session.timeout.ms
est de battement de coeur de thread. Si le coordinateur ne parvient pas à obtenir de toute pulsation à partir d'un consommateur avant cet intervalle de temps écoulé, il marque des consommateurs comme ayant échoué et déclenche un nouveau cycle de rééquilibrer.max.poll.interval.ms
est pour l'utilisateur thread. Si le message logique de traitement est trop lourd, le coût de plus de cet intervalle de temps, coordonnateur explicitement le consommateur de quitter le groupe et déclenche un nouveau cycle de rééquilibrer.heartbeat.interval.ms
est utilisé pour avoir d'autres saine conscience aux consommateurs de l'rééquilibrer beaucoup plus rapide. Si coordonnateur déclenche un rééquilibrage, les autres consommateurs ne savent de ce par la réception de la pulsation de réponse avecREBALANCE_IN_PROGRESS
exception encapsulé. Plus vite le rythme cardiaque demande est envoyée, plus le consommateur sait qu'il doit rejoindre le groupe.Valeurs possibles:
session.timeout.ms
: une valeur relativement faible, 10 secondes par exemple.max.poll.interval.ms
: sur la base des exigences de traitementheartbeat.interval.ms
: une valeur relativement faible, meilleure 1/3 de lasession.timeout.ms
Je n'ai pas vu valide les scénarios où l'intervalle d'interrogation est de définir un tel faible et beaucoup moins que d'expiration de la session. En fait, l'introduction de
max.poll.interval.ms
et la valeur d'une assez grande valeur est simplement le résultat de donner à la consommation de plus de temps pour traiter les messages mais ne pas sacrifier la détection de défaut de temps.De toute façon, une fois la session.délai d'attente.ms est atteint, le rééquilibrage sera déclenchée. Dire, il faut 10 secondes pour le traitement et la session.délai d'attente.ms est configuré à 8 secondes. Puisqu'il faut 10 secondes pour le traitement, le prochain sondage méthode sera invoquée après 10 secondes, et donc le rééquilibrage sera lancé qu'à la session.délai d'attente.ms est de 8 secondes. Nous avons tout de même mis le max.sondage.d'intervalle.ms à 60 s, qu'est-ce que l'utilisation de la rééquilibrer a déjà commencé basé sur la session.délai d'attente.ms ce qui est inférieur au max.sondage.d'intervalle.ms.
C'est une bonne description donnée : cwiki.apache.org/confluence/display/KAFKA/...
OriginalL'auteur amethystic
juste de les rendre plus claires, un battement de coeur thread(avec de l'utilisateur thread qui appelle
Poll
fonction dans le même processus) enverra le battement de coeur à la coordonnatrice de chaque battement de coeur.d'intervalle.ms", le temps, et le coordonnateur de la marque le consommateur, l'utilisateur thread comme mort, si elle dépasse la session".délai d'attente.ms" ou "max.sondage.d'intervalle.ms".OriginalL'auteur suiyuan2009