我想使用ruby kafka客戶端庫來生成事件,但遇到了一個我不確定如何解決的問題。任何幫助,將不勝感激。Ruby Kafka Producer BufferUnderflow
我嘗試過使用kafka-rb(acrosa,mheffner和bpot分叉)。問題是不管我通過圖書館發送給我的東西,例如在服務器上
java.nio.BufferUnderflowException
at java.nio.HeapByteBuffer.get(HeapByteBuffer.java:127)
at java.nio.ByteBuffer.get(ByteBuffer.java:675)
at kafka.api.ApiUtils$.readShortString(ApiUtils.scala:22)
at kafka.api.ProducerRequest$.readFrom(ProducerRequest.scala:34)
at kafka.api.RequestKeys$$anonfun$1.apply(RequestKeys.scala:34)
at kafka.api.RequestKeys$$anonfun$1.apply(RequestKeys.scala:34)
at kafka.network.RequestChannel$Request.<init>(RequestChannel.scala:48)
at kafka.network.Processor.read(SocketServer.scala:321)
at kafka.network.Processor.run(SocketServer.scala:231)
at java.lang.Thread.run(Thread.java:680)
:
require 'kafka'
host = 'localhost'
port = 9092
producer = Kafka::Producer.new(
:topic => 'login',
:host => host,
:port => port
)
producer.send([Kafka::Message.new("aaaaa")])
,我收到了。在同一臺服務器上,我可以通過提供的控制檯生產者發送文本,而不會有任何問題
如果你之前看過這個,我會很感激的幫助。因爲我對Scala不是很熟悉,所以我不確定問題是什麼,但在我看來,引發此異常的行與從套接字讀取clientId有關,而且對我來說也是如此沒有這樣的事情從紅寶石客戶端發送。
當我看到在tcpdump表單kafka-rb和提供的生產者生成的消息。紅寶石似乎更短。 此外,無論我使用kafka-0.7還是0.8,我都會得到完全相同的行爲。
事實證明,我是用我所有的嘗試作爲卡夫卡-RB 0.8不支持0.7格式,感謝您的幫助 – tarzan