Rückbau der Berücksichtigung von `auto.offset.rest`, wenn Offset unbekannt sumup-adder--stored-offsets
authorKai Moritz <kai@juplo.de>
Sat, 3 Sep 2022 11:21:52 +0000 (13:21 +0200)
committerKai Moritz <kai@juplo.de>
Sun, 4 Sep 2022 14:11:05 +0000 (16:11 +0200)
* Hier wurde die Deaktivierung der Berücksichtigung des über
  `auto.offset.rest` konfigurierbaren Verhaltens der Consumer-Bibiliothek
  für den Fall, dass noch keine Offset-Position bekannt ist, zurückgebaut,
  um die einzelnen Schritte der Übung leichter nachvollziehbar zu machen.

src/main/java/de/juplo/kafka/ApplicationRebalanceListener.java
src/main/java/de/juplo/kafka/StateDocument.java

index ca6897c..da72555 100644 (file)
@@ -33,17 +33,12 @@ public class ApplicationRebalanceListener implements RebalanceListener
           stateRepository
               .findById(Integer.toString(partition))
               .orElse(new StateDocument(partition));
-      if (document.offset >= 0)
-      {
-        // Only seek, if a stored offset was found
-        // Otherwise: Use initial offset, generated by Kafka
-        consumer.seek(tp, document.offset);
-        log.info(
-            "{} - Seeking to offset {} for partition {}",
-            id,
-            document.offset,
-            partition);
-      }
+      log.info(
+        "{} - Offset of next unseen message for partition {}: {}",
+        id,
+        partition,
+        document.offset);
+      consumer.seek(tp, document.offset);
       recordHandler.addPartition(partition, document.state);
       for (String user : document.state.keySet())
       {
index c10a50c..5c4ca22 100644 (file)
@@ -15,7 +15,7 @@ public class StateDocument
 {
   @Id
   public String id;
-  public long offset = -1l;
+  public long offset = 0l;
   public Map<String, AdderResult> state;
   public Map<String, List<AdderResult>> results;