Docker是最受欢迎的容器引擎之一,软件行业用于创建、打包、部署应用。本教程学习如何使用Docker搭建Apache Kafka。,安装单节点Kafka代理需能够满足本地开发需求,我们首先学习单节点安装。,使用Apache Kafka服务,首先需要启动Zookeeper 服务。这可以通过在docker-compose.yml 文件配置依赖实现,但要确保Zookeeper服务总是在Kafka服务之前启动,反之zookeeper最后停止。,首先创建docker-compose.yml文件,增加两个服务:zookeeper和kafka:,Zookeeper服务监听2181端口为Kafka提供服务,但对于运行在本机的客户端,暴露的端口为22181.
类似的,kafka通过端口29092暴露给主机应用,但实际上在容器中的端口9092。有KAFKA_ADVERTISED_LISTENERS属性来配置。,下面通过使用命令启动容器、开启kafka服务:,下面通过nc命令严重两个服务正在监听各自的端口:,另外,也可以检查日志,当容器正在运行时验证kafka服务是否启动:,可以看到Kafka服务已经启动。,最后可以使用Kafka Tool Gui 工具连接已安装的Kafka服务:,,生产环境需要更稳定的环境,下面扩展 docker-compose.yml文件创建多节点集群环境:,集群安装需要zookeeper和Kafka有多个实例,下面为zookeeper和kafka增加多个服务:,必须要确保kafka服务名称唯一,通过KAFKA_BROKER_ID 属性设置。而且每个服务必须暴露唯一主机端口。虽然zookeeper-1 和 zookeeper-2 监听2181端口,但对于主机端口分别为 22181 和 32181。类似的,kafka-1 和 kafka-2 services对应主机端口分别为 29092 和 39092。,现在通过docker-compose命令启动集群:,启动完成,使用Kafka Tool连接集群,地址通过逗号分割只读多个zookeeper地址和端口:,本文使用Docker技术创建单个Kafka节点和Kafka集群环境,并且使用可视化工具连接服务查看代理服务器的配置信息。