docker部署kafka

单节点部署Zookeeper和Kafka

参考文章:https://blog.csdn.net/qyj19920704/article/details/148240392

1、创建docker-compose.yml文件

使用的是 Confluent Platform 的 Kafka 镜像

bash 复制代码
version: "3"

services:
  zookeeper:
    image: confluentinc/cp-zookeeper:7.4.0
    platform: linux/amd64 # 明确指定平台
    hostname: zookeeper
    container_name: zookeeper
    ports:
      - "2181:2181"
    environment:
      ZOOKEEPER_CLIENT_PORT: 2181
      ZOOKEEPER_TICK_TIME: 2000
      # 生产环境建议增加以下配置
      ZOOKEEPER_SERVER_ID: 1
      ZOOKEEPER_SERVERS: "zookeeper:2888:3888"

  kafka:
    image: confluentinc/cp-kafka:7.4.0
    platform: linux/amd64
    hostname: kafka
    container_name: kafka
    depends_on:
      - zookeeper
    ports:
      - "9092:9092"
      - "29092:29092" # 用于容器间通信
    environment:
      KAFKA_BROKER_ID: 1
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_INTERNAL:PLAINTEXT
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092,PLAINTEXT_INTERNAL://kafka:29092
      KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT_INTERNAL
      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
      KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
      KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
      # 内存配置(根据实际情况调整)
      KAFKA_HEAP_OPTS: "-Xmx1G -Xms1G"
2、启动服务
bash 复制代码
docker-compose up -d
3、进入容器
bash 复制代码
docker-compose exec kafka bash
4、新建topic
bash 复制代码
kafka-topics --create --topic test-topic --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1

也可不进入容器新建topic

查看topic情况

bash 复制代码
docker-compose exec kafka kafka-topics --describe --topic test-topic --bootstrap-server localhost:9092
5、新建生产者
bash 复制代码
kafka-console-producer --topic test-topic --bootstrap-server localhost:9092

也可容器外新建生产者

bash 复制代码
docker-compose exec kafka kafka-console-producer --topic test-topic --bootstrap-server localhost:9092
6、新建消费者
bash 复制代码
# 方法 1:从最早的消息开始消费(等待新消息)
docker-compose exec kafka kafka-console-consumer --topic test-topic --bootstrap-server localhost:9092 --from-beginning

# 方法 2:实时消费新消息(先启动消费者,再发送消息)
docker-compose exec kafka kafka-console-consumer --topic test-topic --bootstrap-server localhost:9092

# 方法 3:显示 key 和 value
docker-compose exec kafka kafka-console-consumer --topic test-topic --bootstrap-server localhost:9092 --from-beginning --property print.key=true --property print.value=true

# 方法 4:显示时间戳
docker-compose exec kafka kafka-console-consumer --topic test-topic --bootstrap-server localhost:9092 --from-beginning --property print.timestamp=true
相关推荐
xhaxy9 小时前
docker
docker·容器·eureka
一技安身12 小时前
【信创】Docker‑Compose V2 两种离线部署(独立模式、插件模式)简易教程
java·docker·eureka
鸿观工坊16 小时前
Docker 多阶段构建实践指南
docker
大牧师18 小时前
MySQL 学习教程
数据库·sql·mysql·docker·node·全栈·后端数据
面向Google编程19 小时前
Kafka 成了 Agent 的「共享内存」,Flink 成了它的「大脑」
flink·kafka·agent
MC丶科19 小时前
软考架构师90天冲刺|DAY44·Redis高级应用
数据库·数据仓库·redis·缓存·oracle·容器·规格说明书
天外天-亮19 小时前
docker + window 安装
运维·docker·容器
进击的小菜鸡dd20 小时前
docker 容器的挂载映射关系查看
运维·docker·容器
SLD_Allen20 小时前
从 HPA 到 KEDA:Kubernetes 弹性伸缩的进阶实践
云原生·容器·kubernetes
程序员老赵20 小时前
Docker 部署 TeX Live:轻松搭建 LaTeX 论文排版编译平台
前端·docker·latex