docker:多个Kafka经纪人都失败了

n6lpvg4x  于 2021-06-08  发布在  Kafka
关注(0)|答案(1)|浏览(386)

我想使用docker与几个Kafka经纪人。
所以我用这个docker image=>https://github.com/ches/docker-kafka
对于一个经纪人来说,一切都很好:
我启动我的Zookeeper:

docker run -d --name zookeeper jplock/zookeeper:3.4.6

然后我开始一个Kafka示例:

docker run -d --name kafka --link zookeeper:zookeeper ches/kafka

当我创建主题和消息时,所有的工作。
现在我创建第二个Kafka示例:

docker run -d --name kafka2 --link zookeeper:zookeeper --expose 9093  --env-file env ches/kafka

我将暴露端口更改为9093,环境变量:

PORT=9093
EXPOSED_PORT=9093
BROKER_ID=2

代理启动良好,我可以创建一个复制主题:

docker -D run --rm ches/kafka kafka-topics.sh --create --topic test2  --replication-factor 2 --partitions 1 --zookeeper $ZK_IP:2181

现在,当我想发送一些消息时:

docker run --rm --interactive ches/kafka kafka-console-producer.sh --topic test2 --broker-list $KAFKA_IP:9092

我得到这个错误:
error producer连接到172.17.0.17:9093不成功(kafka.producer.syncproducer)java.net.connectexception:连接被拒绝
Docker 告诉我:

CONTAINER ID        IMAGE                    COMMAND                CREATED              STATUS              PORTS                          NAMES
d7bba0f3d0db        ches/kafka:latest        "kafka-console-produ   About a minute ago   Up About a minute   9092/tcp, 7203/tcp             sick_shockley
9c475a659383        ches/kafka:latest        "/start.sh"            4 minutes ago        Up 4 minutes        7203/tcp, 9092/tcp, 9093/tcp   kafka2
63aae4c539ab        ches/kafka:latest        "/start.sh"            28 minutes ago       Up 28 minutes       7203/tcp, 9092/tcp             kafka
ab560690e0e7        jplock/zookeeper:3.4.6   "/opt/zookeeper/bin/   28 minutes ago       Up 28 minutes       2181/tcp, 2888/tcp, 3888/tcp   zookeeper

Kafka2似乎是从9093港口开始的。
为什么我会犯这个错误?
谢谢。

enyaitl3

enyaitl31#

查查zookeeper dockerKafka Docker 的广告主机名是什么。很可能他们将docker哈希注册为主机名(因为它是docker容器中getinetAddress()的结果),而不是可解析的地址。
如果是这样的话,编辑您的标准kafka配置来更改advised.host.name应该可以解决您的问题(这有点烦人,因为您必须在开始时更改它,但是您可以在启动时从docker容器的/etc/hosts文件中获取它,它应该是其中第一行的前半部分)。

相关问题