Wie bekomme ich den LETZTEN Offset eines Kafka-Themas?

8

Ich schreibe einen kafka consumer mit Java. Ich möchte die Echtzeit der Nachricht beibehalten. Wenn also zu viele Nachrichten auf den Konsum warten, wie beispielsweise 1000 oder mehr, sollte ich die nicht verbrauchten Nachrichten aufgeben und mit dem letzten Offset beginnen.

Für dieses Problem versuche ich, den letzten festgeschriebenen Offset und den letzten Offset eines Themas (nur 1 Partition) zu vergleichen. Wenn der Unterschied zwischen diesen beiden Offsets größer als ein bestimmter Betrag ist, werde ich den letzten Offset des Thema als nächsten Offset, so dass ich diese redundanten Nachrichten aufgeben kann.

Jetzt ist mein Problem, wie man den spätesten Ausgleich eines Themas erhält, einige Leute sagen, dass ich alten Verbraucher benutzen kann, aber es ist zu kompliziert, hat neuer Verbraucher diese Funktion?

    
Neptune 18.07.2016, 03:31
quelle

3 Antworten

12

Der neue Verbraucher ist auch kompliziert.

//assign the topic consumer.assign();

//seek to end of the topic consumer.seekToEnd();

//the position is the latest offset consumer.position();

    
lynn 19.07.2016, 02:45
quelle
5

Für die Kafka-Version: 0.10.1.1

%Vor%     
hiaclibe 17.01.2017 11:49
quelle
0
%Vor%

Das obige Snippet gibt den aktuellen Committed-Nachrichtenoffset für das angegebene Thema und die Partitionsnummer zurück.

    
rai.skumar 26.10.2017 08:35
quelle