kafka-ts
Version:
**KafkaTS** is a Apache Kafka client library for Node.js. It provides both a low-level API for communicating directly with the Apache Kafka cluster and high-level APIs for publishing and subscribing to Kafka topics.
106 lines (101 loc) • 5.19 kB
YAML
# Kafka 2.4.0 with ZooKeeper (KRaft not available in 2.4.0)
services:
zookeeper:
image: confluentinc/cp-zookeeper:5.4.0
container_name: zookeeper
platform: linux/amd64
ports:
- '2181:2181'
environment:
ZOOKEEPER_CLIENT_PORT: 2181
ZOOKEEPER_TICK_TIME: 2000
kafka-0:
container_name: kafka-0
image: confluentinc/cp-kafka:5.4.0
platform: linux/amd64
depends_on:
- zookeeper
ports:
- '39092:39092'
environment:
KAFKA_BROKER_ID: 0
KAFKA_ZOOKEEPER_CONNECT: 'zookeeper:2181'
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: 'PLAINTEXT:PLAINTEXT,EXTERNAL:SASL_SSL'
KAFKA_ADVERTISED_LISTENERS: 'PLAINTEXT://kafka-0:19092,EXTERNAL://localhost:39092'
KAFKA_INTER_BROKER_LISTENER_NAME: 'PLAINTEXT'
KAFKA_SASL_ENABLED_MECHANISMS: 'PLAIN'
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 3
KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0
KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 2
KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 3
KAFKA_SSL_KEYSTORE_LOCATION: '/etc/kafka/secrets/kafka.keystore.jks'
KAFKA_SSL_KEYSTORE_PASSWORD: 'password'
KAFKA_SSL_KEY_PASSWORD: 'password'
KAFKA_SSL_TRUSTSTORE_LOCATION: '/etc/kafka/secrets/kafka.truststore.jks'
KAFKA_SSL_TRUSTSTORE_PASSWORD: 'password'
KAFKA_SSL_ENDPOINT_IDENTIFICATION_ALGORITHM: ''
KAFKA_SSL_CLIENT_AUTH: 'required'
KAFKA_LISTENER_NAME_EXTERNAL_PLAIN_SASL_JAAS_CONFIG: 'org.apache.kafka.common.security.plain.PlainLoginModule required username="admin" password="admin" user_admin="admin";'
volumes:
- ./certs/kafka.truststore.jks:/etc/kafka/secrets/kafka.truststore.jks
- ./certs/kafka.keystore.jks:/etc/kafka/secrets/kafka.keystore.jks
kafka-1:
container_name: kafka-1
image: confluentinc/cp-kafka:5.4.0
platform: linux/amd64
depends_on:
- zookeeper
ports:
- '39093:39093'
environment:
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: 'zookeeper:2181'
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: 'PLAINTEXT:PLAINTEXT,EXTERNAL:SASL_SSL'
KAFKA_ADVERTISED_LISTENERS: 'PLAINTEXT://kafka-1:19093,EXTERNAL://localhost:39093'
KAFKA_INTER_BROKER_LISTENER_NAME: 'PLAINTEXT'
KAFKA_SASL_ENABLED_MECHANISMS: 'PLAIN'
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 3
KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0
KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 2
KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 3
KAFKA_SSL_KEYSTORE_LOCATION: '/etc/kafka/secrets/kafka.keystore.jks'
KAFKA_SSL_KEYSTORE_PASSWORD: 'password'
KAFKA_SSL_KEY_PASSWORD: 'password'
KAFKA_SSL_TRUSTSTORE_LOCATION: '/etc/kafka/secrets/kafka.truststore.jks'
KAFKA_SSL_TRUSTSTORE_PASSWORD: 'password'
KAFKA_SSL_ENDPOINT_IDENTIFICATION_ALGORITHM: ''
KAFKA_SSL_CLIENT_AUTH: 'required'
KAFKA_LISTENER_NAME_EXTERNAL_PLAIN_SASL_JAAS_CONFIG: 'org.apache.kafka.common.security.plain.PlainLoginModule required username="admin" password="admin" user_admin="admin";'
volumes:
- ./certs/kafka.truststore.jks:/etc/kafka/secrets/kafka.truststore.jks
- ./certs/kafka.keystore.jks:/etc/kafka/secrets/kafka.keystore.jks
kafka-2:
container_name: kafka-2
image: confluentinc/cp-kafka:5.4.0
platform: linux/amd64
depends_on:
- zookeeper
ports:
- '39094:39094'
environment:
KAFKA_BROKER_ID: 2
KAFKA_ZOOKEEPER_CONNECT: 'zookeeper:2181'
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: 'PLAINTEXT:PLAINTEXT,EXTERNAL:SASL_SSL'
KAFKA_ADVERTISED_LISTENERS: 'PLAINTEXT://kafka-2:19094,EXTERNAL://localhost:39094'
KAFKA_INTER_BROKER_LISTENER_NAME: 'PLAINTEXT'
KAFKA_SASL_ENABLED_MECHANISMS: 'PLAIN'
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 3
KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0
KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 2
KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 3
KAFKA_SSL_KEYSTORE_LOCATION: '/etc/kafka/secrets/kafka.keystore.jks'
KAFKA_SSL_KEYSTORE_PASSWORD: 'password'
KAFKA_SSL_KEY_PASSWORD: 'password'
KAFKA_SSL_TRUSTSTORE_LOCATION: '/etc/kafka/secrets/kafka.truststore.jks'
KAFKA_SSL_TRUSTSTORE_PASSWORD: 'password'
KAFKA_SSL_ENDPOINT_IDENTIFICATION_ALGORITHM: ''
KAFKA_SSL_CLIENT_AUTH: 'required'
KAFKA_LISTENER_NAME_EXTERNAL_PLAIN_SASL_JAAS_CONFIG: 'org.apache.kafka.common.security.plain.PlainLoginModule required username="admin" password="admin" user_admin="admin";'
volumes:
- ./certs/kafka.truststore.jks:/etc/kafka/secrets/kafka.truststore.jks
- ./certs/kafka.keystore.jks:/etc/kafka/secrets/kafka.keystore.jks