Zugriff auf Verbrauchergruppen-Offsets in Golang Kafka 10
Die Entwicklung der Golang Kafka-Bibliothek (Sarama) mit Kafka 10 hat eine native Verbrauchergruppe eingeführt Funktionalität. Dies wirft die Frage auf, wie der aktuelle Nachrichtenoffset abgerufen werden kann, der von einer Verbrauchergruppe verarbeitet wird.
Lösung:
Um diesem Bedarf gerecht zu werden, stellt die Sarama-Bibliothek einen Mechanismus bereit für den Zugriff auf Verbrauchergruppen-Offsets. Der folgende Codeausschnitt zeigt, wie man den Offset mit GetCGOffset() erhält:
<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>
Dieser Code erstellt eine Verbrauchergruppe und stellt eine Verbindung zu den angegebenen Brokern her. Es deaktiviert die automatische Festschreibung, um sicherzustellen, dass der Offset während des Abrufvorgangs nicht aktualisiert wird. Die gcInfo-Struktur verfolgt den anfänglichen Offset, der den aktuellen Nachrichtenoffset darstellt, der von der Verbrauchergruppe verarbeitet wird.
Durch die Verwendung dieses Mechanismus können Entwickler die Offsets ihrer Verbrauchergruppen einfach überprüfen und verwalten und so eine detailliertere Kontrolle darüber ermöglichen Nachrichtenverarbeitung und -verfolgung.
Das obige ist der detaillierte Inhalt vonWie kann ich mit Sarama Verbrauchergruppen-Offsets in Golang Kafka 10 abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!