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

Docker安装Kafka(不依赖ZooKeeper)

创建docker-compose.yaml

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

docker compose -f ./docker-compose.yaml up -d

测试kafka

  • 进入容器
docker exec -it kafka bash 
  • 创建topic
/opt/kafka/bin/kafka-topics.sh --bootstrap-server kafka:9092 --create --topic topic-test

  • 打开生产者,在终端发送消息
/opt/kafka/bin/kafka-console-producer.sh --bootstrap-server kafka:9092 --topic topic-test
  • 另外打开一个终端,进入容器
docker exec -it kafka bash 
  • 打开消费者,接收消息
/opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server kafka:9092 --topic test-topic --from-beginning

http://www.dtcms.com/a/21594.html

相关文章:

  • 【第10章:自然语言处理高级应用—10.3 NLP在智能客服、舆情分析与情感倾向判断中的应用案例】
  • 关于前后端分离跨域问题——使用DeepSeek分析查错
  • ChatGPT行业热门应用提示词案例-AI绘画类
  • Spring Web MVC入门
  • 分布式事务
  • 【吾爱出品】 视频批量分段工具
  • 438 找到字符串中所有的字母异位词
  • 04性能监控与调优篇(D1_学习前言)
  • 如何利用OGG WEB页面进行MySQL数据库数据复制的配置
  • HTML之JavaScript常见事件
  • 4.buuctf [SWPU2019]Web1及知识点
  • matlab基于梯度下降和软阈值化的去噪算法
  • 民用无人驾驶航空器操控员考试
  • C#: String s = new String(“Hello“)无法编译?编程语言字符集有两个?为什么这种变量名“\u0061\u0062”都能编译通过?
  • netcore https配置
  • node.js + html调用ChatGPTApi实现Ai网站demo(带源码)
  • Ae 效果详解:蒙尘与划痕
  • 类和对象详解(下)-----运算符重载
  • [Vivado报错] [Runs 36-527] DCP does not exist
  • matlab模拟风场的随机脉动风
  • 升级 SpringBoot3 全项目讲解 — JOOQ 为什么全面超越了 Mybatis?
  • HarmonyOS NEXT网络状态监听HTTP和RCP请求网络
  • 【软考】【2025年系统分析师拿证之路】【啃书】第十一章 软件需求工程(十二)
  • 使用 Ansys MotorCAD 进行轴向磁通电机设计
  • wordpress get_footer();与wp_footer();的区别的关系
  • Node.js 中的 fs 模块详解
  • 一个n*m的二维非零tensor,如何将小于0.5的元素设置为零
  • 建筑行业安全技能竞赛流程方案
  • 【iOS】SwiftUI状态管理
  • Python elasticsearch客户端连接常见问题整理