【发布时间】:2019-09-24 13:46:26
【问题描述】:
我正在尝试使用 docker compose 扩展 kafka。
我的 docker-compose.yaml 看起来像这样:-
version: '3'
services:
kafka:
image: wurstmeister/kafka
ports:
- "9092:9092"
environment:
- KAFKA_ADVERTISED_HOST_NAME=127.0.0.1
- KAFKA_ADVERTISED_PORT=9092
- KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181
depends_on:
- zookeeper
zookeeper:
image: wurstmeister/zookeeper
ports:
- "2181:2181"
environment:
- KAFKA_ADVERTISED_HOST_NAME=zookeeper
我尝试使用它来扩大规模
$docker-compose scale kafka=3
这个问题是容器端口需要是唯一的,因此我将端口部分更改为:-
ports:
- "9092-9095:9092"
但是,现在我无法知道在运行时之前分配了哪个端口,有没有办法检索分配的端口并将其分配给环境变量 KAFKA_ADVERTISED_PORT?
我已经看到很多例子,它们为每个 kafka 服务定义了 3 个单独的服务,我不太喜欢,因为这违反了 DRY 原则。
【问题讨论】:
标签: docker apache-kafka docker-compose