当前位置: 首页 > 知识库问答 >
问题:

来自Mongo客户端的Mongo readtimeout

贡可人
2023-03-14

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

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

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

现在,我们从Mongo获得readtimeout/sockettimeour,而application1在Mongo上几乎没有写操作,而application2在Mongo上执行大量写操作

Application 1 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

我们使用的是Java Mongo驱动程序,默认情况下最大连接池大小为100

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

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

共有1个答案

申屠秦斩
2023-03-14

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

waitQueueTimeoutMS:线程等待连接可用的最长时间(以毫秒为单位)。

有关连接池选项的更多详细信息,请参阅此链接https://docs.mongodb.com/manual/reference/connection-string/#urioption.waitQueueTimeoutMS

 类似资料:
  • 问题内容: 我正在使用一些示例代码,该代码使我可以将消息从Python客户端发送到Android服务器(TCP)。但是,仅在关闭客户端后,该消息才会显示在Android仿真器上。 我可能缺少tcp套接字(首​​次使用和实现)背后的一些基本知识。 我的主要目的是使Android App中的按钮可以在单击时将不同的消息发送到单独的Linux系统上的Python客户端,并且Python客户端在收到该消息

  • 问题内容: 使用Go中的软件包,实际上是否可以从服务器向客户端进行RPC调用?如果没有,是否有更好的解决方案? 问题答案: 我目前正在使用Thrift(thrift4go)来实现服务器->客户端和客户端->服务器RPC功能。默认情况下,thrift仅像net / rpc一样执行客户端->服务器调用。由于还需要服务器与客户机之间的通信,因此我进行了一些研究并发现了bidi- thrift 。Bidi

  • 大家好,我是EJB组件技术的新手,为了准备我的学术讨论会考试,我必须学习这一点。我不确定我能理解生命周期的所有细节。 -客户机对EJB容器的请求(但该请求如何完成?请求的位置我指的是远程“EJB容器外部”还是本地“EJB容器内部”重要与否?) -根据请求,在池中创建一个bean实例并返回给客户机,在从客户机使用后,它再次返回池中(取决于bean类型(?))。 我认为这个场景适合于无状态会话bean

  • 当我在主机服务器的浏览器上运行这个应用程序时,我成功地获得了一个json对象(它不是我期望的json,但这是另一个问题)。但是,当我试图访问远程客户端上的站点时,我会得到一个403错误,指向我试图检索响应时的位置。有什么想法吗?

  • 差不多吧。是否有一个属性,一些配置,一些设置,可以帮助做到这一点很容易请?不用添加太多锅炉代码。 谢谢。

  • 我已经用React和Apollo客户端在NestJS服务器上用GraphQL API制作了简单的CRUD应用程序。 我有一个简单的突变: “EmailScalar”类型主要检查“email”输入是否具有格式 它不能通过验证(因为电子邮件类型工作正常) 但当从客户端发送的查询通过验证时: NestJS服务器日志(来自下面的代码) 以前从未使用过NestJS、Apollo、React或GraphQL,