You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js连接Laradocker中Kafka容器发送消息超时问题求助

Kafka生产者就绪但发送消息超时(Docker环境 + kafka-node库)

我编写了以下Node.js代码用于测试Kafka消息生产:

const kafka = require('kafka-node');

// Create a Kafka client with the Kafka broker's hostname (kafka) and port (9092)
const client = new kafka.KafkaClient({ kafkaHost: '0.0.0.0:9092', connectTimeout: 5000 }); // 5000 milliseconds = 5 seconds

// Create a Kafka producer using the client
const producer = new kafka.Producer(client);

// Handle producer ready event
producer.on('ready', () => {
    console.log('Kafka producer is ready');
});

// Handle producer error event
producer.on('error', (err) => {
    console.error('Error with Kafka producer:', err);
});

// Example usage: send a message to a Kafka topic
const payload = {
    topic: 'test-topic',
    messages: 'Hello Kafka!'
};

// Send the message
producer.send([payload], (err, data) => {
    if (err) {
        console.error('Error sending message:', err);
    } else {
        console.log('Message sent:', data);
    }
});

执行docker ps查看容器状态,Kafka和ZooKeeper容器均正常运行且端口映射正确:

CONTAINER ID   IMAGE                  COMMAND                  CREATED        STATUS        PORTS                                                                       Names
4fabb4858464   wurstmeister/kafka     "start-kafka.sh"         2 months ago   Up 13 hours   0.0.0.0:9092->9092/tcp, :::9092->9092/tcp                                   laradock_kafka_1
a648aff4197b   laradock_zookeeper     "/docker-entrypoint.…"   2 months ago   Up 13 hours   2888/tcp, 3888/tcp, 0.0.0.0:2181->2181/tcp, :::2181->2181/tcp, 8080/tcp     laradock_zookeeper_1

但运行代码时,虽然控制台提示Kafka生产者已就绪,却出现发送消息超时错误:

Kafka producer is ready
Error sending message: TimeoutError: Request timed out after 30000ms
    at new TimeoutError (/home/rns/Documents/project-js/new-kafka-task/node_modules/kafka-node/lib/errors/TimeoutError.js:6:9)
    at Timeout._onTimeout (/home/rns/Documents/project-js/new-kafka-task/node_modules/kafka-node/lib/kafkaClient.js:1012:16)
    at listOnTimeout (internal/timers.js:554:17)
    at processTimers (internal/timers.js:497:7)

希望有人能帮我解决这个问题。

内容的提问来源于stack exchange,提问作者wuku

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 03:12:27