Multi node Kafka cluster by docker compose - grant-guo/Ideas GitHub Wiki
docker-compose file:
version: '2.1'
services:
zk1:
container_name: zk1
hostname: zk1
image: zookeeper:latest
environment:
ZOO_MY_ID: 1
ZOO_SERVERS: server.1=zk1:2888:3888;2181 server.2=zk2:2888:3888;2181 server.3=zk3:2888:3888;2181
ports:
- 12181:2181
zk2:
container_name: zk2
hostname: zk2
image: zookeeper:latest
environment:
ZOO_MY_ID: 2
ZOO_SERVERS: server.1=zk1:2888:3888;2181 server.2=zk2:2888:3888;2181 server.3=zk3:2888:3888;2181
ports:
- 22181:2181
zk3:
container_name: zk3
hostname: zk3
image: zookeeper:latest
environment:
ZOO_MY_ID: 3
ZOO_SERVERS: server.1=zk1:2888:3888;2181 server.2=zk2:2888:3888;2181 server.3=zk3:2888:3888;2181
ports:
- 32181:2181
kafka1:
container_name: kafka1
hostname: kafka1
image: confluentinc/cp-kafka:latest
depends_on:
- zk1
- zk2
- zk3
ports:
- 19092:19092
environment:
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: zk1:2181,zk2:2181,zk3:2181
KAFKA_ADVERTISED_LISTENERS: LISTENER_OUTER://10.106.54.190:19092,LISTENER_INNER://kafka1:9092
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: LISTENER_OUTER:PLAINTEXT,LISTENER_INNER:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: LISTENER_INNER
KAFKA_LOG4J_ROOT_LOGLEVEL: ERROR
kafka2:
container_name: kafka2
hostname: kafka2
image: confluentinc/cp-kafka:latest
depends_on:
- zk1
- zk2
- zk3
ports:
- 29092:29092
environment:
KAFKA_BROKER_ID: 2
KAFKA_ZOOKEEPER_CONNECT: zk1:2181,zk2:2181,zk3:2181
KAFKA_ADVERTISED_LISTENERS: LISTENER_OUTER://10.106.54.190:29092,LISTENER_INNER://kafka2:9092
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: LISTENER_OUTER:PLAINTEXT,LISTENER_INNER:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: LISTENER_INNER
KAFKA_LOG4J_ROOT_LOGLEVEL: ERROR
kafka3:
container_name: kafka3
hostname: kafka3
image: confluentinc/cp-kafka:latest
depends_on:
- zk1
- zk2
- zk3
ports:
- 39092:39092
environment:
KAFKA_BROKER_ID: 3
KAFKA_ZOOKEEPER_CONNECT: zk1:2181,zk2:2181,zk3:2181
KAFKA_ADVERTISED_LISTENERS: LISTENER_OUTER://10.106.54.190:39092,LISTENER_INNER://kafka3:9092
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: LISTENER_OUTER:PLAINTEXT,LISTENER_INNER:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: LISTENER_INNER
KAFKA_LOG4J_ROOT_LOGLEVEL: ERROR