docker-compose搭建kafka集群

version: '2'

services:
  zoo1:
    image: bitnami/zookeeper:3.7
    container_name: zoo1
    restart: always
    hostname: zoo1
    ports:
      - "2181:2181"
    volumes:
      - ./zoo1/data:/bitnami/zookeeper
      - ./zoo1/log:/opt/bitnami/zookeeper/logs
    environment:
      - ZOO_SERVER_ID=1
      - ZOO_SERVERS=zoo1:2888:3888,zoo2:2888:3888,zoo3:2888:3888
      - ALLOW_ANONYMOUS_LOGIN=yes
  
  zoo2:
    image: bitnami/zookeeper:3.7
    container_name: zoo2
    restart: always
    hostname: zoo1
    ports:
      - "2182:2181"
    volumes:
      - ./zoo2/data:/bitnami/zookeeper
      - ./zoo2/log:/opt/bitnami/zookeeper/logs
    environment:
      - ZOO_SERVER_ID=2
      - ZOO_SERVERS=zoo1:2888:3888,zoo2:2888:3888,zoo3:2888:3888
      - ALLOW_ANONYMOUS_LOGIN=yes
  
  zoo3:
    image: bitnami/zookeeper:3.7
    container_name: zoo3
    restart: always
    hostname: zoo1
    ports:
      - "2183:2181"
    volumes:
      - ./zoo3/data:/bitnami/zookeeper
      - ./zoo3/log:/opt/bitnami/zookeeper/logs
    environment:
      - ZOO_SERVER_ID=3
      - ZOO_SERVERS=zoo1:2888:3888,zoo2:2888:3888,zoo3:2888:3888
      - ALLOW_ANONYMOUS_LOGIN=yes

  kafka1:
    image: bitnami/kafka:2.8.1
    container_name: kafka1
    restart: always
    depends_on:
      - zoo1
      - zoo2
      - zoo3
    hostname: kafka1
    ports:
      - 9093:9093
    volumes:
      - ./kafka1:/bitnami/kafka
    environment:
      - KAFKA_BROKER_ID=1
      - KAFKA_CFG_ZOOKEEPER_CONNECT=zoo1:2181,zoo2:2181,zoo3:2181
      - ALLOW_PLAINTEXT_LISTENER=yes
      - KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CLIENT:PLAINTEXT,EXTERNAL:PLAINTEXT
      - KAFKA_CFG_LISTENERS=CLIENT://:9092,EXTERNAL://:9093
      - KAFKA_CFG_ADVERTISED_LISTENERS=CLIENT://kafka1:9092,EXTERNAL://localhost:9093
      - KAFKA_INTER_BROKER_LISTENER_NAME=CLIENT
      - KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE=true

  kafka2:
    image: bitnami/kafka:2.8.1
    container_name: kafka2
    restart: always
    depends_on:
      - zoo1
      - zoo2
      - zoo3
    hostname: kafka2
    ports:
      - 9094:9094
    volumes:
      - ./kafka2:/bitnami/kafka
    environment:
      - KAFKA_BROKER_ID=2
      - KAFKA_CFG_ZOOKEEPER_CONNECT=zoo1:2181,zoo2:2181,zoo3:2181
      - ALLOW_PLAINTEXT_LISTENER=yes
      - KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CLIENT:PLAINTEXT,EXTERNAL:PLAINTEXT
      - KAFKA_CFG_LISTENERS=CLIENT://:9092,EXTERNAL://:9094
      - KAFKA_CFG_ADVERTISED_LISTENERS=CLIENT://kafka2:9092,EXTERNAL://localhost:9094
      - KAFKA_INTER_BROKER_LISTENER_NAME=CLIENT
      - KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE=true
  
  kafka3:
    image: bitnami/kafka:2.8.1
    container_name: kafka3
    restart: always
    depends_on:
      - zoo1
      - zoo2
      - zoo3
    hostname: kafka3
    ports:
      - 9095:9095
    volumes:
      - ./kafka3:/bitnami/kafka
    environment:
      - KAFKA_BROKER_ID=3
      - KAFKA_CFG_ZOOKEEPER_CONNECT=zoo1:2181,zoo2:2181,zoo3:2181
      - ALLOW_PLAINTEXT_LISTENER=yes
      - KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CLIENT:PLAINTEXT,EXTERNAL:PLAINTEXT
      - KAFKA_CFG_LISTENERS=CLIENT://:9092,EXTERNAL://:9095
      - KAFKA_CFG_ADVERTISED_LISTENERS=CLIENT://kafka3:9092,EXTERNAL://localhost:9095
      - KAFKA_INTER_BROKER_LISTENER_NAME=CLIENT
      - KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE=true
  
  kafdrop:
    image: obsidiandynamics/kafdrop:latest
    container_name: kafdrop
    depends_on: 
      - kafka1
      - kafka2
      - kafka3 
    ports:
      - 9000:9000
    environment:
      - KAFKA_BROKERCONNECT=kafka1:9092,kafka2:9092,kafka3:9092

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值