首页 文章

Docker:多 Kafka 经纪人失败了

提问于
浏览
0

我想使用几个kafka经纪人的docker .

所以我用这个docker image开始了一些测试=> https://github.com/ches/docker-kafka

对于一个经纪人,一切正常:

我开始我的动物园管理员:

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 --rerelication-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:连接被拒绝

一个码头工ps给我:

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端口 .

为什么我会收到此错误?

谢谢 .

1 回答

  • 0

    在zookeeper docker中检查kafka码头 Worker 的广告主机名是什么 . 他们很可能将docker hash注册为主机名(因为它是docker容器中getInetAdress()的结果)而不是可解析的地址 .

    如果是这种情况,编辑标准kafka配置以更改advertised.host.name应该可以解决您的问题(这有点烦人,因为您必须在开始时更改它,但您可以从/ etc / hosts文件中获取它启动时的docker容器,应该是它的第一行的前半部分) .

相关问题