我正在尝试使用Kafka-Client库(0.9.0.1)测试Producer,Consumer。 代理(0.9.0.1)正在服务器上运行,我已经测试了KafkaProducer,没有问题。 但是当我测试 KafkaConsumer 进行轮询时,代理会发出错误消息。
[2016-03-18 13:44:19,129] ERROR由于错误而关闭/172.26.132.149的套接字(kafka.network.Processor) kafka.common.KafkaException:错误的请求类型10 at kafka.api.RequestKeys $ .deserializerForKey(RequestKeys.scala:57) 在kafka.network.RequestChannel $ Request。(RequestChannel.scala:53) 在kafka.network.Processor.read(SocketServer.scala:353) 在kafka.network.Processor.run(SocketServer.scala:245)
消费者测试代码如下。
class ConsumerRunner implements Runnable{
private KafkaConsumer<String,String> consumer;
private String topic;
public ConsumerRunner(String topic,Properties props){
consumer = new KafkaConsumer<String,String>(props);
this.topic = topic;
consumer.subscribe(Arrays.asList(this.topic));
}
public void run() {
while(true){
ConsumerRecords<String,String> records = consumer.poll(10000);
for (ConsumerRecord<String, String> record : records)
System.out.printf("offset = %d, key = %s, value = %s", record.offset(), record.key(), record.value());
}
}
}
我猜测轮询请求包含错误的请求类型密钥,但是当我检查Kafka核心源时,我重新使用了请求类型密钥&#39; 10&#39;被定义为&#39; GroupCoordinatorKey&#39;。我在&#39; kafka.network.RequestChannel.scala &#39;
中发现了可疑代码 val requestObj =
if ( RequestKeys.keyToNameAndDeserializerMap.contains(requestId))
RequestKeys.deserializerForKey(requestId)(buffer)
else
null
测试用户还会显示错误消息
java.io.EOFException:null at org.apache.kafka.common.network.NetworkReceive.readFromReadableChannel(NetworkReceive.java:83) 在 org.apache.kafka.common.network.NetworkReceive.readFrom(NetworkReceive.java:71) 在 org.apache.kafka.common.network.KafkaChannel.receive(KafkaChannel.java:153) 在 org.apache.kafka.common.network.KafkaChannel.read(KafkaChannel.java:134) 在org.apache.kafka.common.network.Selector.poll(Selector.java:286) 在 org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:256) 在 org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.clientPoll(ConsumerNetworkClient.java:320) 在 org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:213) 在 org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:193) 在 org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:163) 在 org.apache.kafka.clients.consumer.internals.AbstractCoordinator.ensureCoordinatorKnown(AbstractCoordinator.java:180) 在 org.apache.kafka.clients.consumer.KafkaConsumer.pollOnce(KafkaConsumer.java:886) 在 org.apache.kafka.clients.consumer.KafkaConsumer.poll(KafkaConsumer.java:853) 在 com.medialog.mdt.kafka.KafkaTest $ ConsumerThread.run(KafkaTest.java:61)
有人有想法吗?这是我的问题吗?或其他人? 请帮我。 谢谢。
答案 0 :(得分:0)
Minkoo
不确定您是否只是尝试为0.9 Kafka代码创建消费者,或者您的kafka消息是否具有导致此问题的特定内容,您是否可以分享更多详细信息。
但如果您只是尝试为0.9编写kafka消费者,那么在Kafka 0.9中就会有新的消费者API。如果您打开使用新的消费者API,请查看此示例https://github.com/sdpatil/KafkaAPIClient/blob/master/src/main/java/com/spnotes/kafka/simple/Consumer.java以获取示例。
苏尼