Anforderungen: Wenn die Spring-Boot-Anwendung gestartet wird, werden einige Konfigurationsinformationen aus der Datenbank oder dem Cache gelesen, und Kafka wird verwendet, um Änderungen an Konfigurationsinformationen zu abonnieren. Da die App mit den neuesten Konfigurationsinformationen startet, sind Nachrichten über historische Kafka-Konfigurationsupdates bedeutungslos, und wenn du historische Nachrichten verwendest, wirst du Probleme haben.
Nachdem die Spring Boot-App neu gestartet ist, stellt sich die Frage, wie man alte Daten zu einem Thema verwirftKafka-Nachrichten zur Geschichte dieses Themas werden nicht empfangenDas? Tatsächlich kann dieses Problem gelöst werden, indem man den Startoffset setzt, der es dem Abonnenten erlaubt, den Offset des Themas vor dem Abonnement der Nachricht auf die letzte Position zu setzen.
Selbst wenn spring.kafka.consumer.auto-offset-reset auf Latest eingestellt ist, liest der Consumer die Nachricht vom Flag-Bit, an dem zuletzt bestätigt wurde, dass die Nachricht empfangen wurde, was dazu führt, dass der Consumer nach Neustart eine große Anzahl von Nachrichten liest, wenn der Produzent beim Schließen der App eine große Anzahl von Nachrichten sendet.
Der Verbraucher sucht während der Initialisierung nach einem bestimmten Offset mit folgendem Code:
(Ende)
|