Récupération des compensations de groupes de consommateurs dans Go avec Kafka 10
Avec la sortie de Kafka 10, la bibliothèque Go Kafka (sarama) fournit désormais aux consommateurs capacités de groupe sans recourir à des bibliothèques externes. Cela soulève la question de savoir comment récupérer le décalage du message en cours de traitement par un groupe de consommateurs.
Solution
Pour obtenir le décalage du groupe de consommateurs, suivez ces étapes :
Implémenter une structure d'informations de groupe de consommateurs :
<code class="go">type gcInfo struct { offset int64 }</code>
Créer un gestionnaire d'informations de groupe de consommateurs :
<code class="go">func (g *gcInfo) ConsumeClaim(_ sarama.ConsumerGroupSession, claim sarama.ConsumerGroupClaim) error { g.offset = claim.InitialOffset() return nil }</code>
Configurer et créer le groupe de consommateurs :
<code class="go">config := sarama.NewConfig() config.Consumer.Offsets.AutoCommit.Enable = false client, err := sarama.NewConsumerGroup(strings.Split(brokers, ","), groupName, config)</code>
Consommer un Message Au sein du groupe :
<code class="go">info := gcInfo{} if err := client.Consume(ctx, []string{topic}, &info); err != nil { return 0, err }</code>
Récupérer le décalage :
<code class="go">return info.offset, nil</code>
Avec ceci implémentation, vous pouvez récupérer le décalage du groupe de consommateurs pour une partition et un sujet spécifiques à tout moment.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!