首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >卡夫卡未能与码头经纪人联系

卡夫卡未能与码头经纪人联系
EN

Stack Overflow用户
提问于 2020-03-21 19:08:14
回答 1查看 5.2K关注 0票数 1

我已经设置了一个Kafka集群,其中我指定了这样的代理:

代码语言:javascript
复制
kafka1:
    image: confluentinc/cp-kafka:latest
    hostname: kafka1
    ports:
      - "19092:19092"
    depends_on:
      - zookeeper-1
      - zookeeper-2
      - zookeeper-3
    environment:
      KAFKA_BROKER_ID: 1
      KAFKA_ZOOKEEPER_CONNECT: zookeeper-1:12181,zookeeper-2:12181,zookeeper-3:12181
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka1:19092

现在,当我尝试用js脚本创建主题时,我引用了如下所示的代理(为了这篇文章,我只附加了大约1个代理的代码):

代码语言:javascript
复制
try
    {
        const kafka = new Kafka({
            clientId: 'myapp',
            brokers: ['kafka1:19092','kafka2:29092','kafka3:39092']
        })

我知道这个错误:

代码语言:javascript
复制
{"level":"ERROR","timestamp":"2020-03-21T19:06:13.653Z","logger":"kafkajs","message":"[Connection] Connection error: getaddrinfo ENOTFOUND kafka1","broker":"kafka1:19092","clientId":"myapp","stack":"Error: getaddrinfo ENOTFOUND kafka1\n    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:66:26)"}

我觉得我已经用尽互联网试图解决这个问题。有谁有任何建议,如何连接到码头经纪人?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-22 00:11:08

在评论中见罗宾的博客。

否则,代码将只在停靠容器中工作,因为您引用的是docker服务名称,DNS服务器无法解析这些名称

换句话说,1)调整广告中的监听器(参见博客)以包含localhost 2)在代码中使用localhost,当它在容器外运行时

注意:一台机器上的3位经纪人并没有改进任何东西。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60792143

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档