当前位置: 首页 > article >正文

Docker 安装 Zookeeper + Kafka 保姆级教程

1.创建 docker-compose.yml

创建一个名为 docker-compose.yml 的文件,并添加以下内容:

version: '3.6'

services:
  zookeeper:
    image: zookeeper:3.6
    container_name: zookeeper
    ports:
      - "2181:2181"
    networks:
      - kafka-network
    environment:
      ZOO_STANDALONE_ENABLED: "true"

  kafka:
    image: bitnami/kafka:3.6
    container_name: kafka
    depends_on:
      - zookeeper
    ports:
      - "9092:9092"
    environment:
      KAFKA_ADVERTISED_LISTENERS: INSIDE://kafka:9092,OUTSIDE://localhost:9092
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT
      KAFKA_LISTENERS: INSIDE://0.0.0.0:9092,OUTSIDE://0.0.0.0:9093
      KAFKA_LISTENER_NAME: INSIDE
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_INTER_BROKER_LISTENER_NAME: INSIDE
    networks:
      - kafka-network

networks:
  kafka-network:
    driver: bridge

2.启动服务

运行以下命令来启动 Zookeeper 和 Kafka 服务:

docker compose -f docker-compose.yml up -d

此处会拉取镜像 耐心等待…

3.验证

3.1检查 Zookeeper 和 Kafka 容器是否正常运行:

docker ps

在这里插入图片描述

3.2通过 docker-compose logs 查看服务的日志,确保没有错误:

docker compose logs

3.3使用 docker exec 进入容器,并测试它们之间的连接:

docker exec -it kafka bash
curl http://zookeeper:2181
docker exec -it zookeeper bash
curl http://kafka:9092

4.测试数据

docker exec -it kafka bash

在Kafka容器创建主题:

kafka-topics.sh --create --topic test --partitions 1 --replication-factor 1 --bootstrap-server kafka:9092

执行创建生产者命令:

kafka-console-producer.sh --broker-list localhost:9092 --topic test

在这里插入图片描述

在新的终端窗口中 再次进入Kafka容器 执行创建消费者命令:

docker exec -it kafka bash
kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

在这里插入图片描述

如看到消息 代表成功


http://www.kler.cn/a/288114.html

相关文章:

  • windows tomcat 报错后如何让窗口不闪退
  • 深度学习的多主机多GPU协同训练
  • 常用在汽车PKE无钥匙进入系统的高度集成SOC芯片:CSM2433
  • 【C++】string(一)
  • arkUI:水果选择与管理:基于 ArkUI 的长按编辑功能实现
  • 《TCP/IP网络编程》学习笔记 | Chapter 10:多进程服务器端
  • 机器学习-1
  • 【WPF】WPF学习之【二】布局学习
  • nestjs目录命名导致的循环引用
  • Spring Cloud全解析:负载均衡之Ribbon的负载均衡算法
  • C++:类和对象(二)
  • C++:构造函数与析构函数
  • MySQL数据库(0)—— 云服务器安装MySQL
  • 【Godot4.3】基于纯绘图函数自定义的线框图控件
  • 1、Django Admin学习模型
  • SpringBoot配置Java后端服务器
  • Nuclei文件上传小Tips
  • 多目标应用:基于环形拓扑的多目标粒子群优化算法(MO_Ring_PSO_SCD)的移动机器人路径规划研究(提供MATLAB代码)
  • 不用async与await将异步函数改为同步函数
  • MySQL 数据库课程设计
  • 软件测试学习笔记丨Chrome开发者模式
  • Linux-vim
  • 从自动驾驶看无人驾驶叉车的技术落地和应用
  • HTTP 之 HTTP头部优化策略(九)
  • Spring Boot 整合 Sentinel 实现流量控制
  • Facebook的AI革新:如何利用人工智能提升你的社交体验