demos/kafka/training
2 years agoWeitere Tags für Übungs-Slide ergänzt acks---lvm-2-tage acks-DEPRECATED
Kai Moritz [Wed, 10 Aug 2022 17:42:19 +0000 (19:42 +0200)]
Weitere Tags für Übungs-Slide ergänzt

2 years agoDer einzige Weg ist, geduldig zu sein...
Kai Moritz [Wed, 10 Aug 2022 17:01:04 +0000 (19:01 +0200)]
Der einzige Weg ist, geduldig zu sein...

* Die Logs der Broker sehen so aus, als ob das Topic im Fehlerfall von
  diesen als "nie angelegt" betrachtet wird, weil der für das Löschen
  des alten Topics zuständige Broker zu früh stopt und beim Neu-Verteilen
  dieser Aufgabe fälschlich das unter dem selben Namen neu erzeugte Topic
  gelöscht wird.
* Alle Versuche, dies durch Schreiben in das Topic zuverlässig zu
  verhindern, sind ins leere gelaufen.
* Helfen tut allein, nach dem Aufruf des `setup`-Services etwas zu
  warten, bis sich die Broker alle einig sind.

2 years agoVergeblicher Versuch, sicher zu stellen, dass das Topic bereit ist
Kai Moritz [Mon, 8 Aug 2022 21:26:34 +0000 (23:26 +0200)]
Vergeblicher Versuch, sicher zu stellen, dass das Topic bereit ist

2 years agoNicht benötigte Ausgaben entfernt
Kai Moritz [Mon, 8 Aug 2022 21:25:42 +0000 (23:25 +0200)]
Nicht benötigte Ausgaben entfernt

2 years agoSichergestellt, dass das neu erzeugte Topic angesprochen wird
Kai Moritz [Mon, 8 Aug 2022 20:48:41 +0000 (22:48 +0200)]
Sichergestellt, dass das neu erzeugte Topic angesprochen wird

2 years agomvn clean aus README.sh entfernt
Kai Moritz [Fri, 5 Aug 2022 09:51:26 +0000 (11:51 +0200)]
mvn clean aus README.sh entfernt

2 years agoAnpassungen an Setup und README.sh aus Branch 'origin/rest-producer'
Kai Moritz [Fri, 5 Aug 2022 09:48:21 +0000 (11:48 +0200)]
Anpassungen an Setup und README.sh aus Branch 'origin/rest-producer'

2 years agoDas Logging so überarbeitet/umkonfiguriert, dass man den Fehler sieht
Kai Moritz [Tue, 2 Aug 2022 19:39:39 +0000 (21:39 +0200)]
Das Logging so überarbeitet/umkonfiguriert, dass man den Fehler sieht

2 years agoSetup und README.sh für rest-producer überarbeitet
Kai Moritz [Tue, 2 Aug 2022 17:56:17 +0000 (19:56 +0200)]
Setup und README.sh für rest-producer überarbeitet

* Setup an das Ausgangs-Setup angeglichen.
* Das Setup verwendet jetzt `kafkacat` als Consumer.
* Das README.sh entsprechend der Übung und der Änderungen angepasst.

2 years agoCompose-Setup an das Setup aus der Einführung angepasst
Kai Moritz [Wed, 27 Jul 2022 06:33:22 +0000 (08:33 +0200)]
Compose-Setup an das Setup aus der Einführung angepasst

2 years agoSpäter benötigten Konfiurations-Parameter `partition` hinzugefügt
Kai Moritz [Tue, 26 Jul 2022 19:15:35 +0000 (21:15 +0200)]
Später benötigten Konfiurations-Parameter `partition` hinzugefügt

2 years agoSpäter benötigten Header zum Postmapping hinzugefügt
Kai Moritz [Mon, 25 Jul 2022 15:58:28 +0000 (17:58 +0200)]
Später benötigten Header zum Postmapping hinzugefügt

2 years agoMerge der überarbeiteten Compose-Konfiguration ('setup-acks')
Kai Moritz [Sat, 23 Jul 2022 09:44:41 +0000 (11:44 +0200)]
Merge der überarbeiteten Compose-Konfiguration ('setup-acks')

2 years agoMerge der überarbeiteten Compose-Konfiguration ('setup-producer') setup-acks
Kai Moritz [Sat, 23 Jul 2022 09:34:03 +0000 (11:34 +0200)]
Merge der überarbeiteten Compose-Konfiguration ('setup-producer')

