From 7fb4bdb91e549626367a0af182f14b7d01df5d38 Mon Sep 17 00:00:00 2001 From: Kai Moritz Date: Sat, 28 Sep 2024 11:58:11 +0200 Subject: [PATCH] Vorlage * `metadata.maxage.ms` auf 5 Sekunden heruntergesetzt * `README.sh` entfernt * Aufruf von `close()` in der Vorlage entfernt * Hinweis auf Callback aus der Vorlage entfernt --- README.sh | 36 -------------- .../java/de/juplo/kafka/ExampleProducer.java | 49 +++---------------- 2 files changed, 6 insertions(+), 79 deletions(-) delete mode 100755 README.sh diff --git a/README.sh b/README.sh deleted file mode 100755 index 3d98ace7..00000000 --- a/README.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/bash - -IMAGE=juplo/simple-producer:1.0-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 producer - -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 -sleep 5 - -docker compose -f docker/docker-compose.yml exec cli kafkacat -b kafka:9092 -t test -c 20 -f'topic=%t\tpartition=%p\toffset=%o\tkey=%k\tvalue=%s\n' - -docker compose -f docker/docker-compose.yml stop producer -docker compose -f docker/docker-compose.yml exec cli kafkacat -b kafka:9092 -t test -e -f'topic=%t\tpartition=%p\toffset=%o\tkey=%k\tvalue=%s\n' -docker compose -f docker/docker-compose.yml logs producer diff --git a/src/main/java/de/juplo/kafka/ExampleProducer.java b/src/main/java/de/juplo/kafka/ExampleProducer.java index c3db7e7c..c9d8d1eb 100644 --- a/src/main/java/de/juplo/kafka/ExampleProducer.java +++ b/src/main/java/de/juplo/kafka/ExampleProducer.java @@ -26,10 +26,7 @@ public class ExampleProducer String clientId) { Properties props = new Properties(); - props.put("bootstrap.servers", broker); - props.put("client.id", clientId); // Nur zur Wiedererkennung - props.put("key.serializer", StringSerializer.class.getName()); - props.put("value.serializer", StringSerializer.class.getName()); + // TODO: Konfiguration für den Producer zusammenstellen this.id = clientId; this.topic = topic; @@ -54,8 +51,6 @@ public class ExampleProducer } finally { - log.info("{}: Closing the KafkaProducer", id); - producer.close(); log.info("{}: Produced {} messages in total, exiting!", id, produced); done = true; } @@ -65,43 +60,11 @@ public class ExampleProducer { final long time = System.currentTimeMillis(); - final ProducerRecord record = new ProducerRecord<>( - topic, // Topic - key, // Key - value // Value - ); - - producer.send(record, (metadata, e) -> - { - long now = System.currentTimeMillis(); - if (e == null) - { - // HANDLE SUCCESS - produced++; - log.debug( - "{} - Sent message {}={}, partition={}, offset={}, timestamp={}, latency={}ms", - id, - key, - value, - metadata.partition(), - metadata.offset(), - metadata.timestamp(), - now - time - ); - } - else - { - // HANDLE ERROR - log.error( - "{} - ERROR for message {}={}, latency={}ms: {}", - id, - key, - value, - now - time, - e.toString() - ); - } - }); + ProducerRecord record = null; + // TODO: + // + // 1. ProducerRecord erzeugen + // 2. Record mit producer.send(...) verschicken long now = System.currentTimeMillis(); log.trace( -- 2.20.1