]> juplo.de Git - demos/kafka/training/commitdiff
Vorlage für die `KafkaTemplate`-Übung springkafka/supersimple-producer--vorlage--claude-5
authorKai Moritz <kai@juplo.de>
Tue, 12 Nov 2024 18:01:01 +0000 (19:01 +0100)
committerKai Moritz <kai.milan.moritz@googlemail.com>
Fri, 29 May 2026 20:50:42 +0000 (20:50 +0000)
README.sh [deleted file]
src/main/java/de/juplo/kafka/ExampleProducer.java

diff --git a/README.sh b/README.sh
deleted file mode 100755 (executable)
index 24811ed..0000000
--- a/README.sh
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/bin/bash
-
-IMAGE=juplo/supersimple-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
-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 'partition=test-.'
-echo
-echo "Von ute empfangen:"
-docker compose -f docker/docker-compose.yml logs ute | grep 'partition=test-.'
-
-docker compose -f docker/docker-compose.yml stop peter ute
index 7477157dbce82043e42c14ceeb0dbdf91ad9ecab..36dc41409c4f8aff16b6a3d6f561af5fab7b7fd3 100644 (file)
@@ -1,20 +1,13 @@
 package de.juplo.kafka;
 
-import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.ApplicationArguments;
 import org.springframework.boot.ApplicationRunner;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.kafka.core.KafkaTemplate;
-import org.springframework.kafka.support.SendResult;
 
-import java.time.Duration;
-import java.util.concurrent.CompletableFuture;
 
-
-@Slf4j
-// tag::supersimple[]
 @SpringBootApplication
 public class ExampleProducer implements ApplicationRunner
 {
@@ -26,37 +19,7 @@ public class ExampleProducer implements ApplicationRunner
   {
     for (int i = 0; true; i++)
     {
-      // end::supersimple[]
-      // tag::callback[]
-      CompletableFuture<SendResult<String, String>> completableFuture =
-        // tag::supersimple[]
-        kafkaTemplate.sendDefault(Long.toString(i%10), Long.toString(i));
-      // end::supersimple[]
-
-      completableFuture.thenAccept(result ->
-        log.info(
-          "Sent {}={} to partition={}, offset={}",
-          result.getProducerRecord().key(),
-          result.getProducerRecord().value(),
-          result.getRecordMetadata().partition(),
-          result.getRecordMetadata().offset()));
-
-      completableFuture.exceptionally(e -> {
-        log.error("ERROR sending message", e);
-        return null;
-      });
-      // end::callback[]
-      // tag::supersimple[]
-
-      try
-      {
-        Thread.sleep(Duration.ofMillis(500));
-      }
-      catch (InterruptedException e)
-      {
-        Thread.currentThread().interrupt();
-        throw new RuntimeException(e);
-      }
+      kafkaTemplate.sendDefault(Long.toString(i%10), Long.toString(i));
     }
   }
 
@@ -65,4 +28,3 @@ public class ExampleProducer implements ApplicationRunner
     SpringApplication.run(ExampleProducer.class, args);
   }
 }
-// end::supersimple[]