From: Kai Moritz Date: Fri, 1 Apr 2022 09:40:14 +0000 (+0200) Subject: Fehler bei der Erzeugung des KafkaConsumer werden nicht mehr verschluckt X-Git-Tag: offset-endpoint~17 X-Git-Url: http://juplo.de/gitweb/?a=commitdiff_plain;ds=sidebyside;h=31530b8f210b923f5e010104b8a514a2060e7665;p=demos%2Fkafka%2Ftraining Fehler bei der Erzeugung des KafkaConsumer werden nicht mehr verschluckt * Beim Erzeugen der Properties-Instanz können Exceptions fliegen * Beim Erzeugen der KafkaConsumer-Instanz können Exception fliegen * Daher wurden diese Schritte in den try/catch-Block verlegt * Neben der Nachricht wird jetzt auch der ganze Stack-Trace gelogged * Da die Erzeugung des KafkaConsumer jetzt im try/catch-Block geschieht, wird der EndlessConsumer im Fehlerfall korrekt als beendet markiert --- diff --git a/src/main/java/de/juplo/kafka/EndlessConsumer.java b/src/main/java/de/juplo/kafka/EndlessConsumer.java index 22dce95..da2f8f0 100644 --- a/src/main/java/de/juplo/kafka/EndlessConsumer.java +++ b/src/main/java/de/juplo/kafka/EndlessConsumer.java @@ -48,18 +48,18 @@ public class EndlessConsumer implements Runnable @Override public void run() { - Properties props = new Properties(); - props.put("bootstrap.servers", bootstrapServer); - props.put("group.id", groupId); - props.put("client.id", id); - props.put("auto.offset.reset", "earliest"); - props.put("key.deserializer", StringDeserializer.class.getName()); - props.put("value.deserializer", StringDeserializer.class.getName()); - - this.consumer = new KafkaConsumer<>(props); - try { + Properties props = new Properties(); + props.put("bootstrap.servers", bootstrapServer); + props.put("group.id", groupId); + props.put("client.id", id); + props.put("auto.offset.reset", "earliest"); + props.put("key.deserializer", StringDeserializer.class.getName()); + props.put("value.deserializer", StringDeserializer.class.getName()); + + this.consumer = new KafkaConsumer<>(props); + log.info("{} - Subscribing to topic {}", id, topic); consumer.subscribe(Arrays.asList(topic)); @@ -91,7 +91,7 @@ public class EndlessConsumer implements Runnable } catch(Exception e) { - log.error("{} - Unexpected error: {}", id, e.toString()); + log.error("{} - Unexpected error: {}", id, e.toString(), e); running.set(false); // Mark the instance as not running } finally