【发布时间】:2021-12-12 17:53:30
【问题描述】:
我正在尝试运行 multibroker kafka 设置,下面是我的 docker-compose.yml 文件
version: '3'
services:
zookeeper:
image: wurstmeister/zookeeper
container_name: zoom
ports:
- "2181:2181"
kafka1:
image: wurstmeister/kafka
container_name: kafkacont1
ports:
- "9092:9092"
environment:
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka1: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
kafka2:
image: wurstmeister/kafka
container_name: kafkacont2
ports:
- "9093:9093"
environment:
KAFKA_BROKER_ID: 2
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka2:9093,PLAINTEXT_HOST://localhost:39092
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
当我运行docker-compose -f docker-compose.yml up -d
终端说容器已创建,但是当我这样做时 docker ps 我没有看到那些容器
【问题讨论】:
-
试试
docker-compose -f docker-compose.yml up并检查屏幕上打印的错误/警告 -
@SachithMuhandiram 是的,我在没有 -d 标志的情况下运行,我收到一条错误消息,说如果我必须使用 KAFKA_ADVERTISED_LISTENERS,我必须添加 KAFKA_LISTENERS 变量,我添加了 KAFKA_LISTENERS: PLAINTEXT://kafka1:9092,PLAINTEXT_HOST: //localhost:29092 用于 kafka1 并且它有效
-
请记住,两个代理都在争夺同一台机器的资源,因此不会像只有一个代理那样快,也不是真正的容错
-
@Thejas 所以你的问题解决了吗?如果是这样,请将其发布为答案
-
@Thejas Kafka 的主要优点之一是可以复制数据。如果一个代理发生故障,那么其他代理仍然可以提供相同的数据......显然,如果您的一台机器(您的 Docker 主机)发生故障,那么所有代理(和 zookeepers)都死了。因此,将这些服务暴露在 Docker 网络之外并没有真正的好处
标签: docker apache-kafka