- 在終端中創(chuàng)建一個名為 kafka 的目錄,并進(jìn)入該目錄:
mkdir kafka
cd kafka
- 創(chuàng)建一個名為 docker-compose-kafka.yml 的文件并打開它。將以下代碼復(fù)制到文件中:
sudo touch docker-compose-kafka.yml
version: '2'
services:
zookeeper:
image: wurstmeister/zookeeper
ports:
- "2181:2181"
kafka:
image: wurstmeister/kafka
ports:
- "9092:9092"
environment:
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092
# 允許Kafka Broker監(jiān)聽來自任何地址的請求, 這是因?yàn)槿萜髂J(rèn)使用網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT), 因此無法使用localhost訪問容器中的端口, 因此需要設(shè)置監(jiān)聽地址為0.0.0.0
KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_CREATE_TOPICS: "test:1:1"
depends_on:
- zookeeper
這份配置使用了 Docker Compose,定義了兩個服務(wù) Zookeeper 和 Kafka。
-
Zookeeper 服務(wù)定義:
- 使用 wurstmeister/zookeeper 鏡像;
- 將容器的 2181 端口映射到宿主機(jī)的 2181 端口;
- 沒有設(shè)置其他環(huán)境變量,使用默認(rèn)配置
-
Kafka 服務(wù)定義:
- 使用 wurstmeister/kafka 鏡像;
- 將容器的 9092 端口映射到宿主機(jī)的 9092 端口;
- 定義兩個環(huán)境變量:
- KAFKA_ADVERTISED_LISTENERS:定義 Kafka 服務(wù)監(jiān)聽的地址,這里是 localhost:9092。在實(shí)際生產(chǎn)環(huán)境中,可以替換成實(shí)際的IP 或域名;
- KAFKA_LISTENERS:指定 Kafka Broker 監(jiān)聽的地址和協(xié)議,而 KAFKA_ADVERTISED_LISTENERS 指定了 Kafka Broker 向客戶端或其他 Broker 公開的地址和協(xié)議,如果想要使用 KAFKA_ADVERTISED_LISTENERS 參數(shù),則必須在文件中同時設(shè)置 KAFKA_LISTENERS 參數(shù);
- KAFKA_ZOOKEEPER_CONNECT:定義 Kafka 使用的 Zookeeper 服務(wù)地址,這里是 zookeeper:2181。在實(shí)際生產(chǎn)環(huán)境中,可以替換成實(shí)際的 IP 或域名;
- KAFKA_CREATE_TOPICS:定義需要創(chuàng)建的主題和分區(qū)數(shù)等,這里創(chuàng)建了一個名為 test 的主題,有 1 個分區(qū),備份數(shù)為 1
-
定義依賴關(guān)系,Kafka 服務(wù)需要等待 Zookeeper 服務(wù)啟動完成后才能啟動,這份配置可以一次性啟動 Zookeeper 和 Kafka 服務(wù),并且有方便的端口映射和環(huán)境變量配置,方便了 Kafka 集群的部署文章來源:http://www.zghlxwxcb.cn/news/detail-499082.html
- 運(yùn)行以下命令以啟動 Kafka 容器,該命令將會下載必要的 Docker 鏡像并啟動兩個容器:
sudo docker-compose -f docker-compose-kafka.yml up -d
- 安裝可視化工具 Kafka Tool
https://www.cnblogs.com/frankdeng/p/9452982.html文章來源地址http://www.zghlxwxcb.cn/news/detail-499082.html
到了這里,關(guān)于docker-compose 構(gòu)建 Kafka 容器的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!