From c5b071d155ae04e51f5918d1b5e7f5f0c63d0f3a Mon Sep 17 00:00:00 2001 From: Kai Moritz Date: Mon, 17 Mar 2025 17:57:54 +0100 Subject: [PATCH] Vorlage an `spring/spring-consumer--vorlage` angeglichen --- .../juplo/kafka/ApplicationConfiguration.java | 5 ++- .../java/de/juplo/kafka/ExampleConsumer.java | 41 +++++-------------- 2 files changed, 13 insertions(+), 33 deletions(-) diff --git a/src/main/java/de/juplo/kafka/ApplicationConfiguration.java b/src/main/java/de/juplo/kafka/ApplicationConfiguration.java index b98c401d..2b2799e2 100644 --- a/src/main/java/de/juplo/kafka/ApplicationConfiguration.java +++ b/src/main/java/de/juplo/kafka/ApplicationConfiguration.java @@ -18,7 +18,7 @@ public class ApplicationConfiguration { @Bean public ExampleConsumer exampleConsumer( - Consumer kafkaConsumer, + Consumer kafkaConsumer, // << TODO: Typisierung anpassen ApplicationProperties properties, ConfigurableApplicationContext applicationContext) { @@ -31,6 +31,7 @@ public class ApplicationConfiguration } @Bean(destroyMethod = "") + // TODO: Typisierung anpassen public KafkaConsumer kafkaConsumer(ApplicationProperties properties) { Properties props = new Properties(); @@ -48,7 +49,7 @@ public class ApplicationConfiguration props.put("metadata.maxage.ms", 5000); // 5 Sekunden props.put("partition.assignment.strategy", StickyAssignor.class.getName()); props.put("key.deserializer", StringDeserializer.class.getName()); - props.put("value.deserializer", StringDeserializer.class.getName()); + props.put("value.deserializer", StringDeserializer.class.getName()); // << TODO: Passende Strategie konfigurieren return new KafkaConsumer<>(props); } diff --git a/src/main/java/de/juplo/kafka/ExampleConsumer.java b/src/main/java/de/juplo/kafka/ExampleConsumer.java index 15c3959a..1d25f187 100644 --- a/src/main/java/de/juplo/kafka/ExampleConsumer.java +++ b/src/main/java/de/juplo/kafka/ExampleConsumer.java @@ -15,7 +15,7 @@ public class ExampleConsumer implements Runnable { private final String id; private final String topic; - private final Consumer consumer; + private final Consumer consumer; // << TODO: Typisierung anpassen private final Thread workerThread; private final Runnable closeCallback; @@ -45,22 +45,18 @@ public class ExampleConsumer implements Runnable try { log.info("{} - Subscribing to topic {}", id, topic); - consumer.subscribe(Arrays.asList(topic)); + // TODO: Aufruf von consumer.subscribe() while (true) { - ConsumerRecords records = consumer.poll(Duration.ofSeconds(1)); - - log.info("{} - Received {} messages", id, records.count()); - for (ConsumerRecord record : records) - { - handleRecord( - record.topic(), - record.partition(), - record.offset(), - record.key(), - record.value()); - } + // TODO: Poll & Consume aus Ihrer bisherigen Implementierung + // TODO: Verarbeitung abhängig vom Typ der Nachricht auslösen + // switch (value.getType()) + // { + // case ADD -> addNumber((MessageAddNumber)value); + // case CALC -> calcSum((MessageCalculateSum)value); + // default -> log.error("{} - Ignoring message of unknown typ {}", id, value.getType()); + //} } } catch(WakeupException e) @@ -82,23 +78,6 @@ public class ExampleConsumer implements Runnable } } - private void handleRecord( - String topic, - Integer partition, - Long offset, - String key, - String value) - { - consumed++; - log.info("{} - partition={}-{}, offset={}: {}={}", id, topic, partition, offset, key, value); - // switch (value.getType()) - // { - // case ADD -> addNumber((MessageAddNumber)value); - // case CALC -> calcSum((MessageCalculateSum)value); - // default -> log.error("{} - Ignoring message of unknown typ {}", id, value.getType()); - //} - } - private void addNumber(MessageAddNumber addNumber) { log.info("{} - Adding number {}", id, addNumber.getNext()); -- 2.20.1