今天第一次嘗試部署kafka,網(wǎng)上找了一圈,主要問題出在docker-compose.yml 文件,作為新手一開始不知道這個是怎么用的, 后來又發(fā)現(xiàn)KAFKA_ADVERTISED_HOST_NAME不對,一直報錯,朋友提供了參考,就順便整理了一翻,僅供大家參考啦。
一、 安裝docker
二、終端鏡像拉取
docker pull wurstmeister/zookeeper
docker pull wurstmeister/kafka
三、檢查是否安裝了docker-compose
docker-compose -v
沒有就裝一個吧
四、選一個目錄(/xx/docker-compose)存放docker-compose的配置文件,創(chuàng)建 docker-compose.yml 文件,并保存下方內容
version: '2'
services:
zookeeper:
image: "zookeeper"
hostname: "zookeeper.local"
container_name: "zookeeper"
#設置網(wǎng)絡別名
networks:
local:
aliases:
- "zookeeper.local"
kafka:
image: "wurstmeister/kafka"
hostname: "kafka.local"
container_name: "kafka"
ports:
- "9092:9092"
networks:
local:
aliases:
- "kafka.local"
environment:
KAFKA_ADVERTISED_HOST_NAME: kafka.local
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
#設置網(wǎng)絡,名為local
networks:
local:
driver: bridge
五、 在docker-compose.yml文件目錄下,對其進行服務打包
cd /xx/docker-compose
docker-compose build
六、 啟動服務
docker-compose up -d
啟動結果參考:
? docker docker-compose up -d
Docker Compose is now in the Docker CLI, try `docker compose up`
Recreating zookeeper ... done
Recreating kafka ... done
記住啟動的容器名稱,kafka為 kafka ,zookeeper 為 zookeeper,跟在 Recreating(或者啟動是Starting) 后
七、查看容器
docker ps
如果docker-compose正常啟動,此時docker ps會看到以上兩個容器
查看結果參考:
? docker docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7b6a89c03e11 wurstmeister/zookeeper "/bin/sh -c '/usr/sb…" 31 minutes ago Up 31 minutes 22/tcp, 2181/tcp, 2888/tcp, 3888/tcp zookeeper
331063b09e8e wurstmeister/kafka "start-kafka.sh" 3 hours ago Up 31 minutes 0.0.0.0:9092->9092/tcp kafka
八、進入容器
-it 后的 kafka 為容器名稱
docker exec -it kafka bash
結果:
? docker docker exec -it kafka bash
bash-4.4#
九、創(chuàng)建 topic
topic名稱自定義: mykafka
kafka-topics.sh --create --zookeeper zookeeper:2181 -replication-factor 1 --partitions 1 --topic mykafka
執(zhí)行過程參考:
bash-4.4# kafka-topics.sh --create --zookeeper zookeeper:2181 -replication-factor 1 --partitions 1 --topic mykafka
Created topic mykafka.
十、查看topic
kafka-topics.sh --list --zookeeper zookeeper:2181
執(zhí)行結果參考:
bash-4.4# kafka-topics.sh --list --zookeeper zookeeper:2181
mykafka
十一:創(chuàng)建生產(chǎn)者
kafka-console-producer.sh --broker-list kafka:9092 --topic mykafka
執(zhí)行結果參考:
bash-4.4# kafka-console-producer.sh --broker-list kafka:9092 --topic mykafka
>hi
>fine
十二:查看topic內容
kafka-console-consumer.sh --bootstrap-server kafka:9092 --topic mykafka --from-beginning
執(zhí)行結果參考:
bash-4.4# kafka-console-consumer.sh --bootstrap-server kafka:9092 --topic mykafka --from-beginning
hi
fine