docker 安裝 kafka


1. 先安裝zookeeper , 因為 kafka 依賴 zookeeper, 雖然目前3.0 kafka已准備拋棄zk, 不過暫不推薦在生成環境使用

docker run -d --name zookeeper \
-p 26313:2181 \
-v /docker/volumes/zookeeper/data:/data \
-v /docker/volumes/zookeeper/datalog:/datalog \
-v /docker/volumes/zookeeper/logs:/logs \
-v /etc/localtime:/etc/localtime \
zookeeper:3.7.0

參數說明

  1. -p 26313:2181 zk的2181端口映射為26313端口
  2. -v /etc/localtime:/etc/localtime 容器時間同步主機時間 , 其他-v為把 /data /datalog /logs 映射到主機對應的目錄

2. 安裝kafka

docker run -d --restart=always  --name kafka \
-p 21661:9092 \
-e KAFKA_BROKER_ID=0 \
-e KAFKA_ZOOKEEPER_CONNECT=192.168.100.21:26313 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.100.21:21661 \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \
-v /etc/localtime:/etc/localtime \
wurstmeister/kafka:2.13-2.8.1

參數說明

  1. -p 21661:9092 kafka的 9092 端口映射為 21661 端口
  2. -e KAFKA_BROKER_ID=0 在kafka集群中,每個kafka用BROKER_ID來區分自己 , 如需配置kafka集群可 修改此id 和 上述 21661 端口號映射即可部署集群
  3. -e KAFKA_ZOOKEEPER_CONNECT=192.168.100.21:26313 配置zookeeper連接地址
  4. -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.100.21:21661 把kafka的地址注冊給zookeeper,如果是遠程訪問要改成外網IP,否則可能出現無法連接
  5. -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 配置kafka的監聽端口
  6. -v /etc/localtime:/etc/localtime 容器時間同步虛擬機的時間

3. 消息發送 / 消費 測試

3.1 進入kafka容器

$ docker exec -it kafka bash

3.2 進入 bin 目錄

$ cd /opt/kafka/bin

3.3 發送消息

> ./kafka-console-producer.sh --broker-list localhost:9092 --topic test_topic

3.4 消費消息

./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test_topic --from-beginning


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM