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 docker-compose -f docker/docker-compose.yml up --remove-orphans setup || exit 1
28 docker-compose -f docker/docker-compose.yml up -t0 -d cli
30 docker-compose -f docker/docker-compose.yml logs setup
32 docker-compose -f docker/docker-compose.yml up -d producer
33 while ! [[ $(http 0:8080/actuator/health 2> /dev/null) =~ "UP" ]]; do echo "Waiting for producer..."; sleep 1; done
36 echo -n Nachricht 1 an klaus über producer | http -v :8080/klaus
38 echo -n Nachricht 2 an klaus über producer | http -v :8080/klaus
40 echo -n Nachricht 1 an peter über producer | http -v :8080/peter
42 echo -n Nachricht 3 an klaus über producer | http -v :8080/klaus
43 echo -n Nachricht 2 an peter über producer | http -v :8080/peter
44 echo -n Nachricht 3 an peter über producer | http -v :8080/peter
46 echo Nachrichten in Partition 0:
47 kafkacat -b :9092 -t test -o 0 -p0 -f'key: %k\toffset: %o\tvalue: %s\n' -qe
49 echo Nachrichten in Partition 1:
50 kafkacat -b :9092 -t test -o 0 -p1 -f'key: %k\toffset: %o\tvalue: %s\n' -qe
53 docker-compose -f docker/docker-compose.yml exec -T cli bash << 'EOF'
54 echo "Altering number of partitions from 2 to 3..."
55 kafka-topics --bootstrap-server kafka:9092 --describe --topic test
56 # tag::repartitioning[]
57 kafka-topics --bootstrap-server kafka:9092 --alter --topic test --partitions 3
58 # end::repartitioning[]
59 kafka-topics --bootstrap-server kafka:9092 --describe --topic test
62 docker-compose -f docker/docker-compose.yml restart producer
63 while ! [[ $(http 0:8080/actuator/health 2> /dev/null) =~ "UP" ]]; do echo "Waiting for producer..."; sleep 1; done
65 echo -n Nachricht 4 an klaus über producer | http -v :8080/klaus
66 echo -n Nachricht 5 an peter über producer | http -v :8080/peter
67 echo -n Nachricht 4 an peter über producer | http -v :8080/peter
68 echo -n Nachricht 5 an klaus über producer | http -v :8080/klaus
69 echo -n Nachricht 6 an klaus über producer | http -v :8080/klaus
70 echo -n Nachricht 6 an peter über producer | http -v :8080/peter
72 echo Nachrichten in Partition 0:
74 kafkacat -b :9092 -t test -o 0 -p0 -f'key: %k\toffset: %o\tvalue: %s\n' -qe
77 echo Nachrichten in Partition 1:
79 kafkacat -b :9092 -t test -o 0 -p1 -f'key: %k\toffset: %o\tvalue: %s\n' -qe
82 echo Nachrichten in Partition 2:
83 kafkacat -b :9092 -t test -o 0 -p2 -f'key: %k\toffset: %o\tvalue: %s\n' -qe
86 docker-compose -f docker/docker-compose.yml restart setup
88 docker-compose -f docker/docker-compose.yml up -d producer-0 producer-1
89 while ! [[ $(http 0:8000/actuator/health 2> /dev/null) =~ "UP" ]]; do echo "Waiting for producer-0..."; sleep 1; done
90 while ! [[ $(http 0:8001/actuator/health 2> /dev/null) =~ "UP" ]]; do echo "Waiting for producer-1..."; sleep 1; done
93 echo -n Nachricht 1 über producer-0 | http -v :8000/klaus
94 echo -n Nachricht 1 über producer-1 | http -v :8001/klaus
95 echo -n Nachricht 2 über producer-0 | http -v :8000/peter
96 echo -n Nachricht 2 über producer-1 | http -v :8001/peter
99 docker-compose -f docker/docker-compose.yml exec -T cli bash << 'EOF'
100 echo "Altering number of partitions from 2 to 3..."
101 kafka-topics --bootstrap-server kafka:9092 --describe --topic test
102 kafka-topics --bootstrap-server kafka:9092 --alter --topic test --partitions 3
103 kafka-topics --bootstrap-server kafka:9092 --describe --topic test
106 docker-compose -f docker/docker-compose.yml restart producer-0 producer-1
107 while ! [[ $(http 0:8000/actuator/health 2> /dev/null) =~ "UP" ]]; do echo "Waiting for producer-0..."; sleep 1; done
108 while ! [[ $(http 0:8001/actuator/health 2> /dev/null) =~ "UP" ]]; do echo "Waiting for producer-1..."; sleep 1; done
110 echo -n Nachricht 3 über producer-0 | http -v :8000/klaus
111 echo -n Nachricht 3 über producer-1 | http -v :8001/klaus
112 echo -n Nachricht 4 über producer-0 | http -v :8000/peter
113 echo -n Nachricht 4 über producer-1 | http -v :8001/peter
115 echo Nachrichten in Partition 0:
116 kafkacat -b :9092 -t test -o 0 -p0 -f'key: %k\toffset: %o\tvalue: %s\n' -qe
118 echo Nachrichten in Partition 1:
119 kafkacat -b :9092 -t test -o 0 -p1 -f'key: %k\toffset: %o\tvalue: %s\n' -qe
121 echo Nachrichten in Partition 2:
122 kafkacat -b :9092 -t test -o 0 -p2 -f'key: %k\toffset: %o\tvalue: %s\n' -qe