Maison  >  Article  >  développement back-end  >  Comment récupérer les compensations de groupes de consommateurs dans Go avec Kafka 10 ?

Comment récupérer les compensations de groupes de consommateurs dans Go avec Kafka 10 ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-30 06:17:02715parcourir

How to Retrieve Consumer Group Offsets in Go with Kafka 10?

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 :

  1. Implémenter une structure d'informations de groupe de consommateurs :

    <code class="go">type gcInfo struct {
        offset int64
    }</code>
  2. 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>
  3. 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>
  4. Consommer un Message Au sein du groupe :

    <code class="go">info := gcInfo{}
    if err := client.Consume(ctx, []string{topic}, &amp;info); err != nil {
        return 0, err
    }</code>
  5. 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn