原創 Linux下Docker安裝Kafka
前提條件,Linux伺服器已安裝docker。並且已經安裝Zookeeper並啟動。
下載Kafka映象
Kafka目前沒有官方映象,本教程採用wurstmeister/kafka映象來安裝。下載kafka映象命令:
docker pull wurstmeister/kafka
啟動kafka
docker run-d --name kafka -p9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=172.18.0.1:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://172.18.0.1:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 wurstmeister/kafka
主要設定了4個引數,中間兩個引數的127.0.0.1改為宿主機器的IP地址,如果不這麼設定,可能會導致在別的機器上訪問不到kafka。
通過docker ps可以看到kafka已經成功啟動,同時可以通過:
docker logs -f kafka
來檢視docker的啟動情況。
測試kafka
進入kafka容器的命令列
docker exec -ti kafka /bin/bash
進入kafka所在目錄
cd opt/kafka_2.12-1.1.0/
建立一個主題:
## 如果Zookeeper和kafka在一個容器中啟動 bin/kafka-topics.sh --create --zookeeper zookeeper:2181 --replication-factor 1 --partitions 1 --topic mykafka ## 如果Zookeeper單獨啟動,需指定內網地址 bin/kafka-topics.sh --create --zookeeper 172.18.0.1:2181 --replication-factor 1 --partitions 1 --topic mykafka ## 執行結果 Created topic "mykafka".
檢視新建立的topic:
bin/kafka-topics.sh --zookeeper 172.18.0.1:2181 --describe --topic mykafka ## 結果 Topic:mykafkaPartitionCount:1ReplicationFactor:1Configs: Topic: mykafkaPartition: 0Leader: 0Replicas: 0Isr: 0
執行一個訊息生產者,指定topic為剛剛建立的主題,執行命令後並輸入釋出訊息的內容(^C退出):
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic mykafka
執行一個消費者,指定同樣的主題:
## Zookeeper配置同上 bin/kafka-console-consumer.sh --zookeeper zookeeper:2181 --topic mykafka --from-beginning bin/kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9092 --from-beginning --topic mykafka ## 執行結果,正是在生產者輸入的訊息內容 a exit
小結
至此完成kafka單機版本的部署和測試。