Je suis un nouvel utilisateur de Kafka et le teste depuis environ 2 ou 3 semaines maintenant. Je crois avoir bien compris comment Kafka = fonctionne pour la plupart, mais après avoir essayé d’adapter l’API pour mon propre Kafka (ceci est obscur, mais je suis les directives du nouveau KafkaConsumer qui est supposé être disponible pour v 0.9, qui est sur le "coffre" repo atm) J'ai eu des problèmes de latence consommant d'un sujet si j'ai plusieurs consommateurs avec le même ID de groupe.
Dans cette configuration, ma console consigne systématiquement les problèmes liés au "déclenchement du rééquilibrage". Des rééquilibrages se produisent-ils lorsque j'ajoute de nouveaux consommateurs à un groupe de consommateurs et sont-ils déclenchés afin de déterminer quelle instance de consommateur dans le même ID de groupe obtiendra quelles partitions ou si les rééquilibrages sont utilisés pour autre chose?
Je suis également tombé sur ce passage de https://cwiki.Apache.org/confluence/display/KAFKA/Kafka+0.9+Consumer+Rewrite+Design et je n'arrive pas à comprendre. Donc, si quelqu'un pouvait m'aider à comprendre, cela serait très apprécié:
Le rééquilibrage est le processus par lequel un groupe d'instances de consommateurs (appartenant au même groupe) se coordonne pour posséder un ensemble mutuellement exclusif de partitions de sujets auxquels le groupe est abonné. À la fin d'une opération de rééquilibrage réussie pour un groupe de consommateurs, chaque partition de tous les sujets souscrits appartiendra à une seule instance de consommateur au sein du groupe. Le rééquilibrage fonctionne comme suit. Chaque courtier est élu en tant que coordinateur pour un sous-ensemble des groupes de consommateurs. Le courtier coordinateur d'un groupe est chargé d'orchestrer une opération de rééquilibrage des modifications d'appartenance à un groupe de consommateurs ou des modifications de partition pour les rubriques abonnées. Il est également responsable de la communication de la configuration de propriété de partition résultante à tous les consommateurs du groupe soumis à une opération de rééquilibrage.
Lorsqu'un nouveau consommateur rejoint un groupe de consommateurs, l'ensemble des consommateurs tente de "rééquilibrer" la charge pour attribuer des partitions à chaque consommateur. Si l'ensemble des consommateurs change alors que cette affectation est en cours, le rééquilibrage échouera et réessayera. Ce paramètre contrôle le nombre maximal de tentatives avant d'abandonner.
la commande pour cela est: rebalance.max.retries et a la valeur 4 par défaut.
cela peut aussi arriver si ce qui suit est vrai:
Délai d'expiration de la session ZooKeeper. Si le consommateur ne parvient pas à consulter ZooKeeper, il est considéré comme mort et un rééquilibrage aura lieu.
J'espère que cela t'aides!
Une ou plusieurs partitions de sujet sont attribuées exclusivement à chaque consommateur d'un groupe de consommateurs et Rééquilibrage correspond à la réaffectation de la propriété de la partition entre les consommateurs.
A Rééquilibrage se produit lorsque:
Être un coordinateur de groupe (l'un des courtiers de la grappe) et un chef de groupe (le premier consommateur qui rejoint un groupe) désigné pour un groupe de consommateurs , Rebalance peut être plus ou moins décrit comme suit:
Ceci s’applique à Kafka 0.9, mais je suis tout à fait sûr que les versions plus récentes sont toujours valables.