Kai Moritz [Thu, 7 Apr 2022 10:49:09 +0000 (12:49 +0200)]
Consumer aus der IDE spielt mit
* Sonst läuft bei Experimenten die MongoDB auseinander
* Denn in die schreiben die Docker-Instanzen und die IDE-Instanz
* Deswegen gehört jetzt auch die IDE-Instanz zu der Consumer-Group, die
in Docker-Compose verwendet wird.
* *ANMERKUNG:*
** Da die gezählten Keys jetzt in der MongoDB gespeichert werden, wird
jetzt die Störung der Partitionierung durch die Änderung der Anzahl
der Partitionen wieder sichtbar, _obwohl_ zwischendurch ein Wechsel
der zuständigen Consumer-Instanz erfolgt
** D.h., es wird deutlich, wie sehr Zustand, der aus einer Partition
aufgebaut wird, unter einer Änderung der Partitions-Anzahl leidet!
Kai Moritz [Thu, 7 Apr 2022 07:25:41 +0000 (09:25 +0200)]
Rückbau auf verschachtelte Maps
* Die zuvor erfundenen fachlichen Klassen passen nicht zu dazu, dass man
sie - wie gedacht - direkt in MongoDB stopfen könnte.
* Daher hier erst mal der Rückbau auf Maps, da das dan für die Übungen
einfacher ist.
Kai Moritz [Tue, 5 Apr 2022 20:37:55 +0000 (22:37 +0200)]
Report über gesehene Schlüssel wiederbelebt
* An der alten Stelle war die Map ja jetzt nur noch leer, da dem Consumer
zu dem Zeitpunkt, an dem die gesehen Schlüssel ausgegeben wurden, bereits
alle Partitionen entzogen worden sind.
* Daher werden die gesehenen Schlüssel jetzt ausgegeben, wenn eine
Partition entzogen wird.
Kai Moritz [Fri, 1 Apr 2022 20:02:28 +0000 (22:02 +0200)]
Der Consumer zählt jetzt die Nachrichten pro Key für jedes Topic
* Die Ergebnisse werden beim Beenden des Consumer ausgegeben
* Wenn der Consumer neu gestartet wird, werden die Ergebnisse zurückgesetzt
* Über /seen können Zwischenstände abgefragt werden
Kai Moritz [Fri, 1 Apr 2022 09:40:14 +0000 (11:40 +0200)]
Fehler bei der Erzeugung des KafkaConsumer werden nicht mehr verschluckt
* Beim Erzeugen der Properties-Instanz können Exceptions fliegen
* Beim Erzeugen der KafkaConsumer-Instanz können Exception fliegen
* Daher wurden diese Schritte in den try/catch-Block verlegt
* Neben der Nachricht wird jetzt auch der ganze Stack-Trace gelogged
* Da die Erzeugung des KafkaConsumer jetzt im try/catch-Block geschieht,
wird der EndlessConsumer im Fehlerfall korrekt als beendet markiert