目录
1.docker拉取zookeeper、Kafka镜像
- docker拉取Kafka镜像
-
docker pull wurstmeister/kafka
- docker拉取zookeeper镜像
-
docker pull zookeeper
2.启动zookeeper、Kafka容器
- 分别启用zookeeper、Kafka镜像
-
docker run -itd --name zookeeper -p 2181:2181 zookeeper
docker run -itd --name kafka -p 9092:9092 --link zookeeper --env KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 --env KAFKA_ADVERTISED_HOST_NAME=localhost --env KAFKA_ADVERTISED_PORT=9092 --volume /etc/localtime:/etc/localtime wurstmeister/kafka:latest
如果此处Kafka启动参数设置有问题,会产生很多问题。例如KAFKA_ADVERTISED_HOST_NAME设置有问题就会有如下问题
-
3 partitions have leader brokers without a matching listener
-
启动后可用以下命令查看
docker ps
3.进入Kafka容器,创建topic
- 进入Kafka容器
-
docker exec -it containerID bin/bash
- 创建topic
-
bin/kafka-topics.sh --create --zookeeper zookeeper:2181 --replication-factor 1 --partitions 3 --topic test1
- 查看已有topic
-
bin/kafka-topics.sh --list --zookeeper zookeeper:2181
4.在Kafka容器内,启动消费者和生产者进行通讯
- 启动消费者
-
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test1
- 启动生产者
-
bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic test1
生产者发送消息,消费方即可获取得到。