#!/bin/bash
-IMAGE=juplo/rest-producer:1.0-SNAPSHOT
-
if [ "$1" = "cleanup" ]
then
docker-compose down -v
docker-compose up -d zookeeper kafka-1 kafka-2 kafka-3 cli
-if [[
- $(docker image ls -q $IMAGE) == "" ||
- "$1" = "build"
-]]
-then
- mvn install || exit
-else
- echo "Using image existing images:"
- docker image ls $IMAGE
-fi
-
echo "Waiting for the Kafka-Cluster to become ready..."
docker-compose exec cli cub kafka-ready -b kafka:9092 3 60 > /dev/null 2>&1 || exit 1
docker-compose up setup
-docker-compose up -d
-
-while ! [[ $(http 0:8081/actuator/health 2> /dev/null) =~ "UP" ]]; do echo "Waiting for acks-1..."; sleep 1; done
-while ! [[ $(http 0:8082/actuator/health 2> /dev/null) =~ "UP" ]]; do echo "Waiting for acks-all..."; sleep 1; done
-# tag::foo[]
-echo foo | http -v :8081/acks-1
-echo foo | http -v :8082/acks-all
-kafkacat -C -b :9092 -t test -o 0 -e -f'p=%p|o=%o|k=%k|v=%s\n'
-# end::foo[]
+docker-compose up producer
+docker-compose up consumer
-# tag::stop[]
docker-compose stop kafka-1
docker-compose exec cli kafka-topics --bootstrap-server kafka:9092 --describe --topic test
-# end::stop[]
-time echo bar | http -v :8081/acks-1
-time echo bar | http -v :8081/acks-1
-time echo bar | http -v :8082/acks-all
-time echo bar | http -v :8082/acks-all
-sleep 1
-kafkacat -C -b :9092 -t test -o 0 -e -f'p=%p|o=%o|k=%k|v=%s\n'
+docker-compose up producer
+docker-compose up consumer
docker-compose stop kafka-3
docker-compose exec cli kafka-topics --bootstrap-server kafka:9092 --describe --topic test
-time echo foobar | http -v :8081/acks-1
-time echo foobar | http -v :8081/acks-1
-time echo foobar | http -v :8082/acks-all
-sleep 1
-kafkacat -C -b :9092 -t test -o 0 -e -f'p=%p|o=%o|k=%k|v=%s\n'
+docker-compose up producer
+docker-compose up consumer
+docker-compose up consumer
+docker-compose up consumer
depends_on:
- zookeeper
+ cli:
+ image: confluentinc/confluent-cli:7.1.3
+ command: sleep infinity
+
setup:
image: juplo/toolbox
command: >
kafka-topics --bootstrap-server kafka-1:9092 --describe --topic test
kafka-topics --bootstrap-server kafka-2:9092 --describe --topic test
kafka-topics --bootstrap-server kafka-3:9092 --describe --topic test
- kafka-topics --bootstrap-server kafka:9092 --describe --topic test | kafkacat -P -b kafka:9092 -t test -X acks=all
- kafkacat -C -b kafka:9092 -t test -o 0 -e
"
-
- cli:
- image: juplo/toolbox
- command: sleep infinity
-
- acks-all:
- image: juplo/rest-producer:1.0-SNAPSHOT
- ports:
- - 8082:8080
- environment:
- server.port: 8080
- producer.bootstrap-server: kafka:9092
- producer.client-id: acks-all
- producer.topic: test
- producer.acks: all
-
- acks-1:
- image: juplo/rest-producer:1.0-SNAPSHOT
- ports:
- - 8081:8080
- environment:
- server.port: 8080
- producer.bootstrap-server: kafka:9092
- producer.client-id: acks-1
- producer.topic: test
- producer.acks: 1
+ producer:
+ image: confluentinc/cp-kafkacat:7.1.3
+ command: >
+ bash -c "
+ echo 'hello world' | kafkacat -P -b kafka:9092 -t test -X acks=all
+ echo 'hello world' | kafkacat -P -b kafka:9092 -t test -X acks=all
+ echo 'hello world' | kafkacat -P -b kafka:9092 -t test -X acks=all
+ "
consumer:
- image: juplo/toolbox
- command: kafkacat -C -b kafka:9092 -t test -o 0 -f'p=%p|o=%o|k=%k|v=%s\n'
+ image: confluentinc/cp-kafkacat:7.1.3
+ command: kafkacat -C -b kafka:9092 -t test -o 0 -e -f'p=%p|o=%o|k=%k|v=%s\n'