Übertragung der Experimente mit kafka-producer-perftest aus Übung `batching`
[demos/kafka/training] / README.sh
index 8dcc24c..7014d54 100755 (executable)
--- a/README.sh
+++ b/README.sh
@@ -2,13 +2,38 @@
 
 if [ "$1" = "cleanup" ]
 then
-  docker-compose down -v
+  docker-compose -f docker/docker-compose.yml down -t0 -v --remove-orphans
   exit
 fi
 
-trap 'kill $(jobs -p) 2>/dev/null' EXIT
+docker-compose -f docker/docker-compose.yml up --remove-orphans setup || exit 1
+docker-compose -f docker/docker-compose.yml ps
 
-docker-compose up -d
+docker-compose -f docker/docker-compose.yml up -t0 -d cli
+sleep 1
+docker-compose -f docker/docker-compose.yml logs setup
 
-echo "Waiting for the Kafka-Cluster to become ready..."
-docker-compose exec cli cub kafka-ready -b kafka:9092 1 60 > /dev/null 2>&1 || exit 1
+# --throughput -1 : Kein Throttling zur "künstlichen Kappung" des maximalen Durchsatzes
+# --record-size   : Größe der einzelnen Nachricht in Bytes
+# batch.size      : Größe der Batches in Bytes
+# --num-records   : Variierende passend ausprobierte Werte, damit für die unterschiedlichen
+#                   Batch-Size ungefähr gleich viele Zwischen-Schätzungen auflaufen
+
+docker-compose -f docker/docker-compose.yml exec -T cli bash << EOF
+echo "------------------- batch.size = 0 bytes"
+kafka-producer-perf-test --topic test --record-size 1024 --num-records  100000 --throughput -1 --producer-props bootstrap.servers=kafka:9092 batch.size=0
+echo
+echo "------------------- batch.size = 8192 bytes"
+kafka-producer-perf-test --topic test --record-size 1024 --num-records 1000000 --throughput -1 --producer-props bootstrap.servers=kafka:9092 batch.size=8192
+echo
+echo "------------------- batch.size = 16384 bytes"
+kafka-producer-perf-test --topic test --record-size 1024 --num-records 1000000 --throughput -1 --producer-props bootstrap.servers=kafka:9092 batch.size=16384
+echo
+echo "------------------- batch.size = 32768 bytes"
+kafka-producer-perf-test --topic test --record-size 1024 --num-records 1000000 --throughput -1 --producer-props bootstrap.servers=kafka:9092 batch.size=32768
+echo
+echo "------------------- batch.size = 524288 bytes (0.5 MB)"
+kafka-producer-perf-test --topic test --record-size 1024 --num-records 5000000 --throughput -1 --producer-props bootstrap.servers=kafka:9092 batch.size=524288
+EOF
+
+# Default-Batchgröße: 16384 bytes = 16 kibibytes = ca. 16 kilobytes