Rückbau des expliziten regelmäßigen Commits durch den `EndlessConsumer`
authorKai Moritz <kai@juplo.de>
Sat, 3 Sep 2022 10:37:22 +0000 (12:37 +0200)
committerKai Moritz <kai@juplo.de>
Sun, 4 Sep 2022 14:11:05 +0000 (16:11 +0200)
* Hier wurde die Deaktivierung der expliziten regelmäßigen Commits durch
  den `EndlessConsumer` zurückgebaut, um die einzelnen Schritte der Übung
  leichter nachvollziehbar zu machen.
* Die expliziten regelmäßigen Commits sind nicht notwendig.
* Sie sind "nur" eine (sehr sinnvolle) Optimierung, da ansonsten nur
  während eines Rebalances ein Commit durchgeführt wird.
* D.h., wenn ein Consumer, der sehr lange ohne Rebalance läuft und dann
  abstürzt, gehen die _gesamten_ Ergebnisse dieses Consumers verloren und
  die zugehörigen Nachrichten werden komplett neu verarbeitet.

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

index 3653197..ca6897c 100644 (file)
@@ -86,34 +86,4 @@ public class ApplicationRebalanceListener implements RebalanceListener
       stateRepository.save(new StateDocument(partition, state, results, offset));
     });
   }
-
-
-  @Override
-  public void beforeNextPoll()
-  {
-    partitions
-      .stream()
-      .forEach(partition ->
-      {
-        log.info("{} - persisting state & offset for partition: {}", id, partition);
-        Map<String, AdderResult> state = recordHandler.getState(partition).getState();
-        Long offset = consumer.position(new TopicPartition(topic, partition));
-        log.info(
-          "{} - offset of next unseen message for partition {} is {}",
-          id,
-          partition,
-          offset);
-        for (String user : state.keySet())
-        {
-          log.info(
-            "{} - Saved state for partition={}|user={}: {}",
-            id,
-            partition,
-            user,
-            state.get(user));
-        }
-        Map<String, List<AdderResult>> results = adderResults.getState(partition);
-        stateRepository.save(new StateDocument(partition, state, results, offset));
-      });
-  }
 }