Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.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
Mongodb 来自Mongo客户端的Mongo读取超时_Mongodb_Amazon Ec2 - Fatal编程技术网

Mongodb 来自Mongo客户端的Mongo读取超时

Mongodb 来自Mongo客户端的Mongo读取超时,mongodb,amazon-ec2,Mongodb,Amazon Ec2,以下是AWS Ec2中Mongo的副本设置,io1(10000 iops)和r4.8XL 1个主节点、1个辅助节点、1个仲裁节点 我们有两种类型的应用程序在Mongo中写入/读取数据,数据量接近2亿 现在,我们从Mongo获得readtimeout/sockettimeour,而application1在Mongo上只有少量写入和读取,而application2执行大量Mongo写入和读取 Application1 Mongoclient选项: mongo.db.connectionsP

以下是AWS Ec2中Mongo的副本设置,io1(10000 iops)和r4.8XL

1个主节点、1个辅助节点、1个仲裁节点

我们有两种类型的应用程序在Mongo中写入/读取数据,数据量接近2亿

现在,我们从Mongo获得readtimeout/sockettimeour,而application1在Mongo上只有少量写入和读取,而application2执行大量Mongo写入和读取

Application1 Mongoclient选项:

    mongo.db.connectionsPerHost=50
    mongo.db.connection.timeout=4000
    mongo.db.max.wait.time=4000
    mongo.db.socket.timeout=4000
mongo.db.readPreference=primaryPreferred
我们使用的是JavaMongo驱动程序,默认情况下最大连接池大小为100

请建议我们是否需要对Mongo客户端选项进行任何更改以消除此错误


我可以假设,由于im没有从mongoclient显式设置connectionpool,所以使用了默认值100吗?或者connectionsPerHost=50只是connectionpoolsize?

您可以尝试设置连接池选项的值

waitQueueTimeoutMS: 线程等待连接可用的最长时间(毫秒)


有关连接池选项的更多详细信息,请参阅此链接。您可以尝试设置连接池选项的值

waitQueueTimeoutMS: 线程等待连接可用的最长时间(毫秒)


有关连接池选项的更多详细信息,请参阅此链接

我猜数据长度已超过足以在单个服务器上处理的长度。尝试
分片
https://docs.mongodb.com/manual/sharding/
我想数据长度已经超过了单台服务器可以处理的范围。尝试
分片
https://docs.mongodb.com/manual/sharding/