la compréhension des consommateurs de l'id de groupe
J'ai fait une nouvelle installation de Apache Kafka 0.10.1.0.
J'ai été en mesure d'envoyer /recevoir des messages sur invite de commande.
Tout en utilisant Producteur /Consommateur Exemple Java, je ne suis pas en mesure de savoir groupe.id paramètre sur la Consommation par Exemple.
Laissez-moi savoir comment résoudre ce problème.
Ci-dessous est un Consommateur Exemple, j'ai utilisé:
public static void main(String[] args) {
Properties props = new Properties();
props.put("bootstrap.servers", "localhost:9092");
props.put("group.id", "my-topic");
props.put("enable.auto.commit", "true");
props.put("auto.commit.interval.ms", "1000");
props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
KafkaConsumer<String, String> consumer = new KafkaConsumer<>(props);
try {
consumer.subscribe(Arrays.asList("my-topic"));
ConsumerRecords<String, String> records = consumer.poll(100);
System.err.println("records size=>"+records.count());
for (ConsumerRecord<String, String> record : records)
System.out.printf("offset = %d, key = %s, value = %s%n", record.offset(), record.key(), record.value());
}
catch (Exception ex){
ex.printStackTrace();
}
finally {
consumer.close();
}
}
Après l'exécution de la commande, pour les consommateurs, je peux voir les messages (sur la console) posté par producteur. Mais impossible de voir les messages à partir d'un programme en java
bin\windows\kafka-console-consommateur.chauve-souris --bootstrap-serveur localhost:9092 --rubrique ma rubrique-à partir de début
oui, je reçois un message sur la console "dossiers size=> 0"
Vous pouvez obtenir la valeur de
group.id
pour votre kafka cluster par la recherche dans les $KAFKA_HOME/config/consumer.properties
. De là, vous pouvez voir la ligne #consumer group id
. Utilisez cette valeur et votre code fonctionne. Vous pouvez regrouper plusieurs consommateurs à un même groupe en donnant la même valeur de group.id
dans ce fichier.Je ne suis pas sûr de savoir si vous avez eu la réponse. Mais, mon hypothèse, c'est que vous pouvez exécuter le code dans eclipse et dans une fenêtre vous sont en cours d'exécution producteur. Mais sans s'arrêter producteur, vous essayez de démarrer consommateur par conséquent, vous ne pouvez pas être en mesure de voir les enregistrements dans l'IDE. Mais vous pouvez voir ces reocrds sur console. Si c'est une chose banale doit encore en discuter. C'est mon hypothèse. S'il vous plaît corrigez-moi si je suis incorrect.
OriginalL'auteur Ankit | 2016-12-29
Vous devez vous connecter pour publier un commentaire.
Le groupe.id est une chaîne qui identifie le groupe de consommateurs processus à qui cela appartient à la consommation.
(Kafka intro)
vous pouvez utiliser n'importe quelle chaîne, si vous exécutez deux consommateurs qui ont la même chaîne, ils seront dans le même groupe.
je ne pouvais pas en mesure de voir les messages après l'application du groupe.l'identifiant (id) ci-dessus programme java. Cependant, je peux voir le message sur l'exécution de la commande (mentionné ci-dessus) sur la console. Ironiquement, il n'y a pas de groupe.carte d'identité obligatoire pour voir les messages pour le consommateur.
OriginalL'auteur Raz Omessi
Donner tout aléatoire de la valeur de l'id de groupe. Il n'a pas d'importance.
OriginalL'auteur Harpreet Varma
Dans le code que vous avez fourni vous avez juste à attendre que les données une fois pour 100ms.
Vous devriez recevoir les données dans une boucle ou d'attendre pendant de longues périodes de temps (que vous obtenez seulement une partie des données dans ce cas).
Comme pour le groupe.id' le cas où vous rencontrez des consommateurs à partir de la console il devient aléatoire.id'.
OriginalL'auteur guest
Depuis aucun décalage n'a été fournie, le client java va attendre pour les nouveaux messages, mais ne sera pas afficher les messages existants - c'est comme prévu. Si l'on a l'intention de lire tous les messages déjà dans le sujet, on peut utiliser ce bout de code:
OriginalL'auteur jazz
Voici quelques résultats de tests sur la partition et de la consommation des biens du groupe.id
consommateur.id de groupe est à l'équilibre de la charge et donc la production de données (si le groupe.l'id est différent pour chaque consommateur, chaque consommateur pourra obtenir la copie de données)
si la partition=1 et l'ensemble des consommateurs count = 2, un seul des deux active du consommateur renverra les données
si la partition=2 et l'ensemble des consommateurs count = 2, chacun des deux consommateurs actifs uniformément obtenir les données
si la partition=3 et l'ensemble des consommateurs count = 2, chacun des deux principes actifs les consommateurs obtiendront des données. un consommateur obtient des données à partir de 2 partitions et d'autres récupère les données à partir de 1 partition.
si la partition=3 et l'ensemble des consommateurs count = 3, chacun des trois consommateurs actifs uniformément obtient des données.
OriginalL'auteur Beginner
Le consommateur id de groupe de groupe des consommateurs qui doivent être définis dans le Kafka de consommation.fichier de propriétés.
Faire ajouter "mon sujet" à un groupe de consommateurs et cela devrait fonctionner comme ci-dessous:
OriginalL'auteur MANISH PARGANIHA