伙计们:
我想把卡夫卡和nodejs联系起来。版本Kafka为0.8.2,nodejs模块为kafka(Version 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)我不确定我是否应该做一些改变来处理it.or,我是不是错过了一些.Hope会帮助我的东西,谢谢!
发布于 2015-09-27 12:33:59
问题解决了!
这个问题是由错误的吐露引起的: Kafka服务器的设置必须如下:
在server.properties文件中:
advertised.host.name=192.168.1.104
默认情况下是localhost :因此客户端不能路由到目的地,您必须设置一个真正的is地址,以便远程客户端可以与服务器对话!
https://stackoverflow.com/questions/32804312
复制相似问题