112 lines
4.8 KiB
YAML
112 lines
4.8 KiB
YAML
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
|
|
|