Ce n' “Rééquilibrage” dans Apache Kafka contexte?
Je suis un nouvel utilisateur de Kafka et ont procédé à des essais pendant environ 2-3 semaines maintenant. Je crois que pour le moment j'ai une bonne compréhension de la façon dont Kafka, œuvres, pour la plupart, mais après la tentative d'ajustement de l'API pour mon propre Kafka à la consommation (ce qui est obscur, mais je suis en suivant les lignes directrices pour la nouvelle KafkaConsumer qui est censé être disponible pour v 0.9, qui est sur le "tronc" repo atm) j'ai eu des problèmes de latence qui consomment un sujet si j'ai plusieurs consommateurs avec le même id de groupe.
Dans cette configuration, ma console régulièrement les journaux de questions pour un rééquilibrage de déclenchement'. Ne rééquilibre se produire lorsque j'ai ajouter de nouveaux consommateurs à un groupe de consommateurs et sont-ils déclenchés afin de comprendre le consommateur instance dans le même groupID obtenez les partitions ou sont rééquilibre utilisé pour tout autre chose?
Je suis aussi tombée sur ce passage de https://cwiki.apache.org/confluence/display/KAFKA/Kafka+0.9+Consommation+Réécriture+Design et je n'arrive pas à comprendre, donc si quelqu'un pouvait m'aider à faire sens de ce qui serait très apprécié:
Rééquilibrage est le processus par lequel un groupe de consommateurs instances
(appartenant au même groupe) de coordonner, de posséder une mutuellement exclusifs
ensemble de partitions de sujets que le groupe a souscrit. À l'
fin de réussite de rééquilibrer le fonctionnement d'un groupe de consommateurs, tous les
partition pour toutes souscrites sujets sera détenue par un seul consommateur
exemple au sein du groupe. La voie de rééquilibrage des œuvres est comme suit.
Chaque courtier est élu en tant que coordonnateur pour un sous-ensemble de la
les groupes de consommateurs. Le coordonnateur de courtier pour un groupe est responsable
pour orchestrer un rééquilibrage de l'opération sur la consommation, l'appartenance à un groupe
les changements de partition ou des modifications de la liste des sujets. Il est également
responsable de la communication de la partition résultante de la propriété
configuration de tous les consommateurs du groupe subissant un rééquilibrage
le fonctionnement.
- Double Possible de Comment fonctionne la consommation de rééquilibrage de travail dans Kafka?
Vous devez vous connecter pour publier un commentaire.
Lorsque le consommateur se joint à un groupe de consommateurs dans l'ensemble des consommateurs tentative de "rééquilibrer" la charge d'attribuer les partitions pour chaque consommateur. Si l'ensemble des consommateurs des modifications lors de cette mission, c'est le rééquilibrage va échouer et recommencer. Ce paramètre contrôle le nombre maximal de tentatives avant d'abandonner.
la commande est: rééquilibrer.max.les tentatives et est fixé à 4 par défaut.
il peut aussi se produire si les conditions suivantes sont remplies:
ZooKeeper d'expiration de la session. Si le consommateur n'a pas de battement de coeur de ZooKeeper pour cette période de temps, il est considéré comme mort et un rééquilibrage va se produire.
Espérons que cette aide!
Chaque consommateur dans un groupe de consommateurs est affecté à un ou plusieurs rubrique partitions exclusivement, et Rééquilibrer est la ré-attribution de la partition de la propriété chez les consommateurs.
Un Rééquilibrer se produit quand:
Être un coordinateur du groupe (un des courtiers dans le cluster) et un chef de groupe (le premier consommateur qui se joint à un groupe), désignés pour un groupe de consommateurs, Rééquilibrer peut être plus ou moins décrite comme suit:
coordinateur du groupe (cela inclut tous les consommateurs qui ont envoyé un
battement de coeur récemment et qui sont donc considérés comme vivant) et est
responsable de l'attribution d'un sous-ensemble de partitions à chaque consommateur.
la liste des affectations à l' coordinateur du groupe, qui envoie cette
information à tous les consommateurs.
Cela s'applique à Kafka 0.9, mais je suis tout à fait sûr pour les versions plus récentes est toujours valide.
Consommateur rééquilibrer décider lequel le consommateur est responsable de ce qui sous-ensemble de toutes les partitions disponibles pour certains sujet(s).
Par exemple, vous pourriez avoir un sujet avec 20 partitions et 10 consommateurs, à la fin d'un rééquilibrage, vous pouvez vous attendre à chaque consommateur de lecture à partir de 2 partitions. Si vous arrêtez de 10 de ces consommateurs, vous pouvez vous attendre à chaque consommateur de 1 partitions après un rééquilibrage est terminé. La consommation rééquilibrer la dynamique de la partition d'affectation qui permet de traiter automatiquement par Kafka.
Un Coordonnateur de Groupe est l'un de courtier chargé de communiquer avec les consommateurs à atteindre rééquilibre entre le consommateur.Dans la version antérieure Zookeeper métadonnées stockées dans les détails mais en version la plus récente il magasin sur les courtiers.La consommation coordonnateur de recevoir du rythme cardiaque et d'interrogation de l'ensemble des consommateurs de groupe de consommateurs, donc il au courant au sujet de chaque consommateur rythme cardiaque et de la gestionnaire de leur décalage sur les partitions.
Chef De Groupe:
L'un des consommateurs de Consommateurs du Groupe de travail en tant que chef de groupe qui est choisi par le coordonnateur du Groupe et sera responsable de la fabrication de la partition d'attribution de décision au nom de tous les consommateurs dans un groupe.
Rééquilibrer Scénario:
Consommateur long processus de dépasser sondage délai
Des consommateurs des Consommateurs par le biais de l'exception
Nouvelle partition ajoutée.
De mise à l'échelle en Haut et en Bas de consommation . Ajouté de nouveaux consommateurs ou supprimer des consommateurs manuellement pour
Consommateur Rééquilibrer
Consommateur rééquilibrer lancée lorsque consommateur demande à se joindre à un groupe ou les feuilles d'un groupe. Le Leader du Groupe reçoivent une liste de tous les consommateurs de la Coordinatrice du Groupe. Chef de groupe de décider de la partition(s) attribué à chaque consommateur en utilisant PartitionAssigner.
Une fois que Chef de Groupe finaliser partition affectation en envoyer la liste des affectations de Coordonnateur du Groupe qui envoie ces informations à l'ensemble des consommateurs. Groupe envoyer uniquement applicable partitions pour leur consommation pas d'autres consommateurs partitions attribuées. Seulement Chef de Groupe au courant au sujet de tous les consommateurs et de ses partitions attribuées.
Après le rééquilibrage est complète, les consommateurs de commencer l'envoi de battement de coeur de Coordonnateur du Groupe que de son vivant.
Les consommateurs envoyer un OffsetFetch demande à la Coordonnatrice du Groupe pour obtenir les dernières commis des compensations pour leurs partitions attribuées.
Les consommateurs commencent à consommer de l'messaged pour nouvellement affecté à la partition.
La Gestion De L'État
Tandis que le rééquilibrage, coordinateur du Groupe de jeu de son état de Rééquilibrer et d'attendre que tous les consommateurs de re-joindre le groupe.
Lorsque le Groupe en début de rééquilibrage , le coordinateur du groupe des premiers commutateurs de son état de rééquilibrer, de sorte que tous en interaction les consommateurs en soient informés de rejoindre le groupe.
Une fois de rééquilibrer terminé coordinateur du Groupe de créer de nouvelles génération de l'ID et notifié à l'ensemble des consommateurs et du groupe de procéder à la synchronisation de la scène où les consommateurs à envoyer des requête de synchronisation et d'aller attendre jusqu'à ce que le groupe Leader de l'arrivée de la génération de nouvelles attribuer partition.Une fois que les consommateurs ont reçu de nouveaux attribuer la partition qu'ils ont déménagé stable stade.
Statique Adhésion
Thies rééquilibrage est assez lourde opération car il fallait arrêter tous les consommateurs et d'attendre pour obtenir une nouvelle partition attribuée. Sur chaque rééquilibrer toujours créer une nouvelle génération de l'id de moyens actualiser tout. Pour résoudre cette surcharge Kafka 2.3+ introduit Statique Membres afin de réduire inutile de le Rééquilibrer. KIP-345
Statique dans l'Adhésion des consommateurs de l'état vont persister et à Rééquilibrer la même affectation obtiendrez appliquer. Il utilise un nouveau groupe.exemple.id de persister l'identité du membre. Ainsi, même dans le pire des cas d'identification de membre obtenir remaniement pour attribuer une nouvelle partition mais tout de même à la consommation de l'id d'instance obtiendrez la même partition affectation
Et après le redémarrage:
Ref:
https://www.confluent.io/blog/kafka-rebalance-protocol-static-membership
https://cwiki.apache.org/confluence/display/KAFKA/KIP-345%3A+Introduce+static+membership+protocol+to+reduce+consumer+rebalances