2 years agoMerge der überarbeiteten Compose-Konfiguration ('rest-producer') setup-producer
Kai Moritz [Sat, 23 Jul 2022 09:32:14 +0000 (11:32 +0200)]
Merge der überarbeiteten Compose-Konfiguration ('rest-producer')

2 years agoMerge der überarbeiteten Compose-Konfiguration ('endless-stream-producer')
Kai Moritz [Sat, 23 Jul 2022 09:27:34 +0000 (11:27 +0200)]
Merge der überarbeiteten Compose-Konfiguration ('endless-stream-producer')

2 years agoCompose-Konfiguration unabhängig von Default-Konfiguration gemacht endless-stream-producer
Kai Moritz [Sat, 23 Jul 2022 09:20:58 +0000 (11:20 +0200)]
Compose-Konfiguration unabhängig von Default-Konfiguration gemacht

* Damit Instanzen parallel über die IDE (mit voreingestelltem Default-Port)
  und Compose gestartet werden können, wurden den einzelnen Komponenten
  (Producer, Consumer etc.) jeweils unterschiedliche explizite
  Default-Ports zugewiesen.
* Dies führt leicht zu fehlern, in den Compose-Setups, da dort i.d.R.
  Port-Mappings für die gestarteten Instanzen definiert werden.
* Daher werden die Compose-Setups jetzt so umgestellt, dass sie den
  einkompilierten Default-Port der Komponenten explizit mit dem Port `8080`
  überschreiben, so dass alle Komponenten _innerhalb_ von Compose
  einheitlich (und so wie bei Spring-Boot standard) über `8080` ansprechbar
  sind.

2 years agoMerge der Upgrades für Confluent/Spring-Boot (Branch 'acks-übungen')
Kai Moritz [Fri, 22 Jul 2022 19:12:52 +0000 (21:12 +0200)]
Merge der Upgrades für Confluent/Spring-Boot (Branch 'acks-übungen')

2 years agoMerge der Upgrades für Confluent/Spring-Boot (Branch 'producer-übungen')
Kai Moritz [Fri, 22 Jul 2022 18:44:47 +0000 (20:44 +0200)]
Merge der Upgrades für Confluent/Spring-Boot (Branch 'producer-übungen')

2 years agoMerge der Upgrades für Confluent/Spring-Boot (Branch 'rest-producer')
Kai Moritz [Fri, 22 Jul 2022 18:38:42 +0000 (20:38 +0200)]
Merge der Upgrades für Confluent/Spring-Boot (Branch 'rest-producer')

* Eigentlich lässt sich hier leichter der Branch 'first-contact' mergen
* Da es aber Verbesserungen des Setups im Branch 'rest-producer' gab,
  wurde dieser gemerged.

2 years agoMerge der Upgrades für Confluent/Spring-Boot ('endless-stream-producer')
Kai Moritz [Fri, 22 Jul 2022 18:23:55 +0000 (20:23 +0200)]
Merge der Upgrades für Confluent/Spring-Boot ('endless-stream-producer')

2 years agoMerge der Upgrades für Confluent/Spring-Boot (Branch 'first-contact')
Kai Moritz [Fri, 22 Jul 2022 18:19:56 +0000 (20:19 +0200)]
Merge der Upgrades für Confluent/Spring-Boot (Branch 'first-contact')

2 years agoUpgrade von Spring Boot und den Confluent-Kafka-Images
Kai Moritz [Fri, 22 Jul 2022 18:04:07 +0000 (20:04 +0200)]
Upgrade von Spring Boot und den Confluent-Kafka-Images

