Maison  >  Article  >  développement back-end  >  Comment récupérer les compensations de groupes de consommateurs dans Golang Kafka 10 à l'aide de Sarama ?

Comment récupérer les compensations de groupes de consommateurs dans Golang Kafka 10 à l'aide de Sarama ?

DDD
DDDoriginal
2024-10-25 11:09:02180parcourir

How to Retrieve Consumer Group Offsets in Golang Kafka 10 using Sarama?

Accès aux compensations de groupe de consommateurs dans Golang Kafka 10

L'évolution de la bibliothèque Golang Kafka (sarama) avec Kafka 10 a introduit le groupe de consommateurs natif fonctionnalité. Cela pose la question de savoir comment récupérer le décalage du message en cours de traitement par un groupe de consommateurs.

Solution :

Pour répondre à ce besoin, la bibliothèque sarama fournit un mécanisme pour accéder aux compensations des groupes de consommateurs. L'extrait de code suivant montre comment obtenir le décalage à l'aide de GetCGOffset() :

<code class="go">import (
    "context"
    "fmt"
    "strings"
    "github.com/Shopify/sarama"
)

func GetCGOffset(ctx context.Context, brokers, groupName, topic string) (int64, error) {
    config := sarama.NewConfig()
    config.Consumer.Offsets.AutoCommit.Enable = false

    client, err := sarama.NewConsumerGroup(strings.Split(brokers, ","), groupName, config)
    if err != nil {
        return 0, err
    }
    defer client.Close()

    info := gcInfo{}
    if err := client.Consume(ctx, []string{topic}, &info); err != nil {
        return 0, err
    }
    return info.offset, nil
}</code>

Ce code crée un groupe de consommateurs et se connecte aux courtiers spécifiés. Il désactive la validation automatique pour garantir que le décalage n'est pas mis à jour pendant le processus de récupération. La structure gcInfo suit le décalage initial, qui représente le décalage du message actuel traité par le groupe de consommateurs.

En utilisant ce mécanisme, les développeurs peuvent facilement inspecter et gérer les décalages de leurs groupes de consommateurs, permettant un contrôle plus granulaire sur traitement et suivi des messages.

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