使用 Docker Compose 搭建 Kafka 叢集。
建立 Docker Compose 配置檔案
建立配置檔案(目錄随意)并編輯:
<code>vim /opt/kafka/docker-compose.yml</code>
輸入内容:
172.16.0.1 是我們給 WSL 配置的固定 IP。
啟動叢集
建立 3 個 Kafka 的叢集:
<code>docker-compose -f docker-compose.yml up --scale kafka=3 -d</code>
Kafka 啟動失敗
使用指令 <code>docker ps -a</code> 檢視容器狀态,發現隻有 Zookeeper 啟動成功,Kafka 全部失敗。
使用指令 <code>docker logs --tail 100 kafka_kafka_1</code> 檢視啟動日志發現報錯:
經查詢發現是由于 Ubuntu 域名解析出錯,導緻 Kafka 找不到 Zookeeper 而啟動失敗,執行以下指令:
<code>echo 'hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4' >> /etc/nsswitch.conf</code>
重新啟動叢集即可。
參考
如果你不會用 kafka-docker,看這裡
Why does the host command not resolve entries in /etc/hosts?
How to replace mdns4_minimal with BIND?
mdns4_minimal 是什麼