README.sh führt das Verhalten bei einem fachlichen Fehler vor sumup-adder--springified--default-error-handling--logic-error
authorKai Moritz <kai@juplo.de>
Fri, 23 Sep 2022 08:06:34 +0000 (10:06 +0200)
committerKai Moritz <kai@juplo.de>
Fri, 23 Sep 2022 13:27:15 +0000 (15:27 +0200)
* 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.

README.sh
docker-compose.yml

index a2d813d..61900ca 100755 (executable)
--- 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[]
index a3da553..b49ca87 100644 (file)
@@ -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