993701ae0522390dea6d0ecae33b17636f52a77a
[demos/kafka/wordcount] / README.sh
1 #!/bin/bash
2
3 FORTUNE=juplo/wordcount--fortune:1.0.0
4 RECORDER=juplo/wordcount--recorder:1.0.0
5 USERS=juplo/wordcount--users:1.0.2
6 COUNTER=juplo/wordcount--counter:1.0.0
7 TOP10=juplo/wordcount--top10:1.0.0
8 QUERY=juplo/wordcount--query:1.0.2
9
10 if [ "$1" = "cleanup" ]
11 then
12   docker-compose down -v --remove-orphans
13   docker image rm $FORTUNE
14   docker image rm $RECORDER
15   docker image rm $USERS
16   docker image rm $COUNTER
17   docker image rm $TOP10
18   docker image rm $QUERY
19   exit
20 fi
21
22 if [[
23   $(docker image ls -q $FORTUNE) == "" ||
24   $(docker image ls -q $RECORDER) == "" ||
25   $(docker image ls -q $USERS) == "" ||
26   $(docker image ls -q $COUNTER) == "" ||
27   $(docker image ls -q $TOP10) == "" ||
28   $(docker image ls -q $QUERY) == "" ||
29   "$1" = "build"
30 ]]
31 then
32   mvn clean package || exit
33   docker-compose rm -svf recorder users counter top10 query
34   ( cd fortune; ./README.sh $FORTUNE; )
35   mvn -f recorder/pom.xml docker:build
36   mvn -f users/pom.xml docker:build
37   mvn -f counter/pom.xml docker:build
38   mvn -f top10/pom.xml docker:build
39   mvn -f query/pom.xml docker:build
40 else
41   echo "Using existing images:"
42   docker image ls $FORTUNE
43   docker image ls $RECORDER
44   docker image ls $USERS
45   docker image ls $COUNTER
46   docker image ls $TOP10
47   docker image ls $QUERY
48 fi
49
50
51 docker-compose up -d zookeeper kafka cli
52
53 echo "Waiting for the Kafka-Cluster to become ready..."
54 docker-compose exec cli cub kafka-ready -b kafka:9092 1 60 > /dev/null 2>&1 || exit 1
55 docker-compose exec cli zookeeper-shell zookeeper:2181 ls /brokers/ids
56
57 docker-compose up -d users
58 while [ "$(http :8082/actuator/health | jq -r .status 2> /dev/null)" != "UP" ]; do echo "Waiting for service users..."; sleep 1; done
59 http -v post :8082 username=bart firstName=Bart lastName=Simpson sex=MALE
60 http -v post :8082 username=nerd firstName=Jane lastName=Doe sex=FEMALE
61 http -v post :8082 username=riddler firstName=Rumpel lastName=Stilzchen sex=MALE
62
63 echo "Starting all instances..."
64 docker-compose up -d
65
66 while [ "$(http :8085/actuator/health 2>/dev/null | jq -r .status)" != "UP" ]; do echo "Waiting for service query..."; sleep 1; done
67 http -v :8085/bart
68 sleep 1
69 http -v :8085/bart
70 sleep 1
71 http -v :8085/bart
72 sleep 1
73 http -v :8085/bart
74 sleep 1
75 http -v :8085/bart
76 sleep 1
77 http -v :8085/bart
78 sleep 1
79 http -v :8085/bart
80 http -v :8085/nerd
81 http -v :8085/riddler