【发布时间】:2021-12-22 12:09:06
【问题描述】:
我正在尝试连接到在 ubuntu for windows 上运行的 Kafka 3.0.0 客户端,但出现以下错误:“消息”:“[连接] 连接错误:连接 ECONNREFUSED 127.0.0.1:9092”。
这应该意味着节点找不到在端口 9092 上运行的任何服务,但是当我检查所有活动的 tcp 端口时,它说 kafka 正在侦听 9092:
活动的 Internet 连接(服务器和已建立)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp6 0 0 :::9092 :::* LISTEN
tcp6 0 0 :::2181 :::* LISTEN
tcp6 0 0 127.0.0.1:46550 127.0.1.1:9092 ESTABLISHED
tcp6 0 0 127.0.1.1:9092 127.0.0.1:46550 ESTABLISHED
tcp6 0 0 127.0.0.1:2181 127.0.0.1:54466 ESTABLISHED
tcp6 0 0 127.0.0.1:54466 127.0.0.1:2181 ESTABLISHED
我不知道为什么会这样,所有 server.properties 设置都是默认设置,zookeeper 正在运行,我可以创建主题,但节点仍然无法连接。
--编辑-- 这是我的服务器端代码:
const {Kafka} = require('kafkajs');
const run = async () => {
try {
const kafka = new Kafka({
clientId: "myapp",
brokers: ["127.0.0.1:9092"]
})
const name = process.argv[2];
const producer = kafka.producer();
await producer.connect();
console.log("connected")
await producer.send({
topics: "hashtags",
messages: [
{
value: name
}
]
})
console.log("done")
await producer.disconnect();
} catch (error) {
console.log(error)
}
}
run();
这是server.config文件的相关内容:
我将 listeners=PLAINTEXT://:9092 更新为 listeners=PLAINTEXT://127.0.0.1:9092
# FORMAT:
# listeners = listener_name://host_name:port
# EXAMPLE:
# listeners = PLAINTEXT://your.host.name:9092
listeners=PLAINTEXT://127.0.0.1:9092
现在,重启zookeeper和kafka后,活动的tcp端口是:
tcp6 0 0 :::45815 :::* LISTEN
tcp6 0 0 127.0.0.1:9092 :::* LISTEN
tcp6 0 0 :::2181 :::* LISTEN
tcp6 0 0 :::44587 :::* LISTEN
tcp6 0 0 127.0.0.1:46734 127.0.0.1:9092 ESTABLISHED
tcp6 0 0 127.0.0.1:9092 127.0.0.1:46734 ESTABLISHED
tcp6 0 0 127.0.0.1:54492 127.0.0.1:2181 ESTABLISHED
tcp6 0 0 127.0.0.1:2181 127.0.0.1:54492 ESTABLISHED
错误仍然存在。
任何帮助将不胜感激!
【问题讨论】:
-
您正在混合使用 IPv6 和 IPV4。你如何尝试连接?发布相关的 node.js 代码 sn-p & kafak 服务器配置。您的 Kafka 服务器仅侦听 IPv6。
-
我用缺少的信息编辑了帖子。
-
如果你想让所有接口都监听,你应该使用
listeners=PLAINTEXT://0.0.0.0:9092,但是是的,你应该有TCPv4地址 -
那么,Kafka 是在 WSL2 上的 Ubuntu 中运行的吗?您是否也也在那里运行 NodeJS 代码?如果不是,那么
127.0.0.1不是指 WSL2 管理程序 IP -
你说得对,我在 windows 上运行 nodejs 部分。如果我想连接它们,是否应该使用我的 IP 地址而不是 localhost?
标签: node.js apache-kafka