Übertragung der Experimente mit kafka-producer-perftest aus Übung `batching`
[demos/kafka/training] / README.sh
1 #!/bin/bash
2
3 if [ "$1" = "cleanup" ]
4 then
5   docker-compose -f docker/docker-compose.yml down -t0 -v --remove-orphans
6   exit
7 fi
8
9 docker-compose -f docker/docker-compose.yml up -d --remove-orphans kafka-1 kafka-2 kafka-3
10 docker-compose -f docker/docker-compose.yml ps
11 echo "Waiting for the Kafka-Cluster to become ready..."
12 docker-compose -f docker/docker-compose.yml run --rm cli cub kafka-ready -b kafka:9092 3 60 > /dev/null 2>&1 || exit 1
13
14 docker-compose -f docker/docker-compose.yml up -t0 -d cli
15 sleep 1
16 docker-compose -f docker/docker-compose.yml logs setup
17
18 # --throughput -1 : Kein Throttling zur "künstlichen Kappung" des maximalen Durchsatzes
19 # --record-size   : Größe der einzelnen Nachricht in Bytes
20 # batch.size      : Größe der Batches in Bytes
21 # --num-records   : Variierende passend ausprobierte Werte, damit für die unterschiedlichen
22 #                   Batch-Size ungefähr gleich viele Zwischen-Schätzungen auflaufen
23
24 docker-compose -f docker/docker-compose.yml exec -T cli bash << EOF
25 echo "------------------- batch.size = 0 bytes"
26 kafka-producer-perf-test --topic test --record-size 1024 --num-records  100000 --throughput -1 --producer-props bootstrap.servers=kafka:9092 batch.size=0
27 echo
28 echo "------------------- batch.size = 8192 bytes"
29 kafka-producer-perf-test --topic test --record-size 1024 --num-records 1000000 --throughput -1 --producer-props bootstrap.servers=kafka:9092 batch.size=8192
30 echo
31 echo "------------------- batch.size = 16384 bytes"
32 kafka-producer-perf-test --topic test --record-size 1024 --num-records 1000000 --throughput -1 --producer-props bootstrap.servers=kafka:9092 batch.size=16384
33 echo
34 echo "------------------- batch.size = 32768 bytes"
35 kafka-producer-perf-test --topic test --record-size 1024 --num-records 1000000 --throughput -1 --producer-props bootstrap.servers=kafka:9092 batch.size=32768
36 echo
37 echo "------------------- batch.size = 524288 bytes (0.5 MB)"
38 kafka-producer-perf-test --topic test --record-size 1024 --num-records 5000000 --throughput -1 --producer-props bootstrap.servers=kafka:9092 batch.size=524288
39 EOF
40
41 # Default-Batchgröße: 16384 bytes = 16 kibibytes = ca. 16 kilobytes