From 95fadb0feaf54b70fab7965a6e1346426f7df271 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 a45c1505..a73ff1af 100644 --- a/src/main/java/de/juplo/kafka/ApplicationConfiguration.java +++ b/src/main/java/de/juplo/kafka/ApplicationConfiguration.java @@ -17,7 +17,7 @@ public class ApplicationConfiguration { @Bean public ExampleConsumer exampleConsumer( - Consumer kafkaConsumer, + Consumer kafkaConsumer, // << TODO: Typisierung anpassen ApplicationProperties properties, ConfigurableApplicationContext applicationContext) { @@ -29,6 +29,7 @@ public class ApplicationConfiguration } @Bean(destroyMethod = "") + // TODO: Typisierung anpassen public KafkaConsumer kafkaConsumer(ApplicationProperties properties) { Properties props = new Properties(); @@ -45,7 +46,7 @@ public class ApplicationConfiguration } props.put("metadata.max.age.ms", 5000); // 5 Sekunden 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 30120f8f..974d0f61 100644 --- a/src/main/java/de/juplo/kafka/ExampleConsumer.java +++ b/src/main/java/de/juplo/kafka/ExampleConsumer.java @@ -16,7 +16,7 @@ public class ExampleConsumer implements Runnable, SmartLifecycle { private final String id; private final String topic; - private final Consumer consumer; + private final Consumer consumer; // << TODO: Typisierung anpassen private Thread workerThread; private volatile boolean running = false; @@ -53,22 +53,18 @@ public class ExampleConsumer implements Runnable, SmartLifecycle 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) @@ -88,23 +84,6 @@ public class ExampleConsumer implements Runnable, SmartLifecycle } } - 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.39.5