MongoDB,Java和仲裁器节点:连接到服务器<主机>:30000时,监视线程异常

时间:2019-07-19 12:03:06

标签: mongodb mongodb-java mongodb-cluster

我们的微服务存在问题(可以说是在ls10上运行)。我们在两个不同的主机上运行两个MongoDb实例(将它们分别命名为ld17和ld18)。

仲裁器节点在端口30000上的后端服务(简称为ls18)上运行。

  • 从运行微服务(ls10)的实例开始的端口30000上的连接成功(nc告诉我们端口已打开)。
  • 从ld17 / 18(端口27017)上的ls18可访问该数据库

有时我们会在日志中看到以下错误:

Exception in monitor thread while connecting to server ls18:30000
com.mongodb.MongoSocketReadException: Prematurely reached end of stream
    at com.mongodb.internal.connection.SocketStream.read(SocketStream.java:92)
    at com.mongodb.internal.connection.InternalStreamConnection.receiveResponseBuffers(InternalStreamConnection.java:554)
    at com.mongodb.internal.connection.InternalStreamConnection.receiveMessage(InternalStreamConnection.java:425)
    at com.mongodb.internal.connection.InternalStreamConnection.receiveCommandMessageResponse(InternalStreamConnection.java:289)
    at com.mongodb.internal.connection.InternalStreamConnection.sendAndReceive(InternalStreamConnection.java:255)
    at com.mongodb.internal.connection.CommandHelper.sendAndReceive(CommandHelper.java:83)
    at com.mongodb.internal.connection.CommandHelper.executeCommand(CommandHelper.java:33)
    at com.mongodb.internal.connection.InternalStreamConnectionInitializer.initializeConnectionDescription(InternalStreamConnectionInitializer.java:106)
    at com.mongodb.internal.connection.InternalStreamConnectionInitializer.initialize(InternalStreamConnectionInitializer.java:63)
    at com.mongodb.internal.connection.InternalStreamConnection.open(InternalStreamConnection.java:127)
    at com.mongodb.internal.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:117)
    at java.lang.Thread.run(Thread.java:748)

这是随机发生的,没有任何明确的原因,并且显然是由Mongo DB中的Monitor任务引起的。

我们认为MongoDB上的实际操作没有任何问题,因此对客户没有影响。

不幸的是,由于公司的限制,我不能共享任何代码,但是如果有人对此有一些疑难解答的想法,那就太好了。

非常感谢

最好的塞巴斯蒂安

0 个答案:

没有答案