`ExampleConsumer` in eine Spring-Boot App umgebaut (ohne Spring Kafka)
authorKai Moritz <kai@juplo.de>
Sun, 27 Oct 2024 21:08:53 +0000 (22:08 +0100)
committerKai Moritz <kai@juplo.de>
Fri, 14 Mar 2025 15:51:26 +0000 (16:51 +0100)
commitb7d9136e1c1d54ca559128dacf79a79aba94b2fc
tree32deb46fcc51890b0653c2a3e07792bb0a833f05
parenta83d1244e825c966485b222f5d9439d467f251e6
`ExampleConsumer` in eine Spring-Boot App umgebaut (ohne Spring Kafka)

* Consumerspezifische Properties werden in eigener nested Class verwaltet
** Dadurch wird der Code übersichtlicher, wenn spätere Implementierungen
*  _sowohl_ als Consumer, _als auch_ als Producer agieren!
* Fix: `close()` muss noch vom `ExampleConsumer` aufgerufen werden
** Der Aufruf von `close()` löst die Abmeldung der Instanz bei dem
*  GroupCoordinator aus.
** Dieser Vorgang sollte noch unter der Kontrolle des Anwendungscodes
*  erfolgen!
** Wenn die Methode erst von Spring aufgerufen wird, werden dann ggf. noch
*  Seiteneffekte ausgelöst, die dann noch im Kontext der Instanz laufen,
*  obwohl diese eigentlich schon beendet wurde!
* Ungefangene Exceptions im `ExampleConsumer` lösen das Beenden der App aus
* Das Docker-Setup verwendet den `spring-producer`
** Die Konfiguration wurde außerdem so überarbeitet, dass der Producer
   mehr Nachrichten verschickt (ca. 10 Nachrichten pro Sekunde) und diese
   in Batches à ca. 6 Nachrichten verpackt.
15 files changed:
.dockerignore
.maven-dockerinclude
Dockerfile
README.sh
build.gradle
docker/docker-compose.yml
pom.xml
settings.gradle
src/main/java/de/juplo/kafka/Application.java [new file with mode: 0644]
src/main/java/de/juplo/kafka/ApplicationConfiguration.java [new file with mode: 0644]
src/main/java/de/juplo/kafka/ApplicationProperties.java [new file with mode: 0644]
src/main/java/de/juplo/kafka/ExampleConsumer.java
src/main/resources/application.yml [new file with mode: 0644]
src/main/resources/logback.xml
src/test/java/de/juplo/kafka/ApplicationTests.java [new file with mode: 0644]