docker-compose.yml
version: '3'
services:
zookeeper:
image: wurstmeister/zookeeper
container_name: zookeeper
ports:
- "2181:2181"
kafka:
image: wurstmeister/kafka
container_name: kafka
ports:
- "9092:9092"
environment:
KAFKA_ADVERTISED_HOST_NAME: localhost
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181- services – configures the services that will be executed in separate containers. Here, we have configured two services zookeeper and kafka
- image – defines the base image or snapshot to build the container. Here, we have used wurstmeister/zookeeper and wurstmeister/kafka images to build their respective containers.
- container_name – the name of containers.
- ports – specifies the exposing point of containers.
- environment – defines the environment variables for the container. Here, we have set KAFKA_ADVERTISED_HOST_NAME and KAFKA_ZOOKEEPER_CONNECT for the kafka container.
Start Containers
docker-compose up -dOutput
...
Status: Downloaded newer image for wurstmeister/kafka:latest
Creating zookeeper ... done
Creating kafka ... done
Start the kafka container interactive shell
docker exec -it kafka /bin/shcd /opt
ls… in our case:
kafka kafka_2.13-2.8.1 overridesUse your version
# cd kafka_2.13-2.8.1/bin
# ls
connect-distributed.sh
connect-mirror-maker.sh
connect-standalone.sh
kafka-acls.sh
kafka-broker-api-versions.sh
kafka-cluster.sh
kafka-configs.sh
kafka-console-consumer.sh
kafka-console-producer.sh
kafka-consumer-groups.sh
kafka-consumer-perf-test.sh
kafka-delegation-tokens.sh
kafka-delete-records.sh
kafka-dump-log.sh
kafka-features.sh
kafka-leader-election.sh
kafka-log-dirs.sh
kafka-metadata-shell.sh
kafka-mirror-maker.sh
kafka-preferred-replica-election.sh
kafka-producer-perf-test.sh
kafka-reassign-partitions.sh
kafka-replica-verification.sh
kafka-run-class.sh
kafka-server-start.sh
kafka-server-stop.sh
kafka-storage.sh
kafka-streams-application-reset.sh
kafka-topics.sh
kafka-verifiable-consumer.sh
kafka-verifiable-producer.sh
trogdor.sh
zookeeper-security-migration.sh
zookeeper-server-start.sh
zookeeper-server-stop.sh
zookeeper-shell.sh
#
Create New Topic
kafka-topics.sh
kafka-topics.sh --create --zookeeper zookeeper:2181 --replication-factor 1 --partitions 1 --topic Demo-topic
Created topic Demo-topic.
Verification
kafka-topics.sh
kafka-topics.sh --list --zookeeper zookeeper:2181
Demo-topic
Run Producer to Generate Messages
kafka-console-producer.sh
kafka-console-producer.sh --topic Demo-topic --bootstrap-server localhost:9092
>Hello
>jreact.com
>Using Docker Compose
>^C# Run Consumer
kafka-console-consumer.sh
kafka-console-consumer.sh --topic Demo-topic --from-beginning --bootstrap-server localhost:9092
Hello
jreact.com
Using Docker Compose
^CProcessed a total of 3 messages
–
