Docker安装Kafka(不依赖ZooKeeper)

创建docker-compose.yaml

bash 复制代码
version: "3.9" #版本号
services:
  kafka:
    image: apache/kafka:3.9.0
    container_name: kafka
    hostname: kafka
    ports:
      - 9092:9092  # 容器内部之间使用的监听端口
      - 9094:9094  # 容器外部访问监听端口
    environment:
      KAFKA_NODE_ID: 1
      KAFKA_PROCESS_ROLES: broker,controller
      # 外部访问监听端口为 9092,容器内部使用不同的端口 9094
      KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9094,CONTROLLER://localhost:9093,PLAINTEXT_CONTAINER://kafka:9092
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9094,PLAINTEXT_CONTAINER://kafka:9092
      KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,PLAINTEXT_CONTAINER:PLAINTEXT
      KAFKA_CONTROLLER_QUORUM_VOTERS: 1@localhost:9093
      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
      KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
      KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
      KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0
      KAFKA_NUM_PARTITIONS: 3
      KAFKA_LOG_DIRS: /var/lib/kafka/data
    volumes:
      - ./data/kafka/data:/var/lib/kafka/data

运行docker-compose.yaml

bash 复制代码
docker compose -f ./docker-compose.yaml up -d

测试kafka

  • 进入容器
bash 复制代码
docker exec -it kafka bash 
  • 创建topic
bash 复制代码
/opt/kafka/bin/kafka-topics.sh --bootstrap-server kafka:9092 --create --topic topic-test
  • 打开生产者,在终端发送消息
bash 复制代码
/opt/kafka/bin/kafka-console-producer.sh --bootstrap-server kafka:9092 --topic topic-test
  • 另外打开一个终端,进入容器
bash 复制代码
docker exec -it kafka bash 
  • 打开消费者,接收消息
bash 复制代码
/opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server kafka:9092 --topic test-topic --from-beginning
相关推荐
sulikey1 小时前
服务器安装Docker教程。如何在云服务器安装Docker容器?
运维·服务器·ubuntu·docker·安装教程·云服务器
AI人工智能+电脑小能手2 小时前
【大白话说Java面试题 第194题】【08_Kafka篇】第10题:简述 Kafka 的 Rebalance 机制?
java·kafka·消费者组·rebalance·分布式消息队列
窝子面3 小时前
认识Docker与启动容器与镜像的关系
运维·docker·容器
风曦Kisaki20 小时前
#企业级docker私有仓库构建:harbor仓库与阿里云镜像仓库
阿里云·docker·容器
期待着201320 小时前
docker 安装 ,在centos7.9
运维·docker·容器
骑上单车去旅行1 天前
Docker Compose 命令完全指南:从构建到运维
docker·容器·eureka
spider_xcxc1 天前
K8s 部署学习笔记
docker·容器·kubernetes·云计算·k8s
java_logo1 天前
Docker Compose 部署 Apache Superset:轻松搭建开源 BI 平台
docker·开源·apache·superset·轩辕镜像·superset部署方案·docker superset
zy happy1 天前
VMware虚拟机添加新的硬盘
java·linux·jvm·docker
AI人工智能+电脑小能手1 天前
【大白话说Java面试题 第192题】【08_Kafka篇】第8题:死信队列是什么?延时队列是什么?
java·kafka·消息队列·死信队列·延时队列