我已经设置了一个Kafka集群,其中我指定了这样的代理:
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个代理的代码):
try
{
const kafka = new Kafka({
clientId: 'myapp',
brokers: ['kafka1:19092','kafka2:29092','kafka3:39092']
})我知道这个错误:
{"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)"}我觉得我已经用尽互联网试图解决这个问题。有谁有任何建议,如何连接到码头经纪人?
发布于 2020-03-22 00:11:08
在评论中见罗宾的博客。
否则,代码将只在停靠容器中工作,因为您引用的是docker服务名称,DNS服务器无法解析这些名称
换句话说,1)调整广告中的监听器(参见博客)以包含localhost 2)在代码中使用localhost,当它在容器外运行时
注意:一台机器上的3位经纪人并没有改进任何东西。
https://stackoverflow.com/questions/60792143
复制相似问题