version: '3'
services:
zk1:
image: confluentinc/cp-zookeeper
hostname: zk1
container_name: zk1
networks:
- n1
ports:
- "2181:2181"
environment:
ZOOKEEPER_SERVER_ID: 1
ZOOKEEPER_CLIENT_PORT: 2181
ZOOKEEPER_SERVERS: zk1:2888:3888;zk2:2888:3888;zk3:2888:3888
zk2:
image: confluentinc/cp-zookeeper
hostname: zk2
container_name: zk2
networks:
- n1
ports:
- "2182:2181"
environment:
ZOOKEEPER_SERVER_ID: 2
ZOOKEEPER_CLIENT_PORT: 2181
ZOOKEEPER_SERVERS: zk1:2888:3888;zk2:2888:3888;zk3:2888:3888
depends_on:
- zk1
zk3:
image: confluentinc/cp-zookeeper
hostname: zk3
container_name: zk3
networks:
- n1
ports:
- "2183:2181"
environment:
ZOOKEEPER_SERVER_ID: 3
ZOOKEEPER_CLIENT_PORT: 2181
ZOOKEEPER_SERVERS: zk1:2888:3888;zk2:2888:3888;zk3:2888:3888
depends_on:
- zk1
- zk2
kafka1:
image: confluentinc/cp-server
hostname: kafka1
container_name: kafka1
networks:
- n1
ports:
- "9091:9091"
- "8091:8091"
environment:
KAFKA_BROKER_ID: 1
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: LISTENER_DOCKER_INTERNAL:PLAINTEXT,LISTENER_DOCKER_EXTERNAL:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: LISTENER_DOCKER_INTERNAL
KAFKA_ADVERTISED_LISTENERS: LISTENER_DOCKER_INTERNAL://kafka1:19091,LISTENER_DOCKER_EXTERNAL://${DOCKER_HOST_IP:-127.0.0.1}:9091
KAFKA_REPLICA_SELECTOR_CLASS: org.apache.kafka.common.replica.RackAwareReplicaSelector
KAFKA_ZOOKEEPER_CONNECT: 'zk1:2181,zk2:2182,zk3:2183'
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 2
KAFKA_CONFLUENT_LICENSE_TOPIC_REPLICATION_FACTOR: 2
KAFKA_JMX_PORT: 8091
depends_on:
- zk1
- zk2
- zk3
kafka2:
image: confluentinc/cp-server
hostname: kafka2
container_name: kafka2
networks:
- n1
ports:
- "9092:9092"
- "8092:8092"
environment:
KAFKA_BROKER_ID: 2
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: LISTENER_DOCKER_INTERNAL:PLAINTEXT,LISTENER_DOCKER_EXTERNAL:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: LISTENER_DOCKER_INTERNAL
KAFKA_ADVERTISED_LISTENERS: LISTENER_DOCKER_INTERNAL://kafka2:19092,LISTENER_DOCKER_EXTERNAL://${DOCKER_HOST_IP:-127.0.0.1}:9092
KAFKA_REPLICA_SELECTOR_CLASS: org.apache.kafka.common.replica.RackAwareReplicaSelector
KAFKA_ZOOKEEPER_CONNECT: 'zk1:2181,zk2:2182,zk3:2183'
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 2
KAFKA_CONFLUENT_LICENSE_TOPIC_REPLICATION_FACTOR: 2
KAFKA_JMX_PORT: 8092
depends_on:
- zk1
- zk2
- zk3
- kafka1
kafka3:
image: confluentinc/cp-server
hostname: kafka3
container_name: kafka3
networks:
- n1
ports:
- "9093:9093"
- "8093:8093"
environment:
KAFKA_BROKER_ID: 3
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: LISTENER_DOCKER_INTERNAL:PLAINTEXT,LISTENER_DOCKER_EXTERNAL:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: LISTENER_DOCKER_INTERNAL
KAFKA_ADVERTISED_LISTENERS: LISTENER_DOCKER_INTERNAL://kafka3:19093,LISTENER_DOCKER_EXTERNAL://${DOCKER_HOST_IP:-127.0.0.1}:9093
KAFKA_REPLICA_SELECTOR_CLASS: org.apache.kafka.common.replica.RackAwareReplicaSelector
KAFKA_ZOOKEEPER_CONNECT: 'zk1:2181,zk2:2182,zk3:2183'
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 2
KAFKA_CONFLUENT_LICENSE_TOPIC_REPLICATION_FACTOR: 2
KAFKA_JMX_PORT: 8093
depends_on:
- zk1
- zk2
- zk3
- kafka1
- kafka2
networks:
n1: