* Wie von den Logs nahegelegt, den `ErrorHandlingDeserializer` konfiguriert.
* Das `REAME.sh` führt das korrigierte Verhalten bei einer Poison Pill vor:
Der Consumer überspringt jetzt eine Poison Pill unmittelbar, wenn sie
auftritt.
echo 77 | http -v :8080/klaus
# end::nachrichten[]
-echo "Writing logic error..."
-# tag::logicerror[]
-echo 66 | http -v :8080/peter?error=1
-# end::logicerror[]
-
-echo 66 | http -v :8080/peter
-echo 7 | http -v :8080/klaus
-
-sleep 5
-
echo "Writing poison pill..."
# tag::poisonpill[]
echo 'BOOM!' | kafkacat -P -b :9092 -t test
# end::poisonpill[]
+echo 66 | http -v :8080/peter
+echo 7 | http -v :8080/klaus
+
sleep 5
docker-compose stop consumer-1 consumer-2
docker-compose logs -f consumer-1 consumer-2
auto-offset-reset: earliest
auto-commit-interval: 5s
key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
- value-deserializer: org.springframework.kafka.support.serializer.JsonDeserializer
+ value-deserializer: org.springframework.kafka.support.serializer.ErrorHandlingDeserializer
properties:
partition.assignment.strategy: org.apache.kafka.clients.consumer.StickyAssignor
metadata.max.age.ms: 1000
+ spring.deserializer.value.delegate.class: org.springframework.kafka.support.serializer.JsonDeserializer
spring.json.type.mapping: >
ADD:de.juplo.kafka.MessageAddNumber,
CALC:de.juplo.kafka.MessageCalculateSum