先用一张图来描述MongoDB链接超时问题mongodb
如下是我在网络上收集到的:数据库
官方的解决方法
连接描述windows
set the tcp keepalive
连接描述网络
聚合查询
解决方案是建立相关的索引
连接描述异步
正确建立索引
将background
设置成异步的db.getCollection('project').ensureIndex({'_id' : 1, 'A' : 1}, {'background': 'true'})
连接描述socket
对于第一种
其实官方给出来的必定要细读(我就是这里出问题了)
有两段写的很详细了
这两段说道:提供MongoDB服务的主机和负责连接数据库的主机 都须要设置keepalive
;非Linux系统的主机(好比 windows) 设置keepalive
的值大于或等于 10分钟都将被忽略,意思就是没有值,不会被keepalive
,然而Linux的会有一个默认或上限值;最终意思就是windows是没有默认或上限值的,没有设置值或者超过了,keepalive
都不会生效。tcp
最后附上一篇外文
连接描述spa
说明
以上只作参考,具体问题实际分析。欢迎指出不对之处,欢迎补充,谢谢。.net