Typ der Partition ist `Integer`: Demonstration des Fallbacks bei `null` producer/spring-producer--fixedsharding--null
authorKai Moritz <kai@juplo.de>
Tue, 29 Oct 2024 17:09:12 +0000 (18:09 +0100)
committerKai Moritz <kai@juplo.de>
Tue, 29 Oct 2024 18:04:56 +0000 (19:04 +0100)
* Die Idee, das Verhalten bei `null` in mit einer gemeinsamen Vorlage in
  einer Übung aufzuzeigen, ist für die Übungen nicht gut geeignet.
* _Grund:_ Während der Umsetzung werden immer einige TN die Anwendung aus
  der IDE heraus ausführen.
* Dabei wäre dann durch die gemeinsame Vorlage, die in der `application.yml`
  keinen Wert für die Partition vorgeben kann, `null` als Partition
  vorgegeben, so dass die Umsetzung (scheinbar) nicht funktioniert!
* In der eingebauten `application.yml` kann kein Wert vorgegeben werden, da
  dieser sonst später nicht überschrieben werden kann!
* Experimente haben gezeigt, dass sowohl eine leere Vorgabe, als auch die
  Vorgabe `null` (ohne Anführungszeichen), in der `docker-compose.yml` den
  Wert nicht zurücksetzen.

README.sh
src/main/java/de/juplo/kafka/ApplicationProperties.java
src/main/java/de/juplo/kafka/ExampleProducer.java
src/main/resources/application.yml

index 668e756..01372f7 100755 (executable)
--- a/README.sh
+++ b/README.sh
@@ -39,4 +39,4 @@ echo
 echo "Von consumer-2 empfangen:"
 docker compose -f docker/docker-compose.yml logs consumer-2 | grep '\ test\/.'
 
-docker compose -f docker/docker-compose.yml stop consumer-1 consumer-2
+docker compose -f docker/docker-compose.yml rm -svf consumer-1 consumer-2
index 8eebd09..8a263e8 100644 (file)
@@ -39,7 +39,6 @@ public class ApplicationProperties
     @NotNull
     @NotEmpty
     private String topic;
-    @NotNull
     private Integer partition;
     @NotNull
     @NotEmpty
index 2d043c2..23b4f90 100644 (file)
@@ -10,7 +10,7 @@ public class ExampleProducer implements Runnable
 {
   private final String id;
   private final String topic;
-  private final int partition;
+  private final Integer partition;
   private final int throttleMs;
   private final Producer<String, String> producer;
   private final Thread workerThread;
@@ -22,7 +22,7 @@ public class ExampleProducer implements Runnable
   public ExampleProducer(
     String id,
     String topic,
-    int partition,
+    Integer partition,
     int throttleMs,
     Producer<String, String> producer)
   {
index 79c5c98..b06f974 100644 (file)
@@ -3,7 +3,6 @@ juplo:
   client-id: DEV
   producer:
     topic: test
-    partition: 0
     acks: -1
     batch-size: 16384
     linger-ms: 0