From: Kai Moritz Date: Fri, 23 Sep 2022 08:06:34 +0000 (+0200) Subject: README.sh führt das Verhalten bei einem fachlichen Fehler vor X-Git-Url: https://juplo.de/gitweb/?a=commitdiff_plain;h=c40ca6ceaaeea3f0fd5f8cc01c02299310467d45;p=demos%2Fkafka%2Ftraining README.sh führt das Verhalten bei einem fachlichen Fehler vor * In diesem Fall zieht die von der Auto-Konfiguration erzeugte `+FixedBackOffStrategy+`. * Diese führt 10 Retries durch, bevor sie einen Seek hinter den Offset durchführt, der den Fehler auslöst. * Per Default ist kein `Recoverer` als Strategie vorgegeben. * D.h., wenn alle Retries scheitern, wird die Nachricht, die den Fehler ausgelöst hat lediglich gelogged und der Offset wird auf die nächste Position nach dem Fehler vorgespult. * Hier kann dann der `+DeadLetterPublishingRecoverer+` konfiguriert werden, damit diese Fehler nicht nur gelogged, sondern als neue Nachrichten in das Dead-Letter-Topic geschrieben werden. --- diff --git a/README.sh b/README.sh index a2d813d..61900ca 100755 --- a/README.sh +++ b/README.sh @@ -34,78 +34,53 @@ while ! [[ $(http 0:8080/actuator/health 2> /dev/null) =~ "UP" ]]; do echo "Wait while ! [[ $(http 0:8081/actuator/health 2> /dev/null) =~ "UP" ]]; do echo "Waiting for requests-1..."; sleep 1; done while ! [[ $(http 0:8082/actuator/health 2> /dev/null) =~ "UP" ]]; do echo "Waiting for requests-2..."; sleep 1; done -docker-compose up -d peter klaus +docker-compose up -d adder-1 adder-2 -docker-compose up -d adder-1 while ! [[ $(http 0:8091/actuator/health 2> /dev/null) =~ "UP" ]]; do echo "Waiting for adder-1..."; sleep 1; done -while [[ "$(http :8091/results | jq -r .)" == "{}" ]]; do echo "Waiting for some results to show up on adder-1..."; sleep 1; done -http -v --pretty none -S :8091/results -echo - -sleep 3 -echo "Resultate für adder-1" -http -v --pretty none -S :8091/results -echo - -echo "Resultate für peter von adder-1" -http :8091/results/peter | jq .[].sum | uniq -echo "Resultate für klaus von adder-1" -http :8091/results/klaus | jq .[].sum | uniq - - -docker-compose up -d adder-2 while ! [[ $(http 0:8092/actuator/health 2> /dev/null) =~ "UP" ]]; do echo "Waiting for adder-2..."; sleep 1; done +while [[ "$(http :8091/results | jq -r .)" == "{}" ]]; do echo "Waiting for some results to show up on adder-1..."; sleep 1; done while [[ "$(http :8092/results | jq -r .)" == "{}" ]]; do echo "Waiting for some results to show up on adder-2..."; sleep 1; done -http -v --pretty none -S :8092/results -echo - -sleep 3 -echo "Resultate für adder-2" -http -v --pretty none -S :8092/results -echo -echo "Resultate für peter von adder-1" -http :8091/results/peter | jq .[].sum | uniq -echo "Resultate für klaus von adder-1" -http :8091/results/klaus | jq .[].sum | uniq - -echo "Resultate für peter von adder-2" -http :8092/results/peter | jq .[].sum | uniq -echo "Resultate für klaus von adder-2" -http :8092/results/klaus | jq .[].sum | uniq - -docker-compose stop adder-1 -until [ $(http --check-status :8092/results/peter 2> /dev/null) ]; do echo "Waiting for some results for peter to show up on adder-2..."; sleep 1; done -until [ $(http --check-status :8092/results/klaus 2> /dev/null) ]; do echo "Waiting for some results for klaus to show up on adder-2..."; sleep 1; done +echo 6 | http -v :8080/peter +echo 6 | http -v :8080/klaus +echo "Resultate für adder-1" +http -v :8091/results echo "Resultate für adder-2" -http -v --pretty none -S :8092/results -echo - -echo "Resultate für peter von adder-2" -http :8092/results/peter | jq .[].sum | uniq -echo "Resultate für klaus von adder-2" -http :8092/results/klaus | jq .[].sum | uniq +http -v :8092/results -docker-compose kill -s 9 adder-2 +sleep 5 +echo "Resultate & Status für adder-1" +http -v :8091/results +http -v :8091/actuator/health +echo "Resultate & Status für adder-2" +http -v :8092/results +http -v :8092/actuator/health + +echo "Stopping adder-1 & adder-2" +# tag::stop[] +docker-compose stop adder-1 adder-2 +# end::stop[] + +docker-compose logs --tail=50 adder-1 adder-2 + +echo "Restarting adder-1" +# tag::start[] docker-compose start adder-1 -docker-compose kill -s 9 peter klaus +# end::start[] while ! [[ $(http 0:8091/actuator/health 2> /dev/null) =~ "UP" ]]; do echo "Waiting for adder-1..."; sleep 1; done -until [ $(http --check-status :8091/results/peter 2> /dev/null) ]; do echo "Waiting for some results for peter to show up on adder-1..."; sleep 1; done -until [ $(http --check-status :8091/results/klaus 2> /dev/null) ]; do echo "Waiting for some results for klaus to show up on adder-1..."; sleep 1; done - -echo "Resultate für adder-1" -http -v --pretty none -S :8091/results -echo - -echo "Resultate für peter von adder-1" -http :8091/results/peter | jq .[].sum | uniq -echo "Resultate für klaus von adder-1" -http :8091/results/klaus | jq .[].sum | uniq +while [[ "$(http :8091/results | jq -r .)" == "{}" ]]; do echo "Waiting for some results to show up on adder-1..."; sleep 1; done sleep 5 +echo "Resultate & Status für adder-1" +# tag::status[] +http -v :8091/results +http -v :8091/actuator/health +# end::status[] + +docker-compose stop adder-1 +docker-compose logs --tail=50 adder-1 -echo "Resultate für peter von adder-1" -http :8091/results/peter | jq .[].sum | uniq -echo "Resultate für klaus von adder-1" -http :8091/results/klaus | jq .[].sum | uniq +# tag::dlt[] +kafkacat -b :9092 -t out.DLT -f'p=%p|o=%o|%k=%s\n' -o 0 -e +# end::dlt[] diff --git a/docker-compose.yml b/docker-compose.yml index a3da553..b49ca87 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -99,13 +99,13 @@ services: command: sleep infinity gateway: - image: juplo/sumup-gateway--springified:1.0-SNAPSHOT + image: juplo/sumup-gateway:1.0-SNAPSHOT ports: - 8080:8080 environment: server.port: 8080 - spring.kafka.bootstrap-servers: kafka:9092 - spring.kafka.client-id: gateway + sumup.gateway.bootstrap-server: kafka:9092 + sumup.gateway.client-id: gateway sumup.gateway.topic: in requests-1: @@ -118,13 +118,14 @@ services: sumup.requests.client-id: requests-1 requests-2: - image: juplo/sumup-requests-json:1.0-SNAPSHOT + image: juplo/sumup-requests-fehlerteufel:1.0-SNAPSHOT ports: - 8082:8080 environment: server.port: 8080 sumup.requests.bootstrap-server: kafka:9092 sumup.requests.client-id: requests-2 + sumup.requests.error-position: 6 adder-1: image: juplo/sumup-adder-springified:1.0-SNAPSHOT