Docker搭建Kafka环境

环境说明#

  • Centos 7.9
  • Docker 1.13.1
  • Docker API 1.26
  • Docker-Compose 1.26.2

使用wurstmeister/kafka-docker#

到这个网站https://github.com/wurstmeister/kafka-docker下载整个repo
下载完成上传到虚拟机后解压
image

单节点启动#

修改文件#

单机使用的是docker-compose-single-broker.yml,从名字就可以看出

修改这个文件

image

  zookeeper:
    image: wurstmeister/zookeeper
    ports:
      - "2181:2181"
  kafka:
    build: .
    ports:
      - "9092:9092"
    environment:
      KAFKA_CREATE_TOPICS: "test:1:1"
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://:9092
      KAFKA_LISTENERS: PLAINTEXT://:9092
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock 

保存一下,我们就可以开始了

构建#

使用如下命令docker-compose -f docker-compose-single-broker.yml up -d

其中这一步可能会卡出,多试几次就行

image

出现这个说明完成

image
使用docker ps或者 docker-compose ps 查看我们的zookeeper和kafka都启动了
image

通过docker exec -it 5daa518c1bc3 ./bin/zkCli.sh ls /brokers/ids我们可以看到一个Kafka节点绑定到了Zookeeper上
image

集群#

使用文件夹中的docker-compose.yml文件,修改为:
image

version: '2'
services:
  zookeeper:
    image: wurstmeister/zookeeper
    ports:
      - "2181:2181"
  kafka:
    build: .
    ports:
      - "9092"
    environment:
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://:9092
      KAFKA_LISTENERS: PLAINTEXT://:9092
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

构建#

使用命令docker-compose up -d zookeeper

image

再使用docker-compose scale kafka=3产生三个Kafka节点

image

使用docker ps或者 docker-compose ps 查看

image

通过docker exec -it 756cfa814e99 ./bin/zkCli.sh ls /brokers/ids我们可以看到三个Kafka节点绑定到了Zookeeper上

image

创建Topic#

使用命令docker exec b5adf98e7235 kafka-topics.sh --create --topic testtopic --partitions 4 --zookeeper zookeeper:2181 --replication-factor 2

image

查看Topic#

使用命令docker exec b5adf98e7235 kafka-topics.sh --list --zookeeper zookeeper:2181

image

其他的节点上也有了

image

生产者发送消息#

使用命令 docker exec -it kafka-docker-master_kafka_1 kafka-console-producer.sh --topic testtopic --broker-list kafka-docker-master_kafka_1:9092,kafka-docker-master_kafka_2:9092,kafka-docker-master_kafka_3:9092

image

消费者消费消息#

使用命令 docker exec kafka-docker-master_kafka_2 kafka-console-consumer.sh --topic testtopic --bootstrap-server kafka-docker-master_kafka_1:9092,kafka-docker-master_kafka_2:9092,kafka-docker-master_kafka_3:9092

生产者:
image

消费者:
image

posted @   Xianhao  阅读(612)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示
主题色彩