`acks`-Übung auf das Setup aus `grundlagen/docker` umgestellt
[demos/kafka/training] / README.sh
index 626d366..45a4ba6 100755 (executable)
--- a/README.sh
+++ b/README.sh
@@ -6,29 +6,65 @@ then
   exit
 fi
 
-docker-compose -f docker/docker-compose.yml up -d kafka-1 kafka-2 kafka-3
-docker-compose -f docker/docker-compose.yml ps
-echo "Waiting for the Kafka-Cluster to become ready..."
-docker-compose -f docker/docker-compose.yml run --rm cli cub kafka-ready -b kafka:9092 3 60 > /dev/null 2>&1 || exit 1
+docker-compose -f docker/docker-compose.yml up -d --remove-orphans kafka-1 kafka-2 kafka-3
 
-docker-compose -f docker/docker-compose.yml up -t0 -d cli
-sleep 1
-docker-compose -f docker/docker-compose.yml logs setup
+docker-compose -f docker/docker-compose.yml up --remove-orphans setup || exit 1
 
+docker-compose -f docker/docker-compose.yml up -d acks-0 acks-1 acks-all
+while ! [[ $(http 0:8080/actuator/health 2> /dev/null) =~ "UP" ]]; do echo "Waiting for acks-0...";   sleep 1; done
+while ! [[ $(http 0:8081/actuator/health 2> /dev/null) =~ "UP" ]]; do echo "Waiting for acks-1...";   sleep 1; done
+while ! [[ $(http 0:8082/actuator/health 2> /dev/null) =~ "UP" ]]; do echo "Waiting for acks-all..."; sleep 1; done
+
+echo "Resetting the topic"
+docker-compose -f docker/docker-compose.yml restart setup
+
+docker-compose -f docker/docker-compose.yml exec -T cli bash << 'EOF'
+# tag::describe[]
+kafka-topics --bootstrap-server kafka:9092 --describe --topic test
+# end::describe[]
+EOF
+
+# tag::foo[]
+echo -n Alle Broker laufen über acks-0   | http -v :8080/foo
+echo -n Alle Broker laufen über acks-1   | http -v :8081/foo
+echo -n Alle Broker laufen über acks-all | http -v :8082/foo
+# end::foo[]
 echo
-echo "Hilfe-Ausgabe von kafkacat"
-echo
-docker-compose -f docker/docker-compose.yml exec -T cli kafkacat -h
+echo "Reading all messages, that were really written:"
+# tag::foo[]
+kafkacat -b :9092 -t test -o 0  -f'key: %k\toffset: %o\tvalue: %s\n' -qe
+# end::foo[]
+
+echo "Stopping kafka-1"
+docker-compose -f docker/docker-compose.yml stop kafka-1
+docker-compose -f docker/docker-compose.yml exec cli kafka-topics --bootstrap-server kafka:9092 --describe --topic test
 echo
-echo "Nachrichten schreiben mit kafkacat"
+echo "Restarting acks-0 acks-1 acks-all"
+docker-compose -f docker/docker-compose.yml restart acks-0 acks-1 acks-all
+while ! [[ $(http 0:8080/actuator/health 2> /dev/null) =~ "UP" ]]; do echo "Waiting for acks-0...";   sleep 1; done
+while ! [[ $(http 0:8081/actuator/health 2> /dev/null) =~ "UP" ]]; do echo "Waiting for acks-1...";   sleep 1; done
+while ! [[ $(http 0:8082/actuator/health 2> /dev/null) =~ "UP" ]]; do echo "Waiting for acks-all..."; sleep 1; done
+
+echo -n kafka-1 wurde beendet über acks-0   | http -v :8080/foo
+echo -n kafka-1 wurde beendet über acks-1   | http -v :8081/foo
+echo -n kafka-1 wurde beendet über acks-all | http -v :8082/foo
 echo
-docker-compose -f docker/docker-compose.yml exec -T cli kafkacat -P -b kafka:9092 -t test << EOF
-Hallo Welt!
-Nachricht #1
-Nachricht #2
-Nachricht #3
-EOF
+echo "Reading all messages, that were really written:"
+kafkacat -b :9092 -t test -o 0  -f'key: %k\toffset: %o\tvalue: %s\n' -qe
+
+echo "Stopping kafka-3"
+docker-compose -f docker/docker-compose.yml stop kafka-3
+docker-compose -f docker/docker-compose.yml exec cli kafka-topics --bootstrap-server kafka:9092 --describe --topic test
 echo
-echo "Nachrichten lesen mit kafkacat"
+echo "Restarting acks-0 acks-1 acks-all"
+docker-compose -f docker/docker-compose.yml restart acks-0 acks-1 acks-all
+while ! [[ $(http 0:8080/actuator/health 2> /dev/null) =~ "UP" ]]; do echo "Waiting for acks-0...";   sleep 1; done
+while ! [[ $(http 0:8081/actuator/health 2> /dev/null) =~ "UP" ]]; do echo "Waiting for acks-1...";   sleep 1; done
+while ! [[ $(http 0:8082/actuator/health 2> /dev/null) =~ "UP" ]]; do echo "Waiting for acks-all..."; sleep 1; done
+
+echo -n kafka-1 und kafka-3 wurden beendet über acks-0   | http -v :8080/foo
+echo -n kafka-1 und kafka-3 wurden beendet über acks-1   | http -v :8081/foo
+echo -n kafka-1 und kafka-3 wurden beendet über acks-all | http -v :8082/foo
 echo
-docker-compose -f docker/docker-compose.yml exec cli kafkacat -C -b kafka:9092 -t test -o beginning -e
+echo "Reading all messages, that were really written:"
+kafkacat -b :9092 -t test -o 0  -f'key: %k\toffset: %o\tvalue: %s\n' -qe