- 首先拉取zookeeper的镜像
docker pull wurstmeister/zookeeper
- 启动zookeeper的镜像容器
docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/zookeeper
- 拉取kafka的镜像
docker pull wurstmeister/kafka
- 启动运行Zookeeper镜像的实例
docker run -dit --name kafka_01 -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=192.168.136.136:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.136.136:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -t wurstmeister/kafka
备注: 拉取镜像有时候可能不成功 , 查看下有没有使用阿里云的镜像, 如下:
sudo vim /etc/docker/daemon.json 查看文件 , 并更新成阿里云镜像, 最后重启docker, systemctl restart docker即可
{
"registry-mirrors":["https://6kx4zyno.mirror.aliyuncs.com"]
}
-
测试发送消息
- 首先进入容器内部, 并进入kafka目录
docker exec -it kafka /bin/bash cd /opt/kafka_2.12-2.4.1 #查找有kafka-topics.sh的bin目录下即可
- 创建一个主题, topic名为 'mykafka'
bin/kafka-topics.sh --create --zookeeper 192.168.136.136:2181 --replication-factor 1 --partitions 1 --topic mykafka
- 查看是否创建topic成功
bin/kafka-topics.sh --list --zookeeper 192.168.136.136:2181
- 运行一个消息生产者, 指定topic为刚刚创建的主题
bin/kafka-console-producer.sh --broker-list 192.168.136.136:9092 --topic mykafka
- 新开一个linux命令窗口, 运行一个消息消费者, 指定同样的主题
bin/kafka-console-consumer.sh --bootstrap-server 192.168.136.136:9092 --topic mykafka --from-beginning
- 在生产者命令窗口输入信息 , 在消费者命令窗口则可以收到消息了, 如下图所示:
生产者: 分别输入 aaa 和 bbb
消费者: 接收到 aaa 和 bbb
-
总结
以上就是使用Docker部署Kafka 入门案列的简单步骤 , 每次发消息都需要指定一个topic (主题) , 生产者发送一个消息 , 消费者接收一个消息 , Kafka 的 深入理解 和 集群复杂案列后续会更新