Multiples peuvent Kafka consommateurs lisent même message à partir de la partition
Nous planification pour écrire un Kafka de consommation(java) qui se lit Kafka file d'attente pour effectuer une action qui est dans le message.
Que les consommateurs de manière indépendante, le message est traité par un seul consommateur à un moment? D'autre tous les consommateurs du processus le même message qu'ils ont leur propre décalage dans la partition.
S'il vous plaît aidez-moi à comprendre.
ressemble kafka n'a pas de files d'attente. il a seulement des sujets
Tous kafka sujets sont des ensembles ordonnés - en d'autres termes, ce sont les files d'attente.
Tous kafka sujets sont des ensembles ordonnés - en d'autres termes, ce sont les files d'attente.
OriginalL'auteur shiv455 | 2016-02-22
Vous devez vous connecter pour publier un commentaire.
Il dépend ID de groupe. Supposons que vous avez un sujet avec 12 partitions. Si vous avez 2 Kafka les consommateurs avec le même Id de Groupe, ils seront à la fois de lire les 6 partitions, ce qui signifie qu'ils vont lire des partitions = ensemble de différents messages. Si vous avez 4 Kafka cosnumers avec le même Id de Groupe, chaque d'entre eux seront tous de lire trois partitions différentes, etc.
Mais lorsque vous réglez les différents Id de Groupe, la situation change. Si vous avez deux Kafka consommateurs avec les différents Id de Groupe qu'ils vont lire tous les 12 partitions sans aucune interférence entre les uns des autres. Sens à la fois les consommateurs de lire exactement le même ensemble de messages de façon indépendante. Si vous avez quatre Kafka consommateurs avec les différents Id de Groupe, ils seront tous de lire toutes les partitions etc.
Vous ne pouvez pas informer les consommateurs qu'un message n'a pas été traitée correctement. Mais si un consommateur n'a pas la d'autres consommateurs va prendre son travail. Sens: si vous avez 12 partitions et 3 les consommateurs avec le même Id de Groupe, chaque consommateur lit 4 partitions. Si un consommateur n'a pas, rebalancing se produit, et maintenant les deux de vie des consommateurs va lire 6 partitions. Sachez que si vous ne mettez pas à jour le décalage après chaque message, vous pouvez lire quelques messages plus d'une fois.
2) Le décalage est défini par rubrique, de la partition et de l'id de groupe. La vie des consommateurs avec le même id de groupe peut récupérer le décalage parce qu'ils ont lu le même sujet et ils ont le même id de groupe.
Dans notre cas: tout d'abord, nous consommons chaque message pour le traitement en temps réel et, plus tard, nous consommons le même ensemble de messages pour la deuxième fois, lorsqu'il y a transfert de message de Kafka pour HDFS pour une analyse plus approfondie. En général, si vous avez plusieurs microservices, chacun d'entre eux lisent les mêmes messages et faire des choses différentes avec eux.
Les deux autres, les consommateurs seraient connectés, mais ils ne lisent rien. En gros, ils seraient inactifs.
OriginalL'auteur Lukáš Havrlant
Kafka livrera chaque message dans la liste de sujets à un processus dans chaque groupe de consommateurs. Ceci est réalisé par l'équilibre entre les cloisons entre tous les membres dans le groupe de consommateurs, de sorte que chaque partition est affecté à un consommateur dans le groupe. Conceptuellement, vous pouvez penser à un groupe de consommateurs comme étant une seule logique de l'abonné qui se compose de plusieurs processus.
En termes plus simples, Kafka message/dossier est traité par un seul consommateur processus par un groupe de consommateurs. Donc, si vous voulez que plusieurs consommateurs pour traiter le message/l'enregistrement, vous pouvez utiliser les différents groupes de consommateurs.
OriginalL'auteur Karan Khanna