使用Docker搭建Apache Kafka环境的详细过程

2022-12-15 0 803

目录安装单个节点docker-compose.yml 配置安装集群环境docker-compose.yml配置启动kafka集群总结

Docker是最受欢迎的容器引擎之一,软件行业用于创建、打包、部署应用。本教程学习如何使用Docker搭建Apache Kafka。

安装单个节点

安装单节点Kafka代理需能够满足本地开发需求,我们首先学习单节点安装。

docker-compose.yml 配置

使用Apache Kafka服务,首先需要启动Zookeeper 服务。这可以通过在docker-compose.yml 文件配置依赖实现,但要确保Zookeeper服务总是在Kafka服务之前启动,反之zookeeper最后停止。

首先创建docker-compose.yml文件,增加两个服务:zookeeper和kafka:

version: \’2\’services: zookeeper: image: confluentinc/cp-zookeeper:latest environment: ZOOKEEPER_CLIENT_PORT: 2181 ZOOKEEPER_TICK_TIME: 2000 ports: – 22181:2181 kafka: image: confluentinc/cp-kafka:latest depends_on: – zookeeper ports: – 29092:29092 environment: KAFKA_BROKER_ID: 1 KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092,PLAINTEXT_HOST://localhost:29092 KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1

Zookeeper服务监听2181端口为Kafka提供服务,但对于运行在本机的客户端,暴露的端口为22181.类似的,kafka通过端口29092暴露给主机应用,但实际上在容器中的端口9092。有KAFKA_ADVERTISED_LISTENERS属性来配置。

下面通过使用命令启动容器、开启kafka服务:

$ docker-compose up -dCreating network \”kafka_default\” with the default driverCreating kafka_zookeeper_1 … doneCreating kafka_kafka_1 … done

下面通过nc命令严重两个服务正在监听各自的端口:

$ nc -z localhost 22181Connection to localhost port 22181 [tcp/*] succeeded!$ nc -z localhost 29092Connection to localhost port 29092 [tcp/*] succeeded!

另外,也可以检查日志,当容器正在运行时验证kafka服务是否启动:

$ docker-compose logs kafka | grep -i started

可以看到Kafka服务已经启动。

最后可以使用Kafka Tool Gui 工具连接已安装的Kafka服务:

使用Docker搭建Apache Kafka环境的详细过程

安装集群环境

生产环境需要更稳定的环境,下面扩展 docker-compose.yml文件创建多节点集群环境:

docker-compose.yml配置

集群安装需要zookeeper和Kafka有多个实例,下面为zookeeper和kafka增加多个服务:

—version: \’2\’services: zookeeper-1: image: confluentinc/cp-zookeeper:latest environment: ZOOKEEPER_CLIENT_PORT: 2181 ZOOKEEPER_TICK_TIME: 2000 ports: – 22181:2181 zookeeper-2: image: confluentinc/cp-zookeeper:latest environment: ZOOKEEPER_CLIENT_PORT: 2181 ZOOKEEPER_TICK_TIME: 2000 ports: – 32181:2181 kafka-1: image: confluentinc/cp-kafka:latest depends_on: – zookeeper-1 – zookeeper-2 ports: – 29092:29092 environment: KAFKA_BROKER_ID: 1 KAFKA_ZOOKEEPER_CONNECT: zookeeper-1:2181,zookeeper-2:2181 KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka-1:9092,PLAINTEXT_HOST://localhost:29092 KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 kafka-2: image: confluentinc/cp-kafka:latest depends_on: – zookeeper-1 – zookeeper-2 ports: – 39092:39092 environment: KAFKA_BROKER_ID: 2 KAFKA_ZOOKEEPER_CONNECT: zookeeper-1:2181,zookeeper-2:2181 KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka-2:9092,PLAINTEXT_HOST://localhost:39092 KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1

必须要确保kafka服务名称唯一,通过KAFKA_BROKER_ID 属性设置。而且每个服务必须暴露唯一主机端口。虽然zookeeper-1 和 zookeeper-2 监听2181端口,但对于主机端口分别为 22181 和 32181。类似的,kafka-1 和 kafka-2 services对应主机端口分别为 29092 和 39092。

启动kafka集群

现在通过docker-compose命令启动集群:

$ docker-compose up -dCreating network \”kafka_default\” with the default driverCreating kafka_zookeeper-1_1 … doneCreating kafka_zookeeper-2_1 … doneCreating kafka_kafka-2_1 … doneCreating kafka_kafka-1_1 … done

启动完成,使用Kafka Tool连接集群,地址通过逗号分割只读多个zookeeper地址和端口:

总结

本文使用Docker技术创建单个Kafka节点和Kafka集群环境,并且使用可视化工具连接服务查看代理服务器的配置信息。

到此这篇关于使用Docker搭建Apache Kafka环境的文章就介绍到这了,更多相关Docker Apache Kafka环境内容请搜索悠久资源网以前的文章或继续浏览下面的相关文章希望大家以后多多支持悠久资源网!

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悠久资源 Linux服务器 使用Docker搭建Apache Kafka环境的详细过程 https://www.u-9.cn/jiaocheng/linux/9651.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务

  • 0 +

    访问总数

  • 0 +

    会员总数

  • 0 +

    文章总数

  • 0 +

    今日发布

  • 0 +

    本周发布

  • 0 +

    运行天数

注册会员,众多资源免费下载