伙计们:
我想把Kafka和诺德兹联系起来。kafka版本为0.8.2,nodejs模块为kafka(版本0.2.3)。
我的kafka服务器在我的virsualbox 192.168.1.104中(使用默认设置,没有更改)
下面是节点代码(在192.168.1.1中运行),非常简单:
var kafka = require('kafka')
new kafka.Consumer().connect().subscribeTopic('test').on('message', function(topic, message) {
console.log("Consumed message:", message)
})
var producer = new kafka.Producer({
host: '192.168.1.104',
port: 9092,
topic: 'test',
partition: 0
}).connect().on('connect', function() {
producer.send("hey!")
producer.close()
});
运行以下代码后:在服务器端,他们捕获到一个错误异常:
2015-09-26 20:15:56,494] ERROR Closing socket for /192.168.1.102 because of error (kafka.network.Processor)
java.nio.BufferUnderflowException
at java.nio.Buffer.nextGetIndex(Buffer.java:506)
at java.nio.HeapByteBuffer.getInt(HeapByteBuffer.java:361)
at kafka.api.FetchRequest$.readFrom(FetchRequest.scala:47)
at kafka.api.RequestKeys$$anonfun$2.apply(RequestKeys.scala:40)
at kafka.api.RequestKeys$$anonfun$2.apply(RequestKeys.scala:40)
at kafka.network.RequestChannel$Request.<init>(RequestChannel.scala:50)
at kafka.network.Processor.read(SocketServer.scala:450)
at kafka.network.Processor.run(SocketServer.scala:340)
at java.lang.Thread.run(Thread.java:745)
我不知道我是否应该做些改变来处理它。或者我错过了什么。希望有人能帮助我,谢谢!
1条答案
按热度按时间hgqdbh6s1#
问题解决了!
错误配置导致的问题:kafka服务器的设置必须如下所示:
在server.properties文件中:
播发的.host.name=192.168.1.104
默认为localhost:因此客户端无法路由到目标,您必须设置一个真正的ipaddress,以便远程客户端可以与服务器通信!