【软件部署】开发环境快速部署Apache kafka用于开发测试
·
说明
在开发环境快速部署Apache Kafka用于开发测试。支持数据持久化,支持自动初始化数据目录。
单节点部署
创建文件compose.yaml
# 单节点,用于开发环境,无安全配置,任意来源可访问,默认不开启数据持久化。
services:
init-kafka-perms:
image: busybox:latest
command: chown -R 1000:1000 /tmp/kraft-combined-logs
volumes:
- kafka-logs:/tmp/kraft-combined-logs
restart: "no"
container_name: kafka-perms-fix
networks:
- kafka
broker:
image: apache/kafka:4.2.0
hostname: broker
container_name: kafka-broker
ports:
- '9092:9092'
restart: unless-stopped
depends_on:
init-kafka-perms:
condition: service_completed_successfully
networks:
- kafka
volumes:
- kafka-logs:/tmp/kraft-combined-logs
# 配置文件存放在conf目录下,挂载至容器内。
# - ./conf:/mnt/shared/config
environment:
KAFKA_NODE_ID: 1
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: 'CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT'
# 固定IP场景可配置监听指定的IP,使指定的IP对外提供服务,默认监听所有。
# KAFKA_LISTENERS: '0.0.0.0'
KAFKA_ADVERTISED_LISTENERS: 'PLAINTEXT_HOST://localhost:9092,PLAINTEXT://broker:19092'
KAFKA_PROCESS_ROLES: 'broker,controller'
KAFKA_CONTROLLER_QUORUM_VOTERS: '1@broker:29093'
KAFKA_LISTENERS: 'CONTROLLER://:29093,PLAINTEXT_HOST://:9092,PLAINTEXT://:19092'
KAFKA_INTER_BROKER_LISTENER_NAME: 'PLAINTEXT'
KAFKA_CONTROLLER_LISTENER_NAMES: 'CONTROLLER'
CLUSTER_ID: '4L6g3nShT-eMCtK--X86sw'
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0
KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
KAFKA_SHARE_COORDINATOR_STATE_TOPIC_REPLICATION_FACTOR: 1
KAFKA_SHARE_COORDINATOR_STATE_TOPIC_MIN_ISR: 1
KAFKA_LOG_DIRS: '/tmp/kraft-combined-logs'
healthcheck:
test: nc -z localhost 9092 || exit 1
interval: 60s
timeout: 5s
retries: 2
start_period: 30s
volumes:
kafka-logs:
name: kafka-logs
networks:
kafka:
name: kafka
启动容器
docker compose up -d
更多推荐
所有评论(0)