docker 中安裝kafka
在安裝kafka之前需要先安裝zookeeper,因為kafka 啟動會將元數(shù)據(jù)保存在 zookeeper 中,zookeeper是一種分布式協(xié)調(diào)服務,可以再分布式系統(tǒng)中共享配置,協(xié)調(diào)鎖資源,提供命名服務。
zookeeper 安裝
- 在docker中拉取zookeeper 鏡像
docker pull wurstmeister/zookeeper
- 運行zookeeper 服務
docker run -d --restart=always --log-driver json-file --log-opt max-size=100m --log-opt max-file=2 --name zookeeper -p 2181:2181 wurstmeister/zookeeper
- 查看docker 下是否正常運行zookeeper 服務
docker ps
kafka 安裝
- 拉取kafka鏡像
docker pull wurstmeister/kafka
- 運行kafka
KAFKA_ZOOKEEPER_CONNECT=192.168.11.129:2181/kafka -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.11.129:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 wurstmeister/kafka
-e KAFKA_BROKER_ID=0 在kafka集群中,每個kafka都有一個BROKER_ID來區(qū)分自己
-e KAFKA_ZOOKEEPER_CONNECT=192.168.11.129:2181/kafka 配置zookeeper管理kafka的路徑
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.11.129:9092 把kafka的地址端口注冊給zookeeper
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 配置kafka的監(jiān)聽端口
-v /etc/localtime:/etc/localtime 容器時間同步虛擬機的時間
查看kafka是否運行正常
- 進入kafka容器
docker exec -it kafka /bin/bash
- 進入kafka的bin目錄下:
cd /opt/kafka_2.13-2.8.1/bin
- 創(chuàng)建一個新主題(test-kafka)來存儲事件
./kafka-topics.sh --create --topic test-kafka --bootstrap-server localhost:9092
- 顯示新主題:test-kafka 的分區(qū)信息
./kafka-topics.sh --describe --topic test-kafka --bootstrap-server localhost:9092
- 測試消費消息
./kafka-console-consumer.sh --topic test-kafka --from-beginning --bootstrap-server localhost:9092
- 測試生產(chǎn)消息
./kafka-console-producer.sh --topic test-kafka --bootstrap-server localhost:9092