Loading

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 @ 2021-05-09 19:30  Xianhao  阅读(609)  评论(0编辑  收藏  举报