Fehler im Commit-Verhalten korrigiert: Bei Logik-Fehler, kein Commit
authorKai Moritz <kai@juplo.de>
Fri, 26 Aug 2022 11:52:48 +0000 (13:52 +0200)
committerKai Moritz <kai@juplo.de>
Fri, 26 Aug 2022 11:59:07 +0000 (13:59 +0200)
commit384ed293b9d6d71f68031f92bd7bf60670a7ba4b
tree7970b901c424cbb679bc07c56fe4a0aa36192dea
parent4210993f369acfa07ae8d388eb8e32517005de6f
Fehler im Commit-Verhalten korrigiert: Bei Logik-Fehler, kein Commit

* Die Implementierung sieht vor, dass bei einer unerwarteten Exception
  (i.d.R. ein Fehler in der Fachlogik) kein Commit durchgeführt wird.
* Ansonsten müsste in der Situation ein expliziter Seek der Offstes auf
  die Positionen der vor dem Auftreten des Fehlers verarbeiteten
  Nachrichten durchgeführt werden, damit es nicht zu einem Verlust von
  Nachrichten kommt.
* Dieses Verhalten wurde durch die Verlagerung des Commits in den
  Rebalance-Listener unterwandert, da der Commit dort auch im Falle
  einer unerwarteten Exception durchgeführt wurde.
* Als Korrektur wurde hier eine Methode eingeführt, über die der
  Commit im Rebalance in dieser Situation unterdrückt werden kann.
src/main/java/de/juplo/kafka/ApplicationRebalanceListener.java
src/main/java/de/juplo/kafka/CommittingConsumerRebalanceListener.java [new file with mode: 0644]
src/main/java/de/juplo/kafka/EndlessConsumer.java
src/test/java/de/juplo/kafka/GenericApplicationTests.java