Weitere Tags für Übungs-Slide ergänzt
[demos/kafka/training] / README.sh
1 #!/bin/bash
2
3 IMAGE=juplo/rest-producer:1.0-SNAPSHOT
4
5 if [ "$1" = "cleanup" ]
6 then
7   docker-compose down -v
8   exit
9 fi
10
11 docker-compose up -d zookeeper kafka-1 kafka-2 kafka-3 cli
12
13 if [[
14   $(docker image ls -q $IMAGE) == "" ||
15   "$1" = "build"
16 ]]
17 then
18   mvn install || exit
19 else
20   echo "Using image existing images:"
21   docker image ls $IMAGE
22 fi
23
24 echo "Waiting for the Kafka-Cluster to become ready..."
25 docker-compose exec cli cub kafka-ready -b kafka:9092 3 60 > /dev/null 2>&1 || exit 1
26 docker-compose up setup
27 docker-compose up -d
28
29 while ! [[ $(http 0:8081/actuator/health 2> /dev/null) =~ "UP" ]]; do echo "Waiting for acks-1..."; sleep 1; done
30 while ! [[ $(http 0:8082/actuator/health 2> /dev/null) =~ "UP" ]]; do echo "Waiting for acks-all..."; sleep 1; done
31
32 sleep 5
33
34 # tag::foo[]
35 echo foo | http -v :8081/acks-1
36 echo foo | http -v :8082/acks-all
37 kafkacat -C -b :9092 -t test -o 0 -e -f'p=%p|o=%o|k=%k|v=%s\n'
38 # end::foo[]
39
40 # tag::stop[]
41 docker-compose stop kafka-1
42 # end::stop[]
43 docker-compose exec -T cli bash << 'EOF'
44 # tag::describe[]
45 kafka-topics --bootstrap-server kafka:9092 --describe --topic test
46 # end::describe[]
47 EOF
48
49 time echo bar | http -v :8081/acks-1
50 time echo bar | http -v :8081/acks-1
51 time echo bar | http -v :8082/acks-all
52 time echo bar | http -v :8082/acks-all
53 sleep 1
54 kafkacat -C -b :9092 -t test -o 0 -e -f'p=%p|o=%o|k=%k|v=%s\n'
55
56 docker-compose stop kafka-3
57 docker-compose exec cli kafka-topics --bootstrap-server kafka:9092 --describe --topic test
58
59 time echo foobar | http -v :8081/acks-1
60 time echo foobar | http -v :8081/acks-1
61 time echo foobar | http -v :8082/acks-all
62 sleep 1
63 kafkacat -C -b :9092 -t test -o 0 -e -f'p=%p|o=%o|k=%k|v=%s\n'