我目前正在使用驱动程序kafka-node,这工作正常,当我在本地运行它但是当我尝试连接到外部kafka机器时,我确实从消耗的消息和队列中获取输出。 任何人都可以帮忙吗?
当我这样做时,我没有收到错误,代码只是挂在终端上而没有返回任何内容。 ctrl + c帮助我杀了这个。
请参阅下面的代码。 感谢
当我这样做时,我不
var kafka = require('kafka-node'),
Consumer = kafka.Consumer,
client = new kafka.Client('SOMEIP_ADRESS:9092'),
// client = new kafka.Client('localhost:2181'),
consumer = new Consumer(
client,
[
{ topic: 'catTopic', partition: 0 }
//{ topic: 'dogTopic', partition: 0 }
],
{
autoCommit: false,
fromBeginning: true
}
);
// how de we get the messages on the queue
// we only ac when we get messages
consumer.on('message', function (message) {
console.log(message);
});
答案 0 :(得分:1)
所以出于某种原因,这个问题出现在node-kafka,kafka-node和kafkaesque问题上,我不知道如何解决。
no-kafka与外界合作很好。
答案 1 :(得分:0)
var kafka = require('kafka-node');
var Producer = kafka.Producer,
client=new kafka.KafkaClient({kafkaHost: serverip with port}),
producer = new Producer(client);
producer.on('ready', function () {
return callback(null,producer);
});
producer.on('error', function (err) {
return crashed(new Error(err), false);
});
};
在要连接的远程系统中的kafka / config / server.properties中进行更改... 将此添加到行下
advertised.listeners=PLAINTEXT://<myActual IP address>:9092
这里请注意,“ ip是您的远程系统ip,而不是本地系统ip”
例如
advertised.listeners=PLAINTEXT://192.168.150.150:9092
192.168.150.150:9092是您正在连接的远程系统IP。