web-dev-qa-db-fra.com

Quelle est la différence en Kafka entre un coordinateur de groupe de consommateurs et un chef de groupe de consommateurs?

Je vois des références à Kafka coordinateurs de groupes de consommateurs et chefs de groupes de consommateurs ...

  1. Quelle est la différence?

  2. Quel est l'avantage de séparer la direction du groupe en deux ensembles de responsabilités différents?

21
Jeff Widman

Le coordinateur du groupe de consommateurs est l'un des courtiers tandis que le chef de groupe est l'un des consommateurs d'un groupe de consommateurs.

Le coordinateur de groupe n'est rien d'autre qu'un des courtiers qui reçoivent des battements de cœur (ou des sondages pour les messages) de tous les consommateurs d'un groupe de consommateurs. Chaque groupe de consommateurs a un coordinateur de groupe. Si un consommateur cesse d'envoyer des battements de cœur, le coordinateur déclenchera un rééquilibrage.

Lorsqu'un consommateur souhaite rejoindre un groupe de consommateurs, il envoie une demande JoinGroup au coordinateur de groupe. Le premier consommateur à rejoindre le groupe devient le chef de groupe. Le responsable reçoit une liste de tous les consommateurs du groupe du coordinateur du groupe (cela inclura tous les consommateurs qui ont envoyé un battement de cœur récemment et sont donc considérés comme vivants) et il est responsable d'attribuer un sous-ensemble de partitions à chaque consommateur. Il utilise une implémentation de l'interface PartitionAssignor pour décider quelles partitions doivent être gérées par quel consommateur. Après avoir décidé de l'affectation de partition, le leader du consommateur envoie la liste des affectations au GroupCoordinator qui envoie ces informations à tous les consommateurs. Chaque consommateur ne voit que sa propre affectation - le leader est le seul processus client qui dispose de la liste complète des consommateurs du groupe et de leurs affectations. Ce processus se répète chaque fois qu'un rééquilibrage se produit.

34
Yogesh Gupta