3 IMAGE=juplo/rest-producer:1.0-SNAPSHOT
5 if [ "$1" = "cleanup" ]
7 docker-compose -f docker/docker-compose.yml down -t0 -v --remove-orphans
12 docker-compose -f docker/docker-compose.yml up -d --remove-orphans kafka-1 kafka-2 kafka-3
13 docker-compose -f docker/docker-compose.yml rm -svf producer producer-0 producer-1
16 $(docker image ls -q $IMAGE) == "" ||
20 mvn clean install || exit
22 echo "Using image existing images:"
23 docker image ls $IMAGE
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
29 docker-compose -f docker/docker-compose.yml up -t0 -d cli
31 docker-compose -f docker/docker-compose.yml logs setup
33 docker-compose -f docker/docker-compose.yml up -d producer
34 while ! [[ $(http 0:8080/actuator/health 2> /dev/null) =~ "UP" ]]; do echo "Waiting for producer..."; sleep 1; done
37 echo -n Nachricht 1 an klaus über producer | http -v :8080/klaus
39 echo -n Nachricht 2 an klaus über producer | http -v :8080/klaus
41 echo -n Nachricht 1 an peter über producer | http -v :8080/peter
43 echo -n Nachricht 3 an klaus über producer | http -v :8080/klaus
44 echo -n Nachricht 2 an peter über producer | http -v :8080/peter
45 echo -n Nachricht 3 an peter über producer | http -v :8080/peter
47 echo Nachrichten in Partition 0:
48 kafkacat -b :9092 -t test -o 0 -p0 -f'key: %k\toffset: %o\tvalue: %s\n' -qe
50 echo Nachrichten in Partition 1:
51 kafkacat -b :9092 -t test -o 0 -p1 -f'key: %k\toffset: %o\tvalue: %s\n' -qe
54 docker-compose -f docker/docker-compose.yml exec -T cli bash << 'EOF'
55 echo "Altering number of partitions from 2 to 3..."
56 kafka-topics --bootstrap-server kafka:9092 --describe --topic test
57 # tag::repartitioning[]
58 kafka-topics --bootstrap-server kafka:9092 --alter --topic test --partitions 3
59 # end::repartitioning[]
60 kafka-topics --bootstrap-server kafka:9092 --describe --topic test
63 docker-compose -f docker/docker-compose.yml restart producer
64 while ! [[ $(http 0:8080/actuator/health 2> /dev/null) =~ "UP" ]]; do echo "Waiting for producer..."; sleep 1; done
66 echo -n Nachricht 4 an klaus über producer | http -v :8080/klaus
67 echo -n Nachricht 5 an peter über producer | http -v :8080/peter
68 echo -n Nachricht 4 an peter über producer | http -v :8080/peter
69 echo -n Nachricht 5 an klaus über producer | http -v :8080/klaus
70 echo -n Nachricht 6 an klaus über producer | http -v :8080/klaus
71 echo -n Nachricht 6 an peter über producer | http -v :8080/peter
73 echo Nachrichten in Partition 0:
75 kafkacat -b :9092 -t test -o 0 -p0 -f'key: %k\toffset: %o\tvalue: %s\n' -qe
78 echo Nachrichten in Partition 1:
80 kafkacat -b :9092 -t test -o 0 -p1 -f'key: %k\toffset: %o\tvalue: %s\n' -qe
83 echo Nachrichten in Partition 2:
84 kafkacat -b :9092 -t test -o 0 -p2 -f'key: %k\toffset: %o\tvalue: %s\n' -qe
87 docker-compose -f docker/docker-compose.yml restart setup
89 docker-compose -f docker/docker-compose.yml up -d producer-0 producer-1
90 while ! [[ $(http 0:8000/actuator/health 2> /dev/null) =~ "UP" ]]; do echo "Waiting for producer-0..."; sleep 1; done
91 while ! [[ $(http 0:8001/actuator/health 2> /dev/null) =~ "UP" ]]; do echo "Waiting for producer-1..."; sleep 1; done
94 echo -n Nachricht 1 über producer-0 | http -v :8000/klaus
95 echo -n Nachricht 1 über producer-1 | http -v :8001/klaus
96 echo -n Nachricht 2 über producer-0 | http -v :8000/peter
97 echo -n Nachricht 2 über producer-1 | http -v :8001/peter
100 docker-compose -f docker/docker-compose.yml exec -T cli bash << 'EOF'
101 echo "Altering number of partitions from 2 to 3..."
102 kafka-topics --bootstrap-server kafka:9092 --describe --topic test
103 kafka-topics --bootstrap-server kafka:9092 --alter --topic test --partitions 3
104 kafka-topics --bootstrap-server kafka:9092 --describe --topic test
107 docker-compose -f docker/docker-compose.yml restart producer-0 producer-1
108 while ! [[ $(http 0:8000/actuator/health 2> /dev/null) =~ "UP" ]]; do echo "Waiting for producer-0..."; sleep 1; done
109 while ! [[ $(http 0:8001/actuator/health 2> /dev/null) =~ "UP" ]]; do echo "Waiting for producer-1..."; sleep 1; done
111 echo -n Nachricht 3 über producer-0 | http -v :8000/klaus
112 echo -n Nachricht 3 über producer-1 | http -v :8001/klaus
113 echo -n Nachricht 4 über producer-0 | http -v :8000/peter
114 echo -n Nachricht 4 über producer-1 | http -v :8001/peter
116 echo Nachrichten in Partition 0:
117 kafkacat -b :9092 -t test -o 0 -p0 -f'key: %k\toffset: %o\tvalue: %s\n' -qe
119 echo Nachrichten in Partition 1:
120 kafkacat -b :9092 -t test -o 0 -p1 -f'key: %k\toffset: %o\tvalue: %s\n' -qe
122 echo Nachrichten in Partition 2:
123 kafkacat -b :9092 -t test -o 0 -p2 -f'key: %k\toffset: %o\tvalue: %s\n' -qe