]> juplo.de Git - demos/kafka/training/commit
`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>
Sun, 22 Mar 2026 20:44:58 +0000 (21:44 +0100)
commitb970388cc6ce2a2474d4ebd91f956219621740d7
tree479192b76465a789905827961d9233efa2bc8dd7
parent56a9085bfee8f60a05225cbc80df8c126a120a49
`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.
* *Das Docker-Setup verwendet den ``juplo/simple-producer:1.0-SNAPSHOT``*
** Zu dem Zeitpunkt, zu dem der `juplo/simple-consumer:1.0-SNAPSHOT` in
   dem Live-Coding in den `juplo/spring-consumer:1.1-SNAPSHOT` umgebaut
   wird, existiert der `juplo/spring-producer:2.0-SNAPSHOT` noch nicht!
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]