Apache Kafka : Kafka is a distributed, partitioned, replicated commit log service. It provides the functionality of a messaging system.
Docker containers : wrap up a piece of software in a complete filesystem that contains everything it needs to run: code, runtime, system tools, system libraries – anything you can install on a server. This guarantees that it will always run the same, regardless of the environment it is running in.
in this quick demo I will make use of a Docker image to run Apache Kafka in a Docker container.
Env: Single node pre-installed with RHEL7
Docker Installation:
Apache Kafka setup
1. pull the docker image for the zookeeper
3. Run zookeeper docker container in detach mode
4. Run docker container for Kafka
5. get host ip where zk is running
6. get host ip where kafka is running
7. in the next course of action lets create a topic for that start interactive shell
8. start a kafka producer which will publish vmstat output of every one second to the broker
9. open a different shell and start a consumer
the consumer will start running and consume the vmstat logs from the producer.
Docker containers : wrap up a piece of software in a complete filesystem that contains everything it needs to run: code, runtime, system tools, system libraries – anything you can install on a server. This guarantees that it will always run the same, regardless of the environment it is running in.
in this quick demo I will make use of a Docker image to run Apache Kafka in a Docker container.
Env: Single node pre-installed with RHEL7
Docker Installation:
yum update curl -sSL https://get.docker.com/ | sh service docker start service docker status // to check service is up
Apache Kafka setup
1. pull the docker image for the zookeeper
docker pull dockerkafka/zookeeper2. pull docker image for kafka
docker pull dockerkafka/zookeeper
3. Run zookeeper docker container in detach mode
docker run -d --name zookeeper -p 2181:2181 dockerkafka/zookeeper
4. Run docker container for Kafka
docker run --name kafka -p 9092:9092 --link zookeeper:zookeeper dockerkafka/kafka &
5. get host ip where zk is running
docker inspect --format '{{ .NetworkSettings.IPAddress }}' zookeeper 172.17.0.2
6. get host ip where kafka is running
docker inspect --format '{{ .NetworkSettings.IPAddress }}' kafka
7. in the next course of action lets create a topic for that start interactive shell
docker exec -t -i exec kafka bash kafka-topics.sh --create --topic vmstat_logs --zookeeper 172.17.0.2:2181 --replication-factor 1 --partitions 1
8. start a kafka producer which will publish vmstat output of every one second to the broker
vmstat 1 | kafka-console-producer.sh --topic vmstat_logs --broker-list 172.17.0.3:9092
9. open a different shell and start a consumer
docker exec -t -i kafka bash kafka-console-consumer.sh --topic vmstat_logs --from-beginning --zookeeper 172.17.0.2:2181
the consumer will start running and consume the vmstat logs from the producer.
No comments:
Post a Comment