#!/bin/bash
FORTUNE=juplo/wordcount--fortune:1.0.0
-RECORDER=juplo/wordcount--recorder:1.0.1
-USERS=juplo/wordcount--users:1.0.4
-SPLITTER=juplo/wordcount--splitter:1.0.0
-COUNTER=juplo/wordcount--counter:1.1.0
-TOP10=juplo/wordcount--top10:1.0.1
-QUERY=juplo/wordcount--query:1.0.4
+RECORDER=juplo/wordcount--recorder:1.2.0
+USERS=juplo/wordcount--users:1.0.5
+SPLITTER=juplo/wordcount--splitter:1.2.0
+COUNTER=juplo/wordcount--counter:1.3.1
+TOP10=juplo/wordcount--top10:1.2.1
+QUERY=juplo/wordcount--query:2.0.1
+POPULAR=juplo/wordcount--popular:1.0.0
if [ "$1" = "cleanup" ]
then
docker image rm $COUNTER
docker image rm $TOP10
docker image rm $QUERY
+ docker image rm $POPULAR
exit
fi
$(docker image ls -q $COUNTER) == "" ||
$(docker image ls -q $TOP10) == "" ||
$(docker image ls -q $QUERY) == "" ||
+ $(docker image ls -q $POPULAR) == "" ||
"$1" = "build"
]]
then
mvn clean package || exit
- docker compose rm -svf recorder users splitter counter top10 query
+ docker compose rm -svf recorder users splitter counter top10 query popular
( cd fortune; ./README.sh $FORTUNE; )
mvn -f recorder/pom.xml docker:build
mvn -f users/pom.xml docker:build
mvn -f counter/pom.xml docker:build
mvn -f top10/pom.xml docker:build
mvn -f query/pom.xml docker:build
+ mvn -f popular/pom.xml docker:build
else
echo "Using existing images:"
docker image ls $FORTUNE
docker image ls $COUNTER
docker image ls $TOP10
docker image ls $QUERY
+ docker image ls $POPULAR
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
http -v query.localhost/nerd
http -v query.localhost/riddler
-// docker compose up -d --scale query=5 query
+# docker compose up -d --scale query=5 query
http -v --follow query.localhost/bart
sleep 1
http -v --follow query.localhost/bart