Kafka hat ein Konzept namens Verbrauchergruppen, jeder Verbraucher, wenn es sich an einen Broker anschließt. Kafka verfolgt für jede Verbrauchergruppe den letzten gelesenen Nachrichtenoffset. Wenn eine Verbrauchergruppe an den Makler nicht bekannt ist, eine so genannte Verbraucher Parameter auto.offset.reset Einflüsse, was passiert:
- frühestens: start Lesen von Nachrichten vom Anfang des Themas
- zuletzt: Start aus der Lektüre das aktuelle Ende des Themas (so erzeugt Meldungen, nachdem der Verbraucher gestartet wurde)
die Standardeinstellung für diesen Parameter neuesten und da die Konsole Verbraucher randomisiert seine Verbrauchergruppe ist, ist es das, was in Ihrem Fall passieren wird und warum Sie keine Nachrichten sehen, die vor dem Start des Konsumenten erstellt wurden. Sie können den Parameter --from-beginning zu Ihrem Konsolenkonsumentenbefehl hinzufügen, mit dem dieses Verhalten für dieses Tool gesteuert wird. Dann sollten Sie alle Nachrichten sehen.
Update: Wenn Sie Sie, um sicherzustellen, wollen zu wählen, wo Ihre Verbraucher von links, die Sie benötigen, um eine Verbrauchergruppe manuell eingestellt und halten diese die gleiche jedes Mal, wenn Sie Ihre Verbraucher nennen. Sie können dies tun, indem Sie eine Textdatei mit diesem Parameter erstellen und diese an Ihren Konsolenbenutzer weitergeben.
echo "group.id=test" > consumer.config
./kafka-console-consumer --topic test --new-consumer --bootstrap-server 127.0.0.1:9092 --consumer.config consumer.config
Ich möchte nicht die Nachrichten, die verbraucht werden, erneut verarbeitet werden. Ich schaue mir die Nachrichten an, die gesendet wurden, als mein Konsument offline war. – youcanlearnanything
Ich habe meine Antwort aktualisiert, um diesen Teil hinzuzufügen. –
Kafka behält standardmäßig Offsets für 24 Stunden bei. Die Broker-Konfiguration "offsets.retention.minutes" steuert die Aufbewahrungsfrist für Offsets. Wenn der Konsument offline ist und in diesem Zeitraum keine neuen Offsets vorgenommen hat, löscht Kafka möglicherweise die Offsets für diese Konsumentengruppe. –