[英]Kafka Streams in docker-compose takes long time for partition assignment
[英]Kafka docker compose configuration only creates one partition
我正在使用 docker-compose 通過以下方式設置 kafka 代理:
kafka:
image: confluentinc/cp-kafka:latest
depends_on:
- zookeeper
ports:
- 29092:29092
- 9092:9092
environment:
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092,PLAINTEXT_HOST://localhost:29092
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
command: sh -c "(sleep 15) && (kafka-topics --create --partitions 3 --bootstrap-server kafka:9092 --topic input) && (kafka-topics --create --bootstrap-server kafka:9092 --partitions 1 --topic output)"
問題是應該創建具有 3 個分區的“輸入”主題的命令只創建了一個分區,我不明白為什么。 當我 go 在容器內刪除主題並再次創建時,使用相同的命令,主題然后正確設置。
我曾多次嘗試重建圖像並清除緩存,但每次我都只得到一個分區。 我究竟做錯了什么?
為什么不從 Kafka 容器中分離出 init 腳本並創建一個 init-kafka-container 來設置所有必需的主題和其他配置?
kafka:
image: confluentinc/cp-kafka:latest
hostname: kafka
container_name: kafka
depends_on:
- zookeeper
ports:
- 29092:29092
- 9092:9092
environment:
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092,PLAINTEXT_HOST://localhost:29092
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
init-kafka-container:
image: confluentinc/cp-kafka:latest
depends_on:
- kafka
entrypoint: [ '/bin/sh', '-c' ]
command: |
"
# rather than giving sleep 15 use this
# to block init container to wait for Kafka broker to be ready
kafka-topics --bootstrap-server kafka:9092 --list
# create init topics
kafka-topics --create --partitions 3 --bootstrap-server kafka:9092 --topic input
kafka-topics --create --bootstrap-server kafka:9092 --partitions 1 --topic output
"
command
不是有效的環境變量。
它需要不縮進,但隨后您將覆蓋 Confluent 容器默認命令,並且容器和 Kafka 代理根本不會啟動,並且不會創建任何主題。
它使用一個分區創建主題,因為這是為自動創建的代理設置的默認配置
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.