feat: 카프카 브로커 배포용 docker-compose
This commit is contained in:
parent
0e06037152
commit
95f4acab65
111
docker/docker-compose-kafka-cluster.yml
Normal file
111
docker/docker-compose-kafka-cluster.yml
Normal file
@ -0,0 +1,111 @@
|
||||
services:
|
||||
controller:
|
||||
image: apache/kafka:latest
|
||||
container_name: controller
|
||||
environment:
|
||||
KAFKA_NODE_ID: 0
|
||||
KAFKA_PROCESS_ROLES: controller
|
||||
KAFKA_LISTENERS: CONTROLLER://:9093
|
||||
KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
|
||||
KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER
|
||||
KAFKA_CONTROLLER_QUORUM_VOTERS: 0@controller:9093
|
||||
|
||||
broker-1:
|
||||
image: apache/kafka:latest
|
||||
container_name: broker-1
|
||||
privileged: true
|
||||
ports:
|
||||
- "29092:9092"
|
||||
- "29093:9093"
|
||||
- "7071:7071"
|
||||
environment:
|
||||
KAFKA_NODE_ID: 1
|
||||
KAFKA_PROCESS_ROLES: broker
|
||||
KAFKA_LISTENERS: PLAINTEXT://:19092,PLAINTEXT_HOST://:9092,SSL://:19093,SSL_HOST://:9093
|
||||
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://broker-1:19092,PLAINTEXT_HOST://localhost:29092,SSL://broker-1:19093,SSL_HOST://localhost:29093
|
||||
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT,SSL:SSL,SSL_HOST:SSL
|
||||
KAFKA_SSL_TRUSTSTORE_FILENAME: kafka.broker.truststore.jks
|
||||
KAFKA_SSL_TRUSTSTORE_CREDENTIALS: password
|
||||
KAFKA_SSL_KEYSTORE_FILENAME: kafka.broker.keystore.jks
|
||||
KAFKA_SSL_KEYSTORE_CREDENTIALS: password
|
||||
KAFKA_SSL_KEY_CREDENTIALS: password
|
||||
KAFKA_NUM_PARTITIONS: 3
|
||||
KAFKA_DEFAULT_REPLICATION_FACTOR: 3
|
||||
KAFKA_MIN_INSYNC_REPLICAS: 2
|
||||
KAFKA_OFFSETS_TOPIC_NUM_PARTITIONS: 5
|
||||
KAFKA_CONTROLLER_QUORUM_VOTERS: 0@controller:9093
|
||||
KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER
|
||||
KAFKA_OPTS: -javaagent:/opt/jmx_exporter/jmx_prometheus_javaagent-0.3.1.jar=7071:/opt/jmx_exporter/server-metrics.yml
|
||||
depends_on:
|
||||
- controller
|
||||
volumes:
|
||||
- ./jmx/server-metrics.yml:/opt/jmx_exporter/server-metrics.yml
|
||||
- ./jmx/jmx_prometheus_javaagent-0.3.1.jar:/opt/jmx_exporter/jmx_prometheus_javaagent-0.3.1.jar
|
||||
- ../ssl:/etc/kafka/secrets
|
||||
|
||||
broker-2:
|
||||
image: apache/kafka:latest
|
||||
container_name: broker-2
|
||||
privileged: true
|
||||
ports:
|
||||
- "39092:9092"
|
||||
- "39093:9093"
|
||||
- "7072:7071"
|
||||
environment:
|
||||
KAFKA_NODE_ID: 2
|
||||
KAFKA_PROCESS_ROLES: broker
|
||||
KAFKA_LISTENERS: PLAINTEXT://:19092,PLAINTEXT_HOST://:9092,SSL://:19093,SSL_HOST://:9093
|
||||
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://broker-2:19092,PLAINTEXT_HOST://localhost:39092,SSL://broker-2:19093,SSL_HOST://localhost:39093
|
||||
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT,SSL:SSL,SSL_HOST:SSL
|
||||
KAFKA_SSL_TRUSTSTORE_FILENAME: kafka.broker.truststore.jks
|
||||
KAFKA_SSL_TRUSTSTORE_CREDENTIALS: password
|
||||
KAFKA_SSL_KEYSTORE_FILENAME: kafka.broker.keystore.jks
|
||||
KAFKA_SSL_KEYSTORE_CREDENTIALS: password
|
||||
KAFKA_SSL_KEY_CREDENTIALS: password
|
||||
KAFKA_NUM_PARTITIONS: 3
|
||||
KAFKA_DEFAULT_REPLICATION_FACTOR: 3
|
||||
KAFKA_MIN_INSYNC_REPLICAS: 2
|
||||
KAFKA_OFFSETS_TOPIC_NUM_PARTITIONS: 5
|
||||
KAFKA_CONTROLLER_QUORUM_VOTERS: 0@controller:9093
|
||||
KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER
|
||||
KAFKA_OPTS: -javaagent:/opt/jmx_exporter/jmx_prometheus_javaagent-0.3.1.jar=7071:/opt/jmx_exporter/server-metrics.yml
|
||||
depends_on:
|
||||
- controller
|
||||
volumes:
|
||||
- ./jmx/server-metrics.yml:/opt/jmx_exporter/server-metrics.yml
|
||||
- ./jmx/jmx_prometheus_javaagent-0.3.1.jar:/opt/jmx_exporter/jmx_prometheus_javaagent-0.3.1.jar
|
||||
- ../ssl:/etc/kafka/secrets
|
||||
|
||||
broker-3:
|
||||
image: apache/kafka:latest
|
||||
container_name: broker-3
|
||||
privileged: true
|
||||
ports:
|
||||
- "49092:9092"
|
||||
- "49093:9093"
|
||||
- "7073:7071"
|
||||
environment:
|
||||
KAFKA_NODE_ID: 3
|
||||
KAFKA_PROCESS_ROLES: broker
|
||||
KAFKA_LISTENERS: PLAINTEXT://:19092,PLAINTEXT_HOST://:9092,SSL://:19093,SSL_HOST://:9093
|
||||
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://broker-3:19092,PLAINTEXT_HOST://localhost:49092,SSL://broker-3:19093,SSL_HOST://localhost:49093
|
||||
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT,SSL:SSL,SSL_HOST:SSL
|
||||
KAFKA_SSL_TRUSTSTORE_FILENAME: kafka.broker.truststore.jks
|
||||
KAFKA_SSL_TRUSTSTORE_CREDENTIALS: password
|
||||
KAFKA_SSL_KEYSTORE_FILENAME: kafka.broker.keystore.jks
|
||||
KAFKA_SSL_KEYSTORE_CREDENTIALS: password
|
||||
KAFKA_SSL_KEY_CREDENTIALS: password
|
||||
KAFKA_NUM_PARTITIONS: 3
|
||||
KAFKA_DEFAULT_REPLICATION_FACTOR: 3
|
||||
KAFKA_MIN_INSYNC_REPLICAS: 2
|
||||
KAFKA_OFFSETS_TOPIC_NUM_PARTITIONS: 5
|
||||
KAFKA_CONTROLLER_QUORUM_VOTERS: 0@controller:9093
|
||||
KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER
|
||||
KAFKA_OPTS: -javaagent:/opt/jmx_exporter/jmx_prometheus_javaagent-0.3.1.jar=7071:/opt/jmx_exporter/server-metrics.yml
|
||||
depends_on:
|
||||
- controller
|
||||
volumes:
|
||||
- ./jmx/server-metrics.yml:/opt/jmx_exporter/server-metrics.yml
|
||||
- ./jmx/jmx_prometheus_javaagent-0.3.1.jar:/opt/jmx_exporter/jmx_prometheus_javaagent-0.3.1.jar
|
||||
- ../ssl:/etc/kafka/secrets
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user