version: '3.1'networks: base:services: # zookeeper集群 zk1: image: zookeeper:3.7 restart: always hostname: zk1 container_name: zk1 ports: - 2181:2181 volumes: - "./zookpeer/1/data:/data" - "./zookpeer/1/datalog:/datalog" environment: ZOO_MY_ID: 1 ZOO_SERVERS: server.1=0.0.0.0:2888:3888;2181 server.2=zk2:2888:3888;2181 server.3=zk3:2888:3888;2181 networks: - base zk2: image: zookeeper:3.7 restart: always hostname: zk2 container_name: zk2 ports: - 2182:2181 volumes: - "./zookpeer/2/data:/data" - "./zookpeer/2/datalog:/datalog" environment: ZOO_MY_ID: 2 ZOO_SERVERS: server.1=zk1:2888:3888;2181 server.2=0.0.0.0:2888:3888;2181 server.3=zk3:2888:3888;2181 networks: - base zk3: image: zookeeper:3.7 restart: always hostname: zk3 container_name: zk3 ports: - 2183:2181 volumes: - "./zookpeer/3/data:/data" - "./zookpeer/3/datalog:/datalog" environment: ZOO_MY_ID: 3 ZOO_SERVERS: server.1=zk1:2888:3888;2181 server.2=zk2:2888:3888;2181 server.3=0.0.0.0:2888:3888;2181 networks: - base kafka1: image: wurstmeister/kafka:2.13-2.7.0 ## 镜像 restart: always container_name: kafka1 hostname: kafka1 volumes: - /etc/localtime:/etc/localtime ## 挂载位置(kafka镜像和宿主机器之间时间保持一直) - ./kafka/1:/kafka ports: - "9092:9092" environment: KAFKA_HOST_NAME: kafka1 KAFKA_ZOOKEEPER_CONNECT: zk1:2181,zk2:2181,zk3:2181 ## 卡夫卡运行是基于zookeeper的 KAFKA_LOG_RETENTION_HOURS: 120 KAFKA_MESSAGE_MAX_BYTES: 10000000 KAFKA_REPLICA_FETCH_MAX_BYTES: 10000000 KAFKA_GROUP_MAX_SESSION_TIMEOUT_MS: 60000 KAFKA_NUM_PARTITIONS: 3 KAFKA_DELETE_RETENTION_MS: 1000 KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092 KAFKA_BROKER_ID: 1 ## 修改节点id KAFKA_ADVERTISED_HOST_NAME: 122.112.141.95 ## 修改:宿主机IP KAFKA_ADVERTISED_PORT: 9092 KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://122.112.141.95:9092 ## 修改:宿主机IP KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 TZ: Asia/Shanghai links: - zk1 - zk2 - zk3 networks: - base kafka2: image: wurstmeister/kafka:2.13-2.7.0 ## 镜像 restart: always container_name: kafka2 hostname: kafka2 volumes: - /etc/localtime:/etc/localtime ## 挂载位置(kafka镜像和宿主机器之间时间保持一直) - ./kafka/2:/kafka ports: - "9093:9092" environment: KAFKA_HOST_NAME: kafka2 KAFKA_ZOOKEEPER_CONNECT: zk1:2181,zk2:2181,zk3:2181 ## 卡夫卡运行是基于zookeeper的 KAFKA_LOG_RETENTION_HOURS: 120 KAFKA_MESSAGE_MAX_BYTES: 10000000 KAFKA_REPLICA_FETCH_MAX_BYTES: 10000000 KAFKA_GROUP_MAX_SESSION_TIMEOUT_MS: 60000 KAFKA_NUM_PARTITIONS: 3 KAFKA_DELETE_RETENTION_MS: 1000 KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092 KAFKA_BROKER_ID: 2 ## 修改节点id KAFKA_ADVERTISED_HOST_NAME: 122.112.141.95 ## 修改:宿主机IP KAFKA_ADVERTISED_PORT: 9093 KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://122.112.141.95:9093 KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 TZ: Asia/Shanghai links: - zk1 - zk2 - zk3 networks: - base kafka3: image: wurstmeister/kafka:2.13-2.7.0 ## 镜像 restart: always container_name: kafka3 hostname: kafka3 volumes: - /etc/localtime:/etc/localtime ## 挂载位置(kafka镜像和宿主机器之间时间保持一直) - ./kafka/3:/kafka ports: - "9094:9092" environment: KAFKA_HOST_NAME: kafka3 KAFKA_ZOOKEEPER_CONNECT: zk1:2181,zk2:2181,zk3:2181 ## 卡夫卡运行是基于zookeeper的 KAFKA_LOG_RETENTION_HOURS: 120 KAFKA_MESSAGE_MAX_BYTES: 10000000 KAFKA_REPLICA_FETCH_MAX_BYTES: 10000000 KAFKA_GROUP_MAX_SESSION_TIMEOUT_MS: 60000 KAFKA_NUM_PARTITIONS: 3 KAFKA_DELETE_RETENTION_MS: 1000 KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092 KAFKA_BROKER_ID: 3 ## 修改:节点id KAFKA_ADVERTISED_HOST_NAME: 122.112.141.95 ## 修改:宿主机IP KAFKA_ADVERTISED_PORT: 9094 ## 修改:节点端口 KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://122.112.141.95:9094 ## 修改:节点端口 KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 TZ: Asia/Shanghai links: - zk1 - zk2 - zk3 networks: - base# 以下监控二选一 kafdrop: image: obsidiandynamics/kafdrop:latest restart: always container_name: kafdrop hostname: kafdrop ports: - "9000:9000" environment: KAFKA_BROKERCONNECT: kafka1:9092 JVM_OPTS: "-Xms32M -Xmx64M" SERVER_SERVLET_CONTEXTPATH: "/" networks: - base kafka-manager: image: sheepkiller/kafka-manager:latest restart: always container_name: kafa-manager hostname: kafka-manager ports: - "9100:9000" links: - kafka1 - kafka2 - zk1 - zk2 environment: ZK_HOSTS: zk1:2181,zk2:2181 KAFKA_BROKERS: kafka1:9092,kafka2:9093 APPLICATION_SECRET: letmein KM_ARGS: -Djava.net.preferIPv4Stack=true networks: - base