`acks`-Übung auf das Setup aus `grundlagen/docker` umgestellt
[demos/kafka/training] / README.sh
1 #!/bin/bash
2
3 if [ "$1" = "cleanup" ]
4 then
5   docker-compose -f docker/docker-compose.yml down -t0 -v --remove-orphans
6   exit
7 fi
8
9 docker-compose -f docker/docker-compose.yml up -d --remove-orphans kafka-1 kafka-2 kafka-3
10
11 docker-compose -f docker/docker-compose.yml up --remove-orphans setup || exit 1
12
13 docker-compose -f docker/docker-compose.yml up -d acks-0 acks-1 acks-all
14 while ! [[ $(http 0:8080/actuator/health 2> /dev/null) =~ "UP" ]]; do echo "Waiting for acks-0...";   sleep 1; done
15 while ! [[ $(http 0:8081/actuator/health 2> /dev/null) =~ "UP" ]]; do echo "Waiting for acks-1...";   sleep 1; done
16 while ! [[ $(http 0:8082/actuator/health 2> /dev/null) =~ "UP" ]]; do echo "Waiting for acks-all..."; sleep 1; done
17
18 echo "Resetting the topic"
19 docker-compose -f docker/docker-compose.yml restart setup
20
21 docker-compose -f docker/docker-compose.yml exec -T cli bash << 'EOF'
22 # tag::describe[]
23 kafka-topics --bootstrap-server kafka:9092 --describe --topic test
24 # end::describe[]
25 EOF
26
27 # tag::foo[]
28 echo -n Alle Broker laufen über acks-0   | http -v :8080/foo
29 echo -n Alle Broker laufen über acks-1   | http -v :8081/foo
30 echo -n Alle Broker laufen über acks-all | http -v :8082/foo
31 # end::foo[]
32 echo
33 echo "Reading all messages, that were really written:"
34 # tag::foo[]
35 kafkacat -b :9092 -t test -o 0  -f'key: %k\toffset: %o\tvalue: %s\n' -qe
36 # end::foo[]
37
38 echo "Stopping kafka-1"
39 docker-compose -f docker/docker-compose.yml stop kafka-1
40 docker-compose -f docker/docker-compose.yml exec cli kafka-topics --bootstrap-server kafka:9092 --describe --topic test
41 echo
42 echo "Restarting acks-0 acks-1 acks-all"
43 docker-compose -f docker/docker-compose.yml restart acks-0 acks-1 acks-all
44 while ! [[ $(http 0:8080/actuator/health 2> /dev/null) =~ "UP" ]]; do echo "Waiting for acks-0...";   sleep 1; done
45 while ! [[ $(http 0:8081/actuator/health 2> /dev/null) =~ "UP" ]]; do echo "Waiting for acks-1...";   sleep 1; done
46 while ! [[ $(http 0:8082/actuator/health 2> /dev/null) =~ "UP" ]]; do echo "Waiting for acks-all..."; sleep 1; done
47
48 echo -n kafka-1 wurde beendet über acks-0   | http -v :8080/foo
49 echo -n kafka-1 wurde beendet über acks-1   | http -v :8081/foo
50 echo -n kafka-1 wurde beendet über acks-all | http -v :8082/foo
51 echo
52 echo "Reading all messages, that were really written:"
53 kafkacat -b :9092 -t test -o 0  -f'key: %k\toffset: %o\tvalue: %s\n' -qe
54
55 echo "Stopping kafka-3"
56 docker-compose -f docker/docker-compose.yml stop kafka-3
57 docker-compose -f docker/docker-compose.yml exec cli kafka-topics --bootstrap-server kafka:9092 --describe --topic test
58 echo
59 echo "Restarting acks-0 acks-1 acks-all"
60 docker-compose -f docker/docker-compose.yml restart acks-0 acks-1 acks-all
61 while ! [[ $(http 0:8080/actuator/health 2> /dev/null) =~ "UP" ]]; do echo "Waiting for acks-0...";   sleep 1; done
62 while ! [[ $(http 0:8081/actuator/health 2> /dev/null) =~ "UP" ]]; do echo "Waiting for acks-1...";   sleep 1; done
63 while ! [[ $(http 0:8082/actuator/health 2> /dev/null) =~ "UP" ]]; do echo "Waiting for acks-all..."; sleep 1; done
64
65 echo -n kafka-1 und kafka-3 wurden beendet über acks-0   | http -v :8080/foo
66 echo -n kafka-1 und kafka-3 wurden beendet über acks-1   | http -v :8081/foo
67 echo -n kafka-1 und kafka-3 wurden beendet über acks-all | http -v :8082/foo
68 echo
69 echo "Reading all messages, that were really written:"
70 kafkacat -b :9092 -t test -o 0  -f'key: %k\toffset: %o\tvalue: %s\n' -qe