Ich bin neu bei Kafka und versuche, eine Producer - Consumer App mit Kafka zu bauen. Hier kann ich Nachrichten an kalka ausgeben, aber wenn ich versuche, sie mit einem Verbraucher wieder zu verbrauchen, gibt es 0 Datensätze zurück.Kafka kann nicht konsumieren, ohne von Anfang zu lesen -Java
Ich überprüfe Offset für meine Verbrauchergruppe, ich kann sehen, dass Offset ist gleich Log-Länge sind die gleichen (1M in meinem Fall - das gleiche wie die Anzahl der Datensätze).
Wenn ich diese config -Eigenschaft beim Erstellen meines Verbrauchers verwenden, lesen Sie von Anfang an.
configProperties.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "earliest");
Aber meine Forderung ist, wenn ich Verbraucher neu zu starten, sollte es aus dem vorherigen Endpunkt wie AMQ starten.
Gibt es etwas, das ich hier vermisse? Ich denke, der Offset sollte sich erst nach einer Verbraucherumfrage ändern. Warum ist es am Anfang selbst auf die maximale Länge eingestellt?
http://stackoverflow.com/documentation/apache-kafka/5449/consumer-groups-and-offset-management/19390/how-can-i-read-topic-from-its-beginning#t=201703281614275445343 –
@ MatthiasJ.Sax Vielen Dank für Ihre Antwort. Aber nach dem Link, den Sie geteilt haben, verstehe ich, dass der Verbraucher den Offset nicht ändert, den ich von dem Thema abrufe und konsumiere. Aber mein Fall-Offset wird eingestellt, um zu enden, bevor ich irgendwelche Aufzeichnungen vom Thema konsumiere. Mache ich etwas falsch? –
Das stimmt. "Suchen" zu einer Position wird immer faul gemacht. Ich habe unten eine ausführlichere Antwort gegeben. Lass es mich wissen, wenn es hilft. Kafka Consumer ist ein wenig schwierig zu verstehen, wenn Sie gerade erst anfangen - es ist anders (und besser) als das, was Sie mit anderen Systemen tun können. Aber so, (am Anfang) auch ein wenig schwieriger, richtig zu bekommen :) –