Die Verbraucher gehören immer zu einer Gruppe und für jede Partition.
von Anfang an zu holen, können Sie alle Daten mit dem Fortschritt assoziiert löschen wie Hussain
refered
ZkUtils.maybeDeletePath(${zkhost:zkport}", "/consumers/${group.id}");
Sie können auch den Versatz der Partition angeben Sie wollen, wie in Kern/src/main/scala angegeben /kafka/tools/UpdateOffsetsInZK.scala
ZkUtils.updatePersistentPath(zkClient, topicDirs.consumerOffsetDir + "/" + partition, offset.toString)
jedoch die nicht indiziert Zeitversatz ist, aber man weiß ja für jede Partition eine Sequenz ist.
Wenn Ihre Nachricht einen Zeitstempel enthält (und beachten Sie, dass dieser Zeitstempel nichts mit dem Moment zu tun hat, in dem Kafka Ihre Nachricht erhalten hat), können Sie einen Indexer versuchen, indem Sie den Offset um N erhöhen , und speichern Sie das Tupel (Thema X, Teil 2, Offset 100, Zeitstempel) irgendwo.
Wenn Sie Einträge von einem bestimmten Zeitpunkt abrufen möchten, können Sie eine binäre Suche auf Ihren groben Index anwenden, bis Sie den gewünschten Eintrag gefunden haben und von dort abrufen.
Sie haben auch eine Codebeispiel Referenz. einen Blick wert – Hild
Das Beispiel, auf das sich Hild bezieht, ist: https://cwiki.apache.org/confluence/display/KAFKA/0.8.0+SimpleConsumer+Beispiel Sie können das 'Consumer'-Beispiel nicht verwenden, Sie müssen das verwenden 'SimpleConsumerDemo' Beispiel um mit Offsets zu spielen. – pherris