求问大神,对于mongodb以下几个参数我的理解对不对?
maxWaitTime=120000 是指已经连接到mongodb,正在等待数据返回,这个等待的时间
connectTimeout=10000 是指请求mongodb连接,还没有连接上,正在等待连接的时间
socketTimeout=0 是指已经连接上了,正在传输数据,传输数据过程中会有耗时,这里就是等数据传递结束的等待时间
过去多啦不再A梦2017-05-17 10:04:52
Stackoverflow上有一个有140次赞的回答:如何配置 MongoDB Java 驱动 MongoOptions 供生产使用?
连接超时。顾名思义,驱动程序在连接尝试中止之前将等待的毫秒数。将超时设置为较长的值(15-30 秒),除非存在实际的预期机会,否则会妨碍成功的连接尝试。通常,如果连接尝试花费的时间超过几秒,您的网络基础设施就无法实现高吞吐量。
最大等待时间。线程将等待连接池中的连接变得可用的毫秒数,如果未及时发生,则会引发异常。保持默认。
socketTimeout。标准套接字超时值。设置为 60 秒 (60000).
淡淡烟草味2017-05-17 10:04:52
补充说明如下:
MongoDB Client驱动设置中网络相关的等待设置比较多,依次介绍如下:
1、Client找Server所需要等待的时间,在RS或者Shard环境下,Client需要找到它所需的Server
对应的参数:ServerSelctionTimeOut
2、找到Server之后就需要建立Connection
1)每次都创建Connection,对应的网络等待的参数就是:connectTimeout
2)Connection pooling的话,从Connection Pool取得Connection,对应的网络等待的参数:maxWaitTime.
3、找到Connection之后,就有了Socket通信,在客户端和MonogoDB的Socket通信过程中的网络等待时间的参数就是:socketTimeout
供参考。
Love MongoDB!Have Fun!