fi
-docker compose up -d kafka cli traefik
-
-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
+echo "Starting the service 'users'..."
docker compose up -d users
while [ "$(http users.localhost/actuator/health 2> /dev/null | jq -r .status 2> /dev/null)" != "UP" ]; do echo "Waiting for service users..."; sleep 1; done
http -v post users.localhost username=bart firstName=Bart lastName=Simpson sex=MALE
http -v post users.localhost username=nerd firstName=Jane lastName=Doe sex=FEMALE
http -v post users.localhost username=riddler firstName=Rumpel lastName=Stilzchen sex=MALE
-echo "Starting all instances..."
-docker compose up -d
+echo "Starting the other instances..."
+docker compose up -d recorder
+docker compose up -d splitter
+docker compose up -d counter
+docker compose up -d top10
+docker compose up -d query
+
+echo "Starting the simulated users..."
+docker compose up -d bart nerd riddler
while [ "$(http query.localhost/actuator/health 2>/dev/null | jq -r .status 2> /dev/null)" != "UP" ]; do echo "Waiting for service query..."; sleep 1; done
http -v query.localhost/bart
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"
+
recorder:
image: juplo/wordcount--recorder:1.0.1
labels:
depends_on:
- kafka
+
bart:
image: juplo/wordcount--fortune:1.0.0
command: bash -c "
sleep 1;
done"
+
cli:
image: juplo/toolbox
- command: bash -c "
- cub kafka-ready -b kafka:9092 1 60 ;
- kafka-topics --bootstrap-server kafka:9092 --create --partitions 10 --if-not-exists --topic recordings ;
- kafka-topics --bootstrap-server kafka:9092 --create --partitions 10 --if-not-exists --topic users ;
- kafka-topics --bootstrap-server kafka:9092 --create --partitions 10 --if-not-exists --topic words ;
- kafka-topics --bootstrap-server kafka:9092 --create --partitions 10 --if-not-exists --topic countings ;
- kafka-topics --bootstrap-server kafka:9092 --create --partitions 10 --if-not-exists --topic top10 ;
- sleep infinity"
+ command: sleep infinity
+ stop_grace_period: 0s
+ depends_on:
+ - kafka
+ - traefik
+
+ setup:
+ image: juplo/toolbox
+ command:
+ - bash
+ - -c
+ - |
+ cub kafka-ready -b kafka:9092 1 60 > /dev/null 2>&1 || exit 1
+ if [ -e INITIALIZED ]
+ then
+ echo -n Bereits konfiguriert:
+ cat INITIALIZED
+ kafka-topics --bootstrap-server kafka:9092 --describe --topic users
+ kafka-topics --bootstrap-server kafka:9092 --describe --topic recordings
+ kafka-topics --bootstrap-server kafka:9092 --describe --topic words
+ kafka-topics --bootstrap-server kafka:9092 --describe --topic countings
+ kafka-topics --bootstrap-server kafka:9092 --describe --topic top10
+ else
+ kafka-topics --bootstrap-server kafka:9092 \
+ --delete \
+ --if-exists \
+ --topic users
+ kafka-topics --bootstrap-server kafka:9092 \
+ --delete \
+ --if-exists \
+ --topic recordings
+ kafka-topics --bootstrap-server kafka:9092 \
+ --delete \
+ --if-exists \
+ --topic words
+ kafka-topics --bootstrap-server kafka:9092 \
+ --delete \
+ --if-exists \
+ --topic countings
+ kafka-topics --bootstrap-server kafka:9092 \
+ --delete \
+ --if-exists \
+ --topic top10
+ kafka-topics --bootstrap-server kafka:9092 \
+ --create \
+ --topic users \
+ --partitions 3 \
+ --replication-factor 1 \
+ --config min.insync.replicas=1 \
+ && echo Das Topic \'users\' wurde erfolgreich angelegt: \
+ && kafka-topics --bootstrap-server kafka:9092 --describe --topic users \
+ && kafka-topics --bootstrap-server kafka:9092 \
+ --create \
+ --topic recordings \
+ --partitions 3 \
+ --replication-factor 1 \
+ --config min.insync.replicas=1 \
+ && echo Das Topic \'recordings\' wurde erfolgreich angelegt: \
+ && kafka-topics --bootstrap-server kafka:9092 --describe --topic recordings \
+ && kafka-topics --bootstrap-server kafka:9092 \
+ --create \
+ --topic words \
+ --partitions 3 \
+ --replication-factor 1 \
+ --config min.insync.replicas=1 \
+ && echo Das Topic \'words\' wurde erfolgreich angelegt: \
+ && kafka-topics --bootstrap-server kafka:9092 --describe --topic words \
+ && kafka-topics --bootstrap-server kafka:9092 \
+ --create \
+ --topic countings \
+ --partitions 3 \
+ --replication-factor 1 \
+ --config min.insync.replicas=1 \
+ && echo Das Topic \'countings\' wurde erfolgreich angelegt: \
+ && kafka-topics --bootstrap-server kafka:9092 --describe --topic countings \
+ && kafka-topics --bootstrap-server kafka:9092 \
+ --create \
+ --topic top10 \
+ --partitions 3 \
+ --replication-factor 1 \
+ --config min.insync.replicas=1 \
+ && echo Das Topic \'top10\' wurde erfolgreich angelegt: \
+ && kafka-topics --bootstrap-server kafka:9092 --describe --topic top10 \
+ && date > INITIALIZED
+ fi
+ stop_grace_period: 0s
+ depends_on:
+ - cli
akhq:
image: tchiotludo/akhq:0.18.0