* Upgrade der Kafk-Images von Confluent 7.0.2 auf 7.1.3
** Unterstützt Kafka 3.1.x (siehe https://docs.confluent.io/platform/current/installation/versions-interoperability.html[Versions-Matrix])
* Upgrade für Spring Boot von 2.6.5 auf 2.7.2
** Enthält Kafka: 3.1.1
** Enthält Spring Kafka: 2.8.8

2 years agoName und Beschreibung in POM getrennt
Kai Moritz [Sun, 12 Jun 2022 13:14:12 +0000 (15:14 +0200)]
Name und Beschreibung in POM getrennt

2 years agoTestfall, der die API aufruft und prüft, ob Nachrichten versendet werden
Kai Moritz [Sun, 12 Jun 2022 09:57:33 +0000 (11:57 +0200)]
Testfall, der die API aufruft und prüft, ob Nachrichten versendet werden

* Der Testfall verwendet `spring-kafka` als Abhängigkeit mit dem Scope
  `test`.
* Dies zeigt ein nicht zu unterschätzendes Anwendungsfeld für Spring
  Kafka, seblst wenn das eigentliche Projekt gar nicht auf Spring Kafka
  aufsetzt: Einfache Implementierung von Integration-Tests.

2 years agoInfo-Endpoint des Actuator korrigiert
Kai Moritz [Sun, 12 Jun 2022 12:50:24 +0000 (14:50 +0200)]
Info-Endpoint des Actuator korrigiert

* Der `kafka`-Eintrag hatte noch den veralteten Parameter `throttle-ms`
  des Endless Consumer enthalten
* Der `kafka`-Eintrag hatte noch nicht alle über `ApplicationProperties`
  konfigurierbaren Parameter ausgegeben.

2 years agoMerge branch 'endless-stream-producer' into rest-producer
Kai Moritz [Tue, 31 May 2022 03:39:30 +0000 (05:39 +0200)]
Merge branch 'endless-stream-producer' into rest-producer

2 years agoshutdown-Endpoint aktiviert
Kai Moritz [Sun, 10 Apr 2022 18:55:56 +0000 (20:55 +0200)]
shutdown-Endpoint aktiviert

2 years agoInformationen zur Kafka-Konfiguration im info-Endpoint sichtbar gemacht
Kai Moritz [Sun, 10 Apr 2022 18:55:42 +0000 (20:55 +0200)]
Informationen zur Kafka-Konfiguration im info-Endpoint sichtbar gemacht

2 years agoInformationen zur Java-Umgebung im info-Endpoint aktiviert
Kai Moritz [Sun, 10 Apr 2022 18:55:13 +0000 (20:55 +0200)]
Informationen zur Java-Umgebung im info-Endpoint aktiviert

2 years agoDas Git-Commit-Id-Plugin generiert eine git.properties
Kai Moritz [Sun, 10 Apr 2022 18:27:49 +0000 (20:27 +0200)]
Das Git-Commit-Id-Plugin generiert eine git.properties

2 years agoDas Spring-Boot-Maven-Plugin generiert Build-Info
Kai Moritz [Sun, 10 Apr 2022 18:25:28 +0000 (20:25 +0200)]
Das Spring-Boot-Maven-Plugin generiert Build-Info

2 years agoDefault-Konfiguration überarbeitet
Kai Moritz [Sun, 10 Apr 2022 17:52:09 +0000 (19:52 +0200)]
Default-Konfiguration überarbeitet

* Eine über die IDE bzw. Maven gestartete Instanz soll klar als solche
  erkennbar sein (`client.id` = DEV).
* Bisher gab es häufig Port-Konflikte, wenn über die IDE bzw. über Maven
  parallel zu einem Compose-Setup eine Instanz gestartet wurde. Daher wird
  jetzt hier explizit auf einen abweichenden Port (8880) ausgewichen.

2 years agoFalschen Status-Code bei start/stop-Fehler korrigiert
Kai Moritz [Sun, 10 Apr 2022 17:49:44 +0000 (19:49 +0200)]
Falschen Status-Code bei start/stop-Fehler korrigiert

2 years agoSetup von counting-consumer auf endless-consumer umgestellt
Kai Moritz [Fri, 8 Apr 2022 10:35:31 +0000 (12:35 +0200)]
Setup von counting-consumer auf endless-consumer umgestellt

* Da der Counting-Consumer von den Teilnehmern als Verbesserung des
  Endless-Consumer entwickelt wird, sollte dieser auch unter der selben
  Artefakt-ID abgelegt wird
* Ansonsten kommt es bei der Ausführung späterer Setups ggf. zu Fehlern,
  wenn diese weiterhin die Abweichende Artefakt-ID counting-consumer
  enthalten, obwohl folgende Verbesserungen wieder unter endless-consumer
  entwickelt wurden!

2 years agoSetup von counting-consumer auf endless-consumer umgestellt
Kai Moritz [Fri, 8 Apr 2022 10:35:31 +0000 (12:35 +0200)]
Setup von counting-consumer auf endless-consumer umgestellt

* Da der Counting-Consumer von den Teilnehmern als Verbesserung des
  Endless-Consumer entwickelt wird, sollte dieser auch unter der selben
  Artefakt-ID abgelegt wird
* Ansonsten kommt es bei der Ausführung späterer Setups ggf. zu Fehlern,
  wenn diese weiterhin die Abweichende Artefakt-ID counting-consumer
  enthalten, obwohl folgende Verbesserungen wieder unter endless-consumer
  entwickelt wurden!

2 years agoTags für die Übung ergänzt
Kai Moritz [Sun, 3 Apr 2022 13:49:23 +0000 (15:49 +0200)]
Tags für die Übung ergänzt

2 years agoExperimente zu acks-0 aus der Übung entfernt, weil sie nicht funzten
Kai Moritz [Sun, 3 Apr 2022 13:39:52 +0000 (15:39 +0200)]
Experimente zu acks-0 aus der Übung entfernt, weil sie nicht funzten

2 years agoSetup für die Übungen "acks"
Kai Moritz [Sat, 2 Apr 2022 21:57:37 +0000 (23:57 +0200)]
Setup für die Übungen "acks"

2 years agoBasis-Setup für die acks-Übungen
Kai Moritz [Sat, 2 Apr 2022 21:57:37 +0000 (23:57 +0200)]
Basis-Setup für die acks-Übungen

2 years agoBasis-Setup für Übungen zur Producer-Konfiguration
Kai Moritz [Sun, 3 Apr 2022 11:45:31 +0000 (13:45 +0200)]
Basis-Setup für Übungen zur Producer-Konfiguration

2 years agoHTTPie gibt nicht nur den Response, sondern auch den Request aus
Kai Moritz [Sun, 3 Apr 2022 10:18:34 +0000 (12:18 +0200)]
HTTPie gibt nicht nur den Response, sondern auch den Request aus

2 years agoMerge des Upgrades der Confluent-Images auf 7.0.2
Kai Moritz [Sun, 3 Apr 2022 06:26:19 +0000 (08:26 +0200)]
Merge des Upgrades der Confluent-Images auf 7.0.2

2 years agoMerge des Upgrades der Confluent-Images auf 7.0.2
Kai Moritz [Sun, 3 Apr 2022 06:17:21 +0000 (08:17 +0200)]
Merge des Upgrades der Confluent-Images auf 7.0.2

2 years agoUpgrade der Images von Confluent 6.2.0 auf 7.0.2
Kai Moritz [Sun, 3 Apr 2022 06:15:30 +0000 (08:15 +0200)]
Upgrade der Images von Confluent 6.2.0 auf 7.0.2

2 years agoDelivery-Timeout für den REST-Producer herabgesetzt
Kai Moritz [Sun, 3 Apr 2022 05:45:15 +0000 (07:45 +0200)]
Delivery-Timeout für den REST-Producer herabgesetzt

* Der Timeout für `delivery.timeout.ms` wurde von 2 Minuten auf 20
  Sekunden heruntergesetzt
* Grund: Die HTTP-Verbindungen der Clients laufen nach 30 Sekunden in
  den Default-Timeout, so dass die Fehler sonst nicht sichtbar werden!
* Achtung: Parallel musste dafür `request.timeout.ms` auf 10 Sekunden
  herabgesetzt werden, da `delivery.timeout.ms` größer oder gleich
  `request.timeout.ms` + `linger.ms` sein muss!
* Die 10s Spiel zwischen `delivery.timeout.ms` und `request.timeout.ms`
  werden für die Übungen benötigt, in denen mit `linger.ms` experimentiert
  werden soll...

2 years agoSetup für die Demonstration des Rest-Producers überarbeitet
Kai Moritz [Sat, 2 Apr 2022 21:08:11 +0000 (23:08 +0200)]
Setup für die Demonstration des Rest-Producers überarbeitet

2 years agoEndlessProducer in RestProducer umgearbeitet
Kai Moritz [Fri, 25 Mar 2022 09:56:17 +0000 (10:56 +0100)]
EndlessProducer in RestProducer umgearbeitet

* Der Producer nimmt die zu versendende Nachricht über ein POST entgegen
* Als Schlüssel wird der Pfad des POST-Aufrufs verwendet
* Die Anfragen werden mit einem DeferredResult asynchron verarbeitet
* Der Producer antwortet erst mit 200-OK, wenn die Nachricht bestätigt wurde
* Wenn der Broker mit einem Fehler antwortet, wird 500 zurückgegeben
* Wenn der Broker nicht erreicht werden kann, wird 400 zurückgegeben

2 years agoEndlessProducer in RestProducer umbenannt
Kai Moritz [Sat, 2 Apr 2022 15:00:36 +0000 (17:00 +0200)]
EndlessProducer in RestProducer umbenannt

* Ohne die Umbenennung _vor_ der Veränderung würde die Versions-Historie
  der Klasse verloren gehen!

2 years agoKorrekturen des README-Skriptes auf first-contact übernommen
Kai Moritz [Fri, 1 Apr 2022 11:41:14 +0000 (13:41 +0200)]
Korrekturen des README-Skriptes auf first-contact übernommen

2 years agoREADME.sh verwendet den cli-Service für Kommandos
Kai Moritz [Fri, 1 Apr 2022 09:56:34 +0000 (11:56 +0200)]
README.sh verwendet den cli-Service für Kommandos

2 years agoFehlerkorrektur aus first-contact gemerged
Kai Moritz [Fri, 25 Mar 2022 14:28:21 +0000 (15:28 +0100)]
Fehlerkorrektur aus first-contact gemerged

2 years agoFälschlich hartkodiertes Topic gegen Variable getauscht
Kai Moritz [Fri, 25 Mar 2022 14:27:50 +0000 (15:27 +0100)]
Fälschlich hartkodiertes Topic gegen Variable getauscht

2 years agoVerständliche Fehlermeldungen für DriverController
Kai Moritz [Fri, 25 Mar 2022 14:20:00 +0000 (15:20 +0100)]
Verständliche Fehlermeldungen für DriverController

2 years agoSynchronisation bei Start/Stop repariert und Ausgabe für Fehler ergänzt
Kai Moritz [Fri, 25 Mar 2022 13:06:53 +0000 (14:06 +0100)]
Synchronisation bei Start/Stop repariert und Ausgabe für Fehler ergänzt

2 years agoReorganisierten Code aus first-contact gemerged
Kai Moritz [Fri, 25 Mar 2022 12:36:52 +0000 (13:36 +0100)]
Reorganisierten Code aus first-contact gemerged

2 years agoSimpleProducer in Endless Producer umbenannt
Kai Moritz [Fri, 25 Mar 2022 11:44:48 +0000 (12:44 +0100)]
SimpleProducer in Endless Producer umbenannt

* Nötig, um die GIT-Historie zu reparieren, so dass Änderungen über die
  Umbenennung hinaus von GIT erkannt werden können.

2 years agoCode reorganisiert, um Änderungen vergleichbarer zu machen
Kai Moritz [Fri, 25 Mar 2022 10:19:03 +0000 (11:19 +0100)]
Code reorganisiert, um Änderungen vergleichbarer zu machen

2 years agoObsoletes Klassen-Attribut entfernt
Kai Moritz [Fri, 25 Mar 2022 09:11:07 +0000 (10:11 +0100)]
Obsoletes Klassen-Attribut entfernt

2 years agoMerge der Aktualisierungen aus first-contact
Kai Moritz [Fri, 25 Mar 2022 08:28:23 +0000 (09:28 +0100)]
Merge der Aktualisierungen aus first-contact

2 years agoUpgrade für Spring Boot 2.6.0 -> 2.6.5
Kai Moritz [Fri, 25 Mar 2022 08:25:54 +0000 (09:25 +0100)]
Upgrade für Spring Boot 2.6.0 -> 2.6.5

* Kafka: 3.0.1
* Spring Kafka: 2.8.4

2 years agoEndless Producer: a simple producer, implemented as Spring-Boot-App
Kai Moritz [Tue, 14 Dec 2021 18:09:57 +0000 (19:09 +0100)]
Endless Producer: a simple producer, implemented as Spring-Boot-App

2 years agoFirst Contact: Simple Producer & Consumer
Kai Moritz [Tue, 14 Dec 2021 17:55:02 +0000 (18:55 +0100)]
First Contact: Simple Producer & Consumer