- 首先拉取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 的 深入理解 和 集羣複雜案列後續會更新