2015-06-17 64 views
8

我正在使用Kafka 0.8.2.1和New Producer API。 服務器設置爲本地網絡中的單個節點。
問題是生產者在運行一段時間(上次檢查15分鐘後)會拋出EOFException,但這似乎並不重要,因爲我的生產者在此之後繼續工作。kafka生產者在運行期間拋出EOFException

我初始化生產方式:

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); 

而且我得到異常:

即使
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] 

我的代碼仍然有工作的,我想知道爲什麼和如何防止它。

+0

我有同樣的問題,現在,你想通了已經?看起來有一個官方問題https://issues.apache.org/jira/browse/KAFKA-2078 – shobull

回答

0

您是否嘗試更改「connections.max.idle.ms」?其默認值是15分鐘。如果每15分鐘發現一次此錯誤,則嘗試減少此超時。

相關問題