草庐IT

Prematurely

全部标签

java - mongoDB 和 Spark : "com.mongodb.MongoSocketReadException: Prematurely reached end of stream"

我有一个Java应用程序,它处理avro消息的Kafka流,并针对每条消息对mongoDB集合执行查询。在正确处理几十条消息后,应用程序停止运行并抛出“com.mongodb.MongoSocketReadException:过早到达流末尾”。代码如下:JavaPairInputDStreamdirectKafkaStream=KafkaUtils.createDirectStream(jsc,String.class,byte[].class,StringDecoder.class,DefaultDecoder.class,kafkaParams,topics);directKafk

java - MongoSocketReadException : Prematurely reached end of stream (after a period of inactivity)

在一段时间不活动后,我在find调用(默认Java驱动程序)中收到此错误。我尝试添加手动心跳(写入上限集合),但没有帮助。我只有在连接到compose上的实例时才会遇到问题(即不在本地上下文中)。MongoDB版本是3.2.8,最新驱动(3.3),使用Java8。有什么想法吗? 最佳答案 我在一些文档中找到了它:对于长时间运行的应用程序,通常谨慎的做法是在几毫秒内启用“keepAlive”。如果没有它,一段时间后您可能会开始看到“连接关闭”错误,这似乎是没有原因的。检查这是否有帮助。当您连接到mongoDB时,您可以将套接字选项传递
12