Docker 安装 Kafka (M3 芯片版)

1.拉取镜像

shell 复制代码
docker pull bitnami/kafka:latest

2. 编写 docker-compose.yml

创建 docker-compose.yml 文件,并添加以下内容:

shell 复制代码
version: "3"
services:
 kafka:
   image: 'bitnami/kafka:latest'
   container_name: kafka
   ports:
     - "9092:9092"
     - "9093:9093"
   volumes:
     - type: volume
       source: kafka_standalone_data
       target: /bitnami/kafka
       read_only: false
   environment:
     - BITNAMI_DEBUG=yes
     # 启用KRaft模式必须设置下面三个属性
     - KAFKA_CFG_NODE_ID=1
     - KAFKA_CFG_PROCESS_ROLES=broker,controller
     - KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
     # broker id
     - KAFKA_BROKER_ID=1
     # listener的各种配置
     - KAFKA_CFG_LISTENERS=CONTROLLER://:9094,BROKER://:9092,EXTERNAL://:9093
     - KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,BROKER:PLAINTEXT,EXTERNAL:PLAINTEXT
     # 注意EXTERNAL配置的是当前Docker所在的主机地址,BROKER可以使用Docker内部的网络地址即可
     - KAFKA_CFG_ADVERTISED_LISTENERS=BROKER://127.0.0.1:9092,EXTERNAL://host.docker.internal:9093
     # 内部各个broker之间通信用的listener
     - KAFKA_CFG_INTER_BROKER_LISTENER_NAME=BROKER
     # 用来进行选举的Controller服务器,如果有多个Controller则都需要写上,这里本机
     - KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=1@127.0.0.1:9094
     - ALLOW_PLAINTEXT_LISTENER=yes
volumes:
 kafka_standalone_data:
   driver: local

启动 Kafka 服务:

复制代码
docker compose up -d

3. 创建 Kafka Topic

进入 Kafka 容器:

bash 复制代码
docker exec -it kafka bash

使用 kafka-topics.sh 创建一个名为 test-topic 的 Topic:

css 复制代码
kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic test-topic

验证 Topic 是否创建成功:

css 复制代码
kafka-topics.sh --list --bootstrap-server localhost:9092

4. 生产和消费消息测试

生产者发送消息

css 复制代码
kafka-console-producer.sh --broker-list localhost:9092 --topic test-topic

输入测试消息,例如:

复制代码
Hello Kafka!

Ctrl + D 结束输入。

消费者接收消息

打开另一个终端,运行:

javascript 复制代码
kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test-topic --from-beginning

如果配置正确,你应该能看到生产者发送的消息 Hello Kafka!

相关推荐
葫芦和十三5 小时前
图解 MongoDB 28|块与迁移:balancer 怎么均衡数据
后端
葫芦和十三5 小时前
图解 MongoDB 27|分片策略:范围分片 vs 哈希分片
后端·mongodb·agent
paopaokaka_luck6 小时前
英语单词学习系统的设计与实现(基于艾宾浩斯遗忘曲线的智能复习机制、语音朗读、多题型测试与错题自动收录、Echarts图形化分析)
vue.js·spring boot·后端·echarts
我叫黑大帅6 小时前
MySQL 并发插入竞态问题:原子写入实践指南
后端·mysql·面试
zhangxingchao7 小时前
AI大模型核心八:从 Agent Skill、长文档 RAG 到知识库更新与训练策略
前端·人工智能·后端
我叫黑大帅8 小时前
别再手动写 updated_at了,这坑我踩过
后端·面试·go
zhangxingchao8 小时前
AI大模型核心七:从 Workflow、RAG、记忆治理到幂等性
前端·人工智能·后端
梦想的颜色9 小时前
【Docker部署插件】:使用 Docker 部署生产级 Kafka 完整版教程
安全·docker·中间件·kafka·消息队列·docker-compose·后端开发
犀利豆9 小时前
AI in Harness(二)
java·人工智能·后端
IT_陈寒9 小时前
Python装饰器竟然偷偷改了函数名?这个坑我爬了三天
前端·人工智能·后端