WIP
[demos/kafka/demos-kafka-payment-system-setup] / README.sh
1 #!/bin/bash
2
3 if [ "$1" = "cleanup" ]
4 then
5   docker-compose down
6   mvn clean
7   exit
8 fi
9
10 mvn package || exit 1
11 if [ ! -e transfer/target/BUILD ] || [ "$(find transfer/target/classes/ -anewer transfer/target/BUILD | grep transfer/target/classes/de )" != "" ]
12 then
13   echo "Rebuilding Docker-Image..."
14   docker-compose rm -svf peter ute franz beate klaus
15   mvn -f transfer/pom.xml docker:build
16   touch transfer/target/BUILD
17 fi
18 if [ "$1" = "build" ]; then exit; fi
19
20 docker-compose up -d zookeeper kafka
21
22 while ! [[ $(docker-compose run --rm kafka zookeeper-shell zookeeper:2181 ls /brokers/ids 2> /dev/null) =~ 1001 ]]; do echo "Waiting for kafka..."; sleep 1; done
23
24 docker-compose run --rm kafka kafka-topics --zookeeper zookeeper:2181 --if-not-exists --create --replication-factor 1 --partitions 5 --topic transfers
25
26 docker-compose up -d peter ute franz beate klaus
27
28 docker-compose run --name transferlog --rm kafka kafka-console-consumer --bootstrap-server kafka:9093 --topic transfers &
29
30 while ! [[ $(http 0:8091/actuator/health 2> /dev/null | jq -r .status ) =~ "UP" ]]; do echo "Waiting for peter..."; sleep 1; done
31 while ! [[ $(http 0:8092/actuator/health 2> /dev/null | jq -r .status ) =~ "UP" ]]; do echo "Waiting for ute..."; sleep 1; done
32 while ! [[ $(http 0:8093/actuator/health 2> /dev/null | jq -r .status ) =~ "UP" ]]; do echo "Waiting for franz..."; sleep 1; done
33 while ! [[ $(http 0:8094/actuator/health 2> /dev/null | jq -r .status ) =~ "UP" ]]; do echo "Waiting for beate..."; sleep 1; done
34 while ! [[ $(http 0:8095/actuator/health 2> /dev/null | jq -r .status ) =~ "UP" ]]; do echo "Waiting for klaus..."; sleep 1; done
35
36 echo '{"id":1,"payer":1,"payee":2, "amount":10}' | http -v :8091/transfers
37 echo '{"id":1,"payer":1,"payee":2, "amount":10}' | http -v :8091/transfers
38 echo '{"id":1,"payer":1,"payee":2, "amount":10}' | http -v :8091/transfers
39 echo '{"id":1,"payer":1,"payee":2, "amount":10}' | http -v :8091/transfers
40 http --follow :8091/transfers/1
41 http -v  :8091/transfers id=2 payer=2 payee=1 amount=5
42 http --follow :8091/transfers/2
43 http -v  :8091/transfers id=12 payer=2 payee=1 amount=5
44 http -v  :8091/transfers id=21 payer=2 payee=1 amount=5
45 http -v  :8091/transfers id=9  payer=2 payee=1 amount=5
46 http -v  :8091/transfers id=7  payer=2 payee=1 amount=5
47 http -v  :8091/transfers id=9  payer=2 payee=1 amount=5
48 http -v  :8091/transfers id=9  payer=2 payee=1 amount=5
49 http -v  :8091/transfers id=9  payer=2 payee=1 amount=5
50 http -v  :8091/transfers id=13 payer=2 payee=1 amount=5
51 http -v  :8091/transfers id=31 payer=2 payee=1 amount=5
52 http -v  :8091/transfers id=31 payer=2 payee=1 amount=5
53 http -v --follow :8091/transfers/12
54 http -v --follow :8091/transfers/21
55 http -v --follow :8091/transfers/7
56 http -v --follow :8091/transfers/9
57 http -v --follow :8091/transfers/13
58 http -v --follow :8091/transfers/31
59
60 docker-compose restart peter ute franz beate klaus
61
62 while ! [[ $(http 0:8091/actuator/health 2> /dev/null | jq -r .status ) =~ "UP" ]]; do echo "Waiting for peter..."; sleep 1; done
63 while ! [[ $(http 0:8092/actuator/health 2> /dev/null | jq -r .status ) =~ "UP" ]]; do echo "Waiting for ute..."; sleep 1; done
64 while ! [[ $(http 0:8093/actuator/health 2> /dev/null | jq -r .status ) =~ "UP" ]]; do echo "Waiting for franz..."; sleep 1; done
65 while ! [[ $(http 0:8094/actuator/health 2> /dev/null | jq -r .status ) =~ "UP" ]]; do echo "Waiting for beate..."; sleep 1; done
66 while ! [[ $(http 0:8095/actuator/health 2> /dev/null | jq -r .status ) =~ "UP" ]]; do echo "Waiting for klaus..."; sleep 1; done
67
68 http -v --follow :8091/transfers/1
69 http -v --follow :8091/transfers/2
70 http -v --follow :8091/transfers/12
71 http -v --follow :8091/transfers/21
72 http -v --follow :8091/transfers/7
73 http -v --follow :8091/transfers/9
74 http -v --follow :8091/transfers/13
75 http -v --follow :8091/transfers/31
76
77
78 docker container stop transferlog