2016-11-16 3 views
2

Nun, dass Golang Kafka-Bibliothek (Sarama) Benutzergruppe Fähigkeit ohne externe Bibliothek Hilfe mit Kafka 10 bietet. Wie kann ich die aktuelle Nachricht Offset von einem Verbraucher verarbeitet bekommen Gruppe zu einer bestimmten Zeit?Wie man Benutzergruppen-Offsets für die Partition in Golang bekommt Kafka 10

Zuvor habe ich kazoo-go (https://github.com/wvanbergen/kazoo-go) verwendet, um meine Consumer Group-Nachricht zu korrigieren, wie sie in Zookeeper gespeichert ist. Jetzt benutze ich sarama-cluster (https://github.com/bsm/sarama-cluster), ich bin nicht sicher, welche API zu verwenden, um meine Kundengruppe Nachricht Offset zu bekommen.

Antwort

1

Ich arbeite auch mit Sarama und Kafka, um ein Thema zu kompensieren.

Sie können Offset mit folgendem Code erhalten.

package main 

    import (
    "gopkg.in/Shopify/sarama" 
    "fmt" 
    ) 

    func main(){ 
     client , err := sarama.Client([]string{"localhost:9092"},nil) // I am not giving any configuration 
     if err != nil { 
      panic(err) 
     } 
     lastoffset, err := client.GetOffset("topic-test",0,sarama.OffsetNewest) 
     if err != nil { 
      panic(err) 
     } 
     fmt.Println("Last Commited Offset ",lastoffset) 
    } 

Lassen Sie mich wissen, wenn dies die Antwort ist, die Sie suchen, und wenn es hilfreich ist.

+0

Das funktioniert. Ich nahm an, dass auf meiner Kafka-Cluster-Seite ein Problem auftrat, das dazu führte, dass für diesen API-Aufruf keine Daten zurückgegeben wurden. Funktioniert jetzt. – tazo

+0

Gibt dies den Offset der letzten Nachricht zurück, die für eine Partition erstellt wurde, oder den Offset der letzten Nachricht, die vom Benutzer für eine Partition markiert und festgeschrieben wurde? –

+2

@LorenzoBelli Der Code gibt den letzten Offset zurück, der für eine Partition erzeugt wurde, NICHT vom Kunden festgeschriebener Offset –

Verwandte Themen