第一步;拉去zookeeper镜像
docker pull wurstmeister/zookeeper
第二步:拉取kafka镜像
docker pull wurstmeister/kafka
第三步:启动zookeeper镜像
docker run -d --name zookeeper --publish 2181:2181 --volume /etc/localtime:/etc/localtime wurstmeister/zookeeper
第四步:启动kafka镜像(切记 192.168.31.131是我虚拟机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.31.131 --env KAFKA_ADVERTISED_PORT=9092 --volume /etc/localtime:/etc/localtime wurstmeister/kafka
第五步:假设获取到的ID为:ba2540992d9e
使用ID进入容器:
docker exec -it ba2540992d9e /bin/bash
第六步:进入容器里进行生产和消费消息(具体进入/opt/kafkaxxxx 要ls一下 查看自己拉取的哪个版本的镜像产生的容器)
cd /opt/kafka_2.12-2.1.0/
创建一个主题名为netmusic:
bin/kafka-topics.sh --create --zookeeper zookeeper:2181 --replication-factor 1 --partitions 1 --topic netmusic
运行一个生产者:
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic netmusic
参考文档:https://m.cppentry.com/bencandy.php?fid=120&id=195308
注意:springboot配置文件application.properties的组名(查看:进入容器,kafka/config目录下的consumer.properties中可以看到)
# 指定默认消费者group id
spring.kafka.consumer.group-id=test-consumer-group