【kafka】使用docker启动kafka

1.环境准备

docker拉取zookeeper镜像

bash 复制代码
docker pull zookeeper:3.4.14

创建zookeeper容器,默认端口号为2181

bash 复制代码
docker run -d --name zookeeper -p 2181:2181 zookeeper:3.4.14

拉取kafka镜像

bash 复制代码
docker pull wurstmeister/kafka:2.12-2.3.1

创键kafka容器,默认端口号为9092

bash 复制代码
docker run -d --name kafka \
--env KAFKA_ADVERTISED_HOST_NAME=192.168.117.80 \
--env KAFKA_ZOOKEEPER_CONNECT=192.168.117.80:2181 \
--env KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.117.80:9092 \
--env KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \
--env KAFKA_HEAP_OPTS="-Xmx256M -Xms256M" \
--net=host wurstmeister/kafka:2.12-2.3.1

查看是否运行成功

bash 复制代码
docker logs -f [进程号]

2.创建主题

docker进入kafka容器

bash 复制代码
docker exec -it 5af197f9ce2a /bin/bash

进入bin目录

首先找到kafka的bin

bash 复制代码
find / -name kafka

cd进去即可

bash 复制代码
cd /opt/kafka/bin

创建topic

bash 复制代码
kafka-topics.sh --create --zookeeper 192.168.117.80:2181 --partitions 1 --replication-factor 1 --topic test

查看topic

bash 复制代码
kafka-topics.sh --list --zookeeper 192.168.117.80:2181

3.创建消息生产者和消费者

创建生产者

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

创建消息消费者

从启一个容器实例

根据项目步骤进入到bin目录

创建消息消费者

bash 复制代码
kafka-console-consumer.sh --bootstrap-server 192.168.117.80:9092 --topic test

4.测试

此时是消费最后一个消息后偏移量+1的消息

若想消费所有消息

bash 复制代码
kafka-console-consumer.sh --bootstrap-server 192.168.117.80:9092 --topic test --from-beginning
相关推荐
辉的技术笔记3 分钟前
Dify 自部署为什么跑不动?6 层瓶颈诊断法教你定位
docker
程序员老赵1 天前
Docker 部署 Redmine:老牌开源项目管理部署实测记录
docker·开源·团队管理
程序员老赵1 天前
服务器文件不想 SFTP 上传?Docker 跑个 File Browser,浏览器就能管理
服务器·docker·开源
lichenyang4533 天前
Docker 学习笔记(五):Docker Compose,用一个 YAML 启动前端、后端和 MongoDB
docker
lichenyang4533 天前
Docker 学习笔记(四):Dockerfile,把项目打成自己的镜像
docker·容器
lichenyang4533 天前
Docker 学习笔记(三):Docker 网络、bridge、子网和容器互通
docker·容器
lichenyang4533 天前
Docker 学习笔记(二):docker run 的参数到底在控制什么?
docker·容器
阿里云云原生4 天前
数据链路再精简:Kafka 如何做到“零 ETL”一键写入 Apache Iceberg?
kafka
Patrick_Wilson8 天前
从「改个端口」到 502:Next.js on k8s 的容器端口、Service 映射与 env 覆盖
docker·kubernetes·next.js
Suroy8 天前
DockerView-Go:用 Go 写一个终端 Docker 监控工具,顺便做了个 Web 仪表盘
docker