Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java MongoDB打开的连接太多_Java_Mongodb - Fatal编程技术网

Java MongoDB打开的连接太多

Java MongoDB打开的连接太多,java,mongodb,Java,Mongodb,我使用1个shard、10个Mongo服务器和大约1K个java客户端运行Mongo。java客户端中不时会出现异常情况。 在mongod日志中: Wed Aug 14 09:49:31.381 [initandlisten] connection accepted from 10.184.120.100:36382 #19596975 (3277 connections now open) Wed Aug 14 09:49:31.381 [initandlisten] connection r

我使用1个shard、10个Mongo服务器和大约1K个java客户端运行Mongo。java客户端中不时会出现异常情况。
在mongod日志中:

Wed Aug 14 09:49:31.381 [initandlisten] connection accepted from 10.184.120.100:36382 #19596975 (3277 connections now open)
Wed Aug 14 09:49:31.381 [initandlisten] connection refused because too many open connections: 3276
我看到了这一点,我在每个客户机中都使用了一个单例,因此它看起来不像是相同的解决方案。
有人能帮忙吗

我使用1个shard、10个Mongo服务器和大约1K个java客户端运行Mongo

因此有10个节点和1000个客户端。这样,您至少可以为每个节点创建1000个连接,除此之外,还有用于监视和复制的连接。3277断开的连接突然就不那么多了


允许的连接数。MongoDB无法覆盖
ulimit
file descriptor
计数限制,但您可以自己调整这些限制:
ulimit-n
以查看文件描述和连接。

您是否检查了设置文件中的
maxConns
?连接数(3277)是否过低?我应该增加吗?如果你想接受更多的联系,当然可以。日志显示,当一些客户端试图连接时,它们会达到3277的最高点。因此,您需要修改如何关闭应用程序中的连接,或者需要提高限制。问题可能出在代码中。许多懒惰的程序员倾向于不关闭连接。更好的方法是更正代码。不过,您可以为打开连接设置超时。@Igor:从我链接到的答案来看,似乎最好将客户端作为单例。每次使用客户端时,是否还有其他需要关闭的内容?谢谢,我仍然不确定我的设置是否合理。从您的回答来看,似乎最好减少服务器的数量:-)10个节点不是很多!3277连接也是如此。