1. 在终端中创建一个名为 kafka 的目录,并进入该目录:
mkdir kafka
cd kafka
  1. 创建一个名为 docker-compose-kafka.yml 的文件并打开它。将以下代码复制到文件中:
sudo touch docker-compose-kafka.yml
version: '2'
services:
  zookeeper:
    image: wurstmeister/zookeeper
    ports:
      - "2181:2181"
  kafka:
    image: wurstmeister/kafka
    ports:
      - "9092:9092"
    environment:
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092
      # 允许Kafka Broker监听来自任何地址的请求, 这是因为容器默认使用网络地址转换(NAT), 因此无法使用localhost访问容器中的端口, 因此需要设置监听地址为0.0.0.0
      KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_CREATE_TOPICS: "test:1:1"
    depends_on:
      - zookeeper

这份配置使用了 Docker Compose,定义了两个服务 Zookeeper 和 Kafka。

  • Zookeeper 服务定义:

    • 使用 wurstmeister/zookeeper 镜像;
    • 将容器的 2181 端口映射到宿主机的 2181 端口;
    • 没有设置其他环境变量,使用默认配置
  • Kafka 服务定义:

    • 使用 wurstmeister/kafka 镜像;
    • 将容器的 9092 端口映射到宿主机的 9092 端口;
    • 定义两个环境变量:
      • KAFKA_ADVERTISED_LISTENERS:定义 Kafka 服务监听的地址,这里是 localhost:9092。在实际生产环境中,可以替换成实际的IP 或域名;
      • KAFKA_LISTENERS:指定 Kafka Broker 监听的地址和协议,而 KAFKA_ADVERTISED_LISTENERS 指定了 Kafka Broker 向客户端或其他 Broker 公开的地址和协议,如果想要使用 KAFKA_ADVERTISED_LISTENERS 参数,则必须在文件中同时设置 KAFKA_LISTENERS 参数;
      • KAFKA_ZOOKEEPER_CONNECT:定义 Kafka 使用的 Zookeeper 服务地址,这里是 zookeeper:2181。在实际生产环境中,可以替换成实际的 IP 或域名;
      • KAFKA_CREATE_TOPICS:定义需要创建的主题和分区数等,这里创建了一个名为 test 的主题,有 1 个分区,备份数为 1
  • 定义依赖关系,Kafka 服务需要等待 Zookeeper 服务启动完成后才能启动,这份配置可以一次性启动 Zookeeper 和 Kafka 服务,并且有方便的端口映射和环境变量配置,方便了 Kafka 集群的部署

  1. 运行以下命令以启动 Kafka 容器,该命令将会下载必要的 Docker 镜像并启动两个容器:
sudo docker-compose -f docker-compose-kafka.yml up -d
  1. 安装可视化工具 Kafka Tool

https://www.cnblogs.com/frankdeng/p/9452982.html

Logo

Kafka开源项目指南提供详尽教程,助开发者掌握其架构、配置和使用,实现高效数据流管理和实时处理。它高性能、可扩展,适合日志收集和实时数据处理,通过持久化保障数据安全,是企业大数据生态系统的核心。

更多推荐