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

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 agoSpring Boot von 2.6.5 auf 2.7.1 aktualisiert
Kai Moritz [Sat, 25 Jun 2022 09:55:01 +0000 (11:55 +0200)]
Spring Boot von 2.6.5 auf 2.7.1 aktualisiert

2 years agoÜberflüssige Abhängigkeit entfernt
Kai Moritz [Sat, 25 Jun 2022 09:58:56 +0000 (11:58 +0200)]
Überflüssige Abhängigkeit entfernt

2 years agoDas Topic wird über `spring.kafka.template.default-topic` konfiguriert
Kai Moritz [Sun, 12 Jun 2022 09:33:28 +0000 (11:33 +0200)]
Das Topic wird über `spring.kafka.template.default-topic` konfiguriert

2 years agoDas erzeugen des `ProducerRecord` wird dem `KafkaTemplate` überlassen
Kai Moritz [Sun, 12 Jun 2022 08:57:42 +0000 (10:57 +0200)]
Das erzeugen des `ProducerRecord` wird dem `KafkaTemplate` überlassen

2 years agoFür das Versenden wird das `KafkaTemplate` von Spring verwendet
Kai Moritz [Sun, 12 Jun 2022 08:43:50 +0000 (10:43 +0200)]
Für das Versenden wird das `KafkaTemplate` von Spring verwendet

* Dabei wird weiterhin ein `ProducerRecord` erzeugt und dem
  `KafkaTemplate` übergeben, um die Änderungen möglichst übersichtlich
  zu halten.
* Die zuvor über `ApplicationProperties` einstellbaren Parameter wurden
  in der `application.yml` entsprechend in dem `spring.kafka.*`-Namespace
  gesetzt.
* Eintragung in den per Actuator veröffentlichten Infos angepasst.

2 years agoFür PUT anstelle von POST wird eine `FooMessage` als `foo` verschickt
Kai Moritz [Tue, 31 May 2022 04:17:07 +0000 (06:17 +0200)]
Für PUT anstelle von POST wird eine `FooMessage` als `foo` verschickt

2 years agoSetup für die Demonstration des Springfied-Producer überarbeitet
Kai Moritz [Tue, 31 May 2022 04:02:43 +0000 (06:02 +0200)]
Setup für die Demonstration des Springfied-Producer überarbeitet

2 years agoFür den Nachrichten-Schlüssel wird `.trim()` aufgerufen
Kai Moritz [Tue, 31 May 2022 04:02:06 +0000 (06:02 +0200)]
Für den Nachrichten-Schlüssel wird `.trim()` aufgerufen

2 years agoSpringify: Can send multiple types of messages
Kai Moritz [Sat, 28 May 2022 14:55:44 +0000 (16:55 +0200)]
Springify: Can send multiple types of messages

* `ClientMessage` is send as `message`
* `Greeting` is send as `greeting`

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 agoSpringify: Type-Mapping für den Nachrichten-Typ ergänzt
Kai Moritz [Sun, 17 Apr 2022 10:48:43 +0000 (12:48 +0200)]
Springify: Type-Mapping für den Nachrichten-Typ ergänzt

2 years agoSpringify: Der Payload ist eine als JSON gerenderte Klasse
Kai Moritz [Sun, 12 Jun 2022 13:14:49 +0000 (15:14 +0200)]
Springify: Der Payload ist eine als JSON gerenderte Klasse

* Als Nachricht wird eine Instanz der Klasse `ClientMessage` verschickt
* Die Instanz wird mit Hilfe des `JsonSerializer` von Spring Kafka
  serialisiert.

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 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