1.kafka需要依賴zookeeper使用了wurstmeister/kafka和wurstmeister/zookeeper這兩個版本的鏡像
1、docker pull wurstmeister/zookeeper
2、docker pull wurstmeister/kafka
2.啟動zookeeper
1.docker run -it --name zookeeper -p 2181:2181 -d wurstmeister/zookeeper
3.啟動kafka命令
1.docker run -d --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=1 -e KAFKA_auto_create_topics_enable=true -e KAFKA_HEAP_OPTS="-Xmx256M -Xms128M" -e KAFKA_ZOOKEEPER_CONNECT=公網ip:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://公網ip:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -t wurstmeister/kafka
/配置分組id
KAFKA_BROKER_ID=1
//開啟自動創建主題(不然代碼整合服務后啟動報錯,必須自己手動到服務上創建)
KAFKA_auto_create_topics_enable=true
//連接zookeeper
KAFKA_ZOOKEEPER_CONNECT=公網ip:2181
//默認內存1G自己服務器太小,調小一點不然啟動報錯內存溢出(此處也比較坑)
KAFKA_HEAP_OPTS="-Xmx256M -Xms128M"
//配置外網ip訪問kafka
KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://公網ip:9092
4.啟動無法訪問外網問題
1.進入hosts文件
vi /etc/hosts
//添加公網ip
公網ip
5.測試
進入kafka
docker exec it kafka /bin/bash
cd opt/kafka
創建主題
bin/kafka-topics.sh --create --zookeeper 公網ip:2181 --replication-factor 1 --partitions 1 --topic hello
查看主題列表:
bin/kafka-topics.sh --list --zookeeper 公網ip:2181
運行一個消息生產者,指定topic為剛剛創建的主題:
bin/kafka-console-producer.sh --broker-list 公網ip:9092 --topic hello
創建kafka消費者(這是新版本創建消費者,老版本是使用zookeeper)
bin/kafka-console-consumer.sh --bootstrap-server公網ip:9092 --topic mykafka --from-beginning
記錄一下自己配置過程中踩得一些坑