Używam Kafki 0.8.2.1 i API nowego producenta. Serwer jest skonfigurowany jako pojedynczy węzeł w sieci lokalnej.
Problem polega na tym, że producent rzuca EOFException
po uruchomieniu przez pewien czas (15 minut ostatniego sprawdzenia), ale nie wydaje się to ważne, ponieważ mój producent kontynuuje pracę po tym.producent kafka rzuca EOFException podczas pracy
Sposób zainicjować producent:
Map<String, Object> configs = new HashMap<>();
configs.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "192.168.1.101:9092");
configs.put(ProducerConfig.ACKS_CONFIG, "1");
configs.put(ProducerConfig.BLOCK_ON_BUFFER_FULL_CONFIG, "false");
configs.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());
configs.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());
this.producer = new KafkaProducer<>(configs);
i wyjątek uzyskałem:
WARN [2015-06-17 02:07:28,896] org.apache.kafka.common.network.Selector: Error in I/O with /192.168.1.101
! java.io.EOFException: null
! at org.apache.kafka.common.network.NetworkReceive.readFrom(NetworkReceive.java:62) ~[kafka-clients-0.8.2.1.jar:na]
! at org.apache.kafka.common.network.Selector.poll(Selector.java:248) ~[kafka-clients-0.8.2.1.jar:na]
! at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:192) [kafka-clients-0.8.2.1.jar:na]
! at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:191) [kafka-clients-0.8.2.1.jar:na]
! at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:122) [kafka-clients-0.8.2.1.jar:na]
! at java.lang.Thread.run(Thread.java:745) [na:1.8.0_45]
Nawet mój kod nadal działa z tym, chciałbym wiedzieć, dlaczego i jak zapobiec.
Mam ten sam problem teraz, czy zorientowaliśmy się już? Wygląda na to, że istnieje oficjalny numer https://issues.apache.org/jira/browse/KAFKA-2078 – shobull