Implementierung der Header entfernt - Übung kommt jetzt später
[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 -f docker/docker-compose.yml down -t0 -v --remove-orphans
8   mvn clean
9   exit
10 fi
11
12 docker-compose -f docker/docker-compose.yml up -d kafka-1 kafka-2 kafka-3
13 docker-compose -f docker/docker-compose.yml rm -svf producer producer-0 producer-1
14
15 if [[
16   $(docker image ls -q $IMAGE) == "" ||
17   "$1" = "build"
18 ]]
19 then
20   mvn clean install || exit
21 else
22   echo "Using image existing images:"
23   docker image ls $IMAGE
24 fi
25
26 echo "Waiting for the Kafka-Cluster to become ready..."
27 docker-compose -f docker/docker-compose.yml run --rm cli cub kafka-ready -b kafka:9092 3 60 > /dev/null 2>&1 || exit 1
28
29 docker-compose -f docker/docker-compose.yml up -t0 -d cli
30 sleep 1
31 docker-compose -f docker/docker-compose.yml logs setup
32
33 docker-compose -f docker/docker-compose.yml up -d producer-0 producer-1
34 while ! [[ $(http 0:8000/actuator/health 2> /dev/null) =~ "UP" ]]; do echo "Waiting for producer-0..."; sleep 1; done
35 while ! [[ $(http 0:8001/actuator/health 2> /dev/null) =~ "UP" ]]; do echo "Waiting for producer-1..."; sleep 1; done
36 docker-compose -f docker/docker-compose.yml up -d consumer
37
38 # tag::http[]
39 echo -n Nachricht 1 an Producer 0 | http -v :8000/foo
40 echo -n Nachricht 1 an Producer 1 | http -v :8001/foo
41 # end::http[]
42 echo -n Nachricht 2 an Producer 0 | http -v :8000/bar
43 echo -n Nachricht 2 an Producer 1 | http -v :8001/bar
44
45 docker-compose -f docker/docker-compose.yml logs consumer
46
47 docker-compose -f docker/docker-compose.yml exec -T cli bash << 'EOF'
48 echo "Altering number of partitions from 3 to 7..."
49 kafka-topics --bootstrap-server kafka:9092 --describe --topic test
50 # tag::repartitioning[]
51 kafka-topics --bootstrap-server kafka:9092 --alter --topic test --partitions 7
52 # end::repartitioning[]
53 kafka-topics --bootstrap-server kafka:9092 --describe --topic test
54 EOF
55
56 docker-compose -f docker/docker-compose.yml restart producer-0 producer-1
57 while ! [[ $(http 0:8000/actuator/health 2> /dev/null) =~ "UP" ]]; do echo "Waiting for producer-0..."; sleep 1; done
58 while ! [[ $(http 0:8001/actuator/health 2> /dev/null) =~ "UP" ]]; do echo "Waiting for producer-1..."; sleep 1; done
59
60 echo -n Nachricht 3 an Producer 0 | http -v :8000/foo
61 echo -n Nachricht 3 an Producer 1 | http -v :8001/foo
62 echo -n Nachricht 4 an Producer 0 | http -v :8000/bar
63 echo -n Nachricht 4 an Producer 1 | http -v :8001/bar
64
65 docker-compose -f docker/docker-compose.yml logs consumer
66
67 # tag::kafkacat[]
68 kafkacat -b :9092 -t test -o 0 -p0 -f'p=%p|o=%o|k=%k|v=%s\n' -qe
69 kafkacat -b :9092 -t test -o 0 -p1 -f'p=%p|o=%o|k=%k|v=%s\n' -qe
70 # end::kafkacat[]