-
环境准备
可在外网docker下载
docker pull wurstmeister/zookeeper
docker pull wurstmeister/kafka
docker save wurstmeister/kafka > kafka.tar
docker save wurstmeister/zookeeper > zookeeper.tar
新建/app/docker/kafka和/app/docker/zookeeper
将kafka.jar和zookeeper.jar上传至服务器kafka和zookee目录下面
docker load < kafka.tar
docker load < zookeeper.tar
docker images 查看服务器上面的镜像
-
启动运行
启动zookeeper
docker run -d --name zookeeper -p 2181:2181 wurstmeister/zookeeper:latest
启动kafka集群
docker run -d --name kafka1 -p 9092:9092 -e KAFKA_BROKER_ID=1 -e KAFKA_ZOOKEEPER_CONNECT=10.0.0.8:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://10.0.0.8:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 wurstmeister/kafka:latestdocker run -d --name kafka2 -p 9093:9093 -e KAFKA_BROKER_ID=2 -e KAFKA_ZOOKEEPER_CONNECT=10.0.0.8:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://10.0.0.8:9093 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9093 wurstmeister/kafka:latest
docker run -d --name kafka3 -p 9094:9094 -e KAFKA_BROKER_ID=3 -e KAFKA_ZOOKEEPER_CONNECT=10.0.0.8:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://10.0.0.8:9094 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9094 wurstmeister/kafka:latest
docker ps查看启动的kafka集群
-
验证kafka可用性
进入容器
docker exec -it kafka1 /bin/bashcd /opt/kafka_2.12-2.4.0/bin
kafka-topics.sh --create --zookeeper 192.168.0.104:2181 --replication-factor 3 --partitions 5 --topic TestTopic
kafka-topics.sh --describe --zookeeper 192.168.0.104:2181 --topic TestTopic
在登录其他结点查看Topic能否看到
进入容器
docker exec -it kafka2 /bin/bashcd /opt/kafka_2.12-2.4.0/bin
kafka-topics.sh --describe --zookeeper 192.168.0.104:2181 --topic TestTopic
运行正常
-
测试集群消息传递
接下来,分别在Broker1上运行一个生产者,Broker2、3上分别运行一个消费者:kafka-console-producer.sh --broker-list 10.0.0.8:9092 --topic TestTopic
kafka-console-consumer.sh --bootstrap-server 10.0.0.8:9093 --topic TestTopic --from- beginning
kafka-console-consumer.sh --bootstrap-server 10.0.0.8:9094 --topic TestTopic --from-beginning
在Broker 0 上发送消息,看Broker 1和2上是否能够正常接收消息:
接受到消息
安装完成