天天看點

基于docker環境搭建kafka叢集(單機版)

  1. 如果沒有 zookeeper 鏡像,則拉去zookeeper鏡像
docker pull wurstmeister/zookeeper
           
  1. 拉取 kafka鏡像

    docker pull wurstmeister/kafka

  2. 啟動zookeeper鏡像
docker run -d --name zookeeper --publish 2181:2181 --volume /etc/localtime:/etc/localtime wurstmeister/zookeeper
           
  1. 啟動kafka鏡像(切記 192.168.101.139是我虛拟機ip,各位需要更換為自己的kafka鏡像所在主機的ip)
docker run -d --name kafka --publish 9092:9092 --link zookeeper --env KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 --env KAFKA_ADVERTISED_HOST_NAME=192.168.101.139 --env KAFKA_ADVERTISED_PORT=9092 --volume /etc/localtime:/etc/localtime wurstmeister/kafka
           
  1. 進入容器内部

    docker exec -it kafka /bin/bash

  2. 測試消息發送

    cd /opt/kafka_2.12-2.1.0/

    在容器指令界面(具體進入/opt/kafkaxxxx 要ls一下 檢視自己拉取的哪個版本的鏡像産生的容器)
  3. 建立一個主題名為netmusic:
bin/kafka-topics.sh --create --zookeeper zookeeper:2181 --replication-factor 1 --partitions 1 --topic netmusic
           
  1. 運作一個生産者:
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic netmusic
           

9.在另一個視窗打開容器指令視窗,運作一個消費者:172.17.0.3 是 kafka容器的ip,可以通過進入kafka容器的指令視窗(docker exec -it ba2540992d9e /bin/bash),使用ifconfig檢視ip

bin/kafka-console-consumer.sh --bootstrap-server 172.17.0.3:9092 --topic netmusic
           
  1. 在生産者的視窗生産消息,就可以在消費者視窗消費消息看到消息。