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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM