Compose-Setup an das aus den Producer-Übungen angepasst
authorKai Moritz <kai@juplo.de>
Tue, 2 Aug 2022 20:01:35 +0000 (22:01 +0200)
committerKai Moritz <kai@juplo.de>
Sun, 7 Aug 2022 17:10:17 +0000 (19:10 +0200)
* Es wird jetzt der Rest-Producer verwendet.
* Um die Nachrichten zu erzeugen, werden die Rest-Clients verwendet.
* Ziel: Dies ist näher an dem Setup aus den Wordcount-Übungen.
* Versucht das Timing in dem README-Skript unabhängiger von Timing-Fragen
  zu machen - scheitert aber daran, dass das Skript nicht gezielt darauf
  warten kann, dass das neu angelegte Topic zur Verfügung steht.

README.sh
docker-compose.yml

index b1ba0be..8915acf 100755 (executable)
--- a/README.sh
+++ b/README.sh
@@ -26,11 +26,14 @@ echo "Waiting for the Kafka-Cluster to become ready..."
 docker-compose exec cli cub kafka-ready -b kafka:9092 1 60 > /dev/null 2>&1 || exit 1
 docker-compose up setup
 docker-compose up -d
-sleep 5
 
-docker-compose exec cli kafkacat -b kafka:9092 -t test -q -c 20 -f'topic=%t\tpartition=%p\toffset=%o\tkey=%k\tvalue=%s\n'
+while ! [[ $(http 0:8080/actuator/health 2> /dev/null) =~ "UP" ]]; do echo "Waiting for producer..."; sleep 1; done
+sleep 5
+docker-compose exec cli kafkacat -b kafka-2:9092 -t test -q -c 10 -f'topic=%t\tpartition=%p\toffset=%o\tkey=%k\tvalue=%s\n'
+docker-compose exec cli kafkacat -b kafka-2:9092 -t test -q -c 10 -f'topic=%t\tpartition=%p\toffset=%o\tkey=%k\tvalue=%s\n'
+docker-compose exec cli kafkacat -b kafka-2:9092 -t test -q -c 10 -f'topic=%t\tpartition=%p\toffset=%o\tkey=%k\tvalue=%s\n'
 
-docker-compose stop producer consumer-1 consumer-2 consumer-3
+docker-compose stop peter klaus beate franz uschi consumer-1 consumer-2 consumer-3
 docker-compose logs consumer-1
 docker-compose logs consumer-2
 docker-compose logs consumer-3
index 6ab0d1b..449e2ac 100644 (file)
@@ -74,8 +74,54 @@ services:
     command: sleep infinity
 
   producer:
-    image: juplo/simple-producer:1.0-SNAPSHOT
-    command: producer
+    image: juplo/rest-producer:1.0-SNAPSHOT
+    ports:
+      - 8080:8080
+    environment:
+      server.port: 8080
+      producer.bootstrap-server: kafka:9092
+      producer.client-id: producer
+      producer.topic: test
+
+  peter:
+    image: juplo/rest-client:1.0-SNAPSHOT
+    environment:
+      server.port: 8080
+      rest-client.baseUrl: http://producer:8080
+      rest-client.username: peter
+      rest-client.throttle-ms: 1000
+
+  klaus:
+    image: juplo/rest-client:1.0-SNAPSHOT
+    environment:
+      server.port: 8080
+      rest-client.baseUrl: http://producer:8080
+      rest-client.username: klaus
+      rest-client.throttle-ms: 1100
+
+  beate:
+    image: juplo/rest-client:1.0-SNAPSHOT
+    environment:
+      server.port: 8080
+      rest-client.baseUrl: http://producer:8080
+      rest-client.username: beate
+      rest-client.throttle-ms: 900
+
+  franz:
+    image: juplo/rest-client:1.0-SNAPSHOT
+    environment:
+      server.port: 8080
+      rest-client.baseUrl: http://producer:8080
+      rest-client.username: franz
+      rest-client.throttle-ms: 800
+
+  uschi:
+    image: juplo/rest-client:1.0-SNAPSHOT
+    environment:
+      server.port: 8080
+      rest-client.baseUrl: http://producer:8080
+      rest-client.username: uschi
+      rest-client.throttle-ms: 1200
 
   consumer-1:
     image: juplo/simple-consumer:1.0-SNAPSHOT