文章目录
- Docker部署单节点Kafka
- 参考镜像
- wurstmeister/zookeeper Overview
- wurstmeister/kafka Overview
- 部署单Broker
- kafka 环境变量:
- 启动与停止命令
- 测试验证:
- 参考文章
Docker部署单节点Kafka
参考镜像
wurstmeister/zookeeper Overview
wurstmeister/kafka Overview
部署单Broker
定义 docker-compose-single-broker.yml
:
kafka 环境变量:
- KAFKA_ADVERTISED_HOST_NAME:
你可以修改主机名来以匹配docker主机IP。注意:如果要运行多个Broker,请不要使用localhost或127.0.0.1作为主机ip - KAFKA_CREATE_TOPICS:
kafka-docker在创建期间自动在kafka中创建主题,例如 test:1:1 表示主题test包含1个分区和1个副本。 - KAFKA_ZOOKEEPER_CONNECT:
现在是强制的环境变量,表示kafka的zookeeper connect string。 - KAFKA_ADVERTISED_HOST_NAME:
192.168.220.150,类似这种 hostName用ip的,一直出错,关键报错信息如下:
Error while fetching metadata with correlation id xxx {test=LEADER_NOT_AVAILABLE}
修改为 KAFKA_ADVERTISED_HOST_NAME: kafka,验证可行!
- kafka depends-on:
指定 zookeeper 在 kafka 前面启动。 - kafka volumes 卷映射:
宿主机中的文件路径:容器中的文件路径,而我的宿主机是Linux主机。
参考自 Github kafka-docker
GitHub 上的文件 build: . 修改为 image: wurstmeister/kafka,修改前会出现以下错误:
启动与停止命令
首先需要 cd 进入 docker-compose-single-broker.yml 所在目录:
启动命令:
结尾不加 -d 会占用当前命令行窗口。因为按 Ctrl + C 会自动 stop 容器。
停止命令:
停止并删除容器命令:
测试验证:
1、使用 docker ps -a
查看 zookeeper 和 kafka 容器是否已经正常运行:
2、进入 kafka 容器控制台:
3、进入 kafka 容器中的 bin 目录:
pwd 用来打印当前工作目录,方便我们确认是否切换成功
4、检查自动创建的主题 test:
5、在一个cmd窗口发布消息:
6、打开另一个cmd窗口,重复1-3步,订阅消息:
参考文章
- docker部署单节点kafka