1.环境准备
docker拉取zookeeper镜像
bash
docker pull zookeeper:3.4.14
创建zookeeper容器,默认端口号为2181
bash
docker run -d --name zookeeper -p 2181:2181 zookeeper:3.4.14
拉取kafka镜像
bash
docker pull wurstmeister/kafka:2.12-2.3.1
创键kafka容器,默认端口号为9092
bash
docker run -d --name kafka \
--env KAFKA_ADVERTISED_HOST_NAME=192.168.117.80 \
--env KAFKA_ZOOKEEPER_CONNECT=192.168.117.80:2181 \
--env KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.117.80:9092 \
--env KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \
--env KAFKA_HEAP_OPTS="-Xmx256M -Xms256M" \
--net=host wurstmeister/kafka:2.12-2.3.1
查看是否运行成功
bash
docker logs -f [进程号]
2.创建主题
docker进入kafka容器
bash
docker exec -it 5af197f9ce2a /bin/bash
进入bin目录
首先找到kafka的bin
bash
find / -name kafka
cd进去即可
bash
cd /opt/kafka/bin
创建topic
bash
kafka-topics.sh --create --zookeeper 192.168.117.80:2181 --partitions 1 --replication-factor 1 --topic test
查看topic
bash
kafka-topics.sh --list --zookeeper 192.168.117.80:2181
3.创建消息生产者和消费者
创建生产者
bash
kafka-console-producer.sh --broker-list 192.168.117.80:9092 --topic test
创建消息消费者
从启一个容器实例
根据项目步骤进入到bin目录
创建消息消费者
bash
kafka-console-consumer.sh --bootstrap-server 192.168.117.80:9092 --topic test
4.测试
此时是消费最后一个消息后偏移量+1的消息
若想消费所有消息
bash
kafka-console-consumer.sh --bootstrap-server 192.168.117.80:9092 --topic test --from-beginning