Vorlage für die Übung zu Deserialisieruns-Fehlern consumer/spring-consumer--deserialization-error--vorlage--generics4all consumer/spring-consumer--deserialization-error--vorlage--generics4some
authorKai Moritz <kai@juplo.de>
Sun, 10 Nov 2024 16:42:58 +0000 (17:42 +0100)
committerKai Moritz <kai@juplo.de>
Fri, 21 Feb 2025 14:50:52 +0000 (15:50 +0100)
README.sh [deleted file]
src/main/java/de/juplo/kafka/ExampleConsumer.java

diff --git a/README.sh b/README.sh
deleted file mode 100755 (executable)
index 392b237..0000000
--- a/README.sh
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/bin/bash
-
-IMAGE=juplo/spring-consumer:1.1-deserialization-error-SNAPSHOT
-
-if [ "$1" = "cleanup" ]
-then
-  docker compose -f docker/docker-compose.yml down -t0 -v --remove-orphans
-  mvn clean
-  exit
-fi
-
-docker compose -f docker/docker-compose.yml up -d --remove-orphans kafka-1 kafka-2 kafka-3
-docker compose -f docker/docker-compose.yml rm -svf peter ute
-
-if [[
-  $(docker image ls -q $IMAGE) == "" ||
-  "$1" = "build"
-]]
-then
-  mvn clean install || exit
-else
-  echo "Using image existing images:"
-  docker image ls $IMAGE
-fi
-
-docker compose -f docker/docker-compose.yml up --remove-orphans setup || exit 1
-
-
-docker compose -f docker/docker-compose.yml up -d producer
-docker compose -f docker/docker-compose.yml up -d peter ute
-sleep 15
-
-docker compose -f docker/docker-compose.yml stop producer
-
-echo
-echo "Von peter empfangen:"
-docker compose -f docker/docker-compose.yml logs peter | grep '\ test\/.'
-echo
-echo "Von ute empfangen:"
-docker compose -f docker/docker-compose.yml logs ute | grep '\ test\/.'
-
-docker compose -f docker/docker-compose.yml stop peter ute
index 6554da4..a6691c3 100644 (file)
@@ -4,7 +4,6 @@ import lombok.extern.slf4j.Slf4j;
 import org.apache.kafka.clients.consumer.Consumer;
 import org.apache.kafka.clients.consumer.ConsumerRecord;
 import org.apache.kafka.clients.consumer.ConsumerRecords;
-import org.apache.kafka.common.errors.RecordDeserializationException;
 import org.apache.kafka.common.errors.WakeupException;
 
 import java.time.Duration;
@@ -52,30 +51,17 @@ public class ExampleConsumer<K, V> implements Runnable
 
       while (running)
       {
-        try
-        {
-          ConsumerRecords<K, V> records = consumer.poll(Duration.ofSeconds(1));
-
-          log.info("{} - Received {} messages", id, records.count());
-          for (ConsumerRecord<K, V> record : records)
-          {
-            handleRecord(
-              record.topic(),
-              record.partition(),
-              record.offset(),
-              record.key(),
-              record.value());
-          }
-        }
-        catch (RecordDeserializationException e)
+        ConsumerRecords<K, V> records = consumer.poll(Duration.ofSeconds(1));
+
+        log.info("{} - Received {} messages", id, records.count());
+        for (ConsumerRecord<K, V> record : records)
         {
-          log.error(
-            "{} - Ignoring invalid record for offset {} on partition {}: {}",
-            id,
-            e.offset(),
-            e.topicPartition(),
-            e.getMessage());
-          consumer.seek(e.topicPartition(), e.offset() + 1);
+          handleRecord(
+            record.topic(),
+            record.partition(),
+            record.offset(),
+            record.key(),
+            record.value());
         }
       }
     }