ERROR由于错误而关闭/127.0.0.1的套接字(kafka.network.Processor)

时间:2016-01-20 03:40:28

标签: apache-camel apache-kafka kafka-consumer-api kafka-producer-api

我是apache camel和apache kafka的新手,为我的项目做了一个小POC。我在尝试使用Camel-kafka组件从kafka读取时遇到问题错误日志。

[2016-01-20 08:47:10,979] INFO Closing socket connection to /127.0.0.1. (kafka.network.Processor)
[2016-01-20 08:47:44,643] INFO Closing socket connection to /127.0.0.1. (kafka.network.Processor)
[2016-01-20 08:47:54,545] ERROR Closing socket for /127.0.0.1 because of error (kafka.network.Processor)
java.io.IOException: Broken pipe
    at sun.nio.ch.FileDispatcherImpl.write0(Native Method)
    at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47)
    at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)
    at sun.nio.ch.IOUtil.write(IOUtil.java:65)
    at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:470)
    at kafka.api.TopicDataSend.writeTo(FetchResponse.scala:123)
    at kafka.network.MultiSend.writeTo(Transmission.scala:101)
    at kafka.api.FetchResponseSend.writeTo(FetchResponse.scala:231)
    at kafka.network.Processor.write(SocketServer.scala:472)
    at kafka.network.Processor.run(SocketServer.scala:342)
    at java.lang.Thread.run(Thread.java:745)

我的java代码如下:

public class Main {
public static void main(String[] args) throws Exception {

    CamelContext context = new DefaultCamelContext();
    context.addRoutes(new RouteBuilder() {
        public void configure() {
            from("kafka:127.0.0.1:9092?topic=TEST&zookeeperHost=localhost&zookeeperPort=2181&groupId=group1")
                    /*.marshal(xmlJsonFormat)*/
            .process(new XmlToJson())
                    /*.to("kafka:localhost:9092?topic=TestJson&zookeeperHost=localhost&zookeeperPort=2181&groupId=group1");*/
            .to("file:/Users/himanshu/Desktop/TransCamelFuse/test.txt");
        }
    });
    context.start();
    Thread.sleep(10000);
    context.stop();
}

}

我已经从kafka制作人控制台工具中添加了一些txt并尝试使用kafka的camel组件进行读取。

2 个答案:

答案 0 :(得分:0)

这不是错误。由于您提供数据类型而导致此错误。您将逐个手动向Kafka提供数据。

答案 1 :(得分:0)

您需要确保kafka服务器和kafka客户端版本相互兼容,我面临的问题是我的kafka服务器为0.8,某些spring bean使用kafka 2.4库,因此,只要2.4客户端请求任何kafka 0.8操作server.log记录此错误

解决方案 确保在代码中没有任何bean使用不兼容的客户端进行通信。