MongDB Client请求查询数据,需要包括五个阶段:
- MongoDB Client需要找到可用的MongoDB Server
- MongoDB Client需要和MongoDB Server建立(new)Connection
- 应用程序处理线程从Connection Pool中获取Connection
- 数据传输(获取连接后,进行Socket通信,获取数据)
- 断开Collection
那么,MongoDB Client驱动设置中网络相关等待超时参数serverSelectionTimeout、connectTimeout、maxWaitTime和socketTimeout分别对应上面哪个环节呢?
参数serverSelectionTimeout:对应第1个环节,即MongoDB Client需要找到可用的MongoDB Server所需要的等待时间, MongDB部署的生产一般由多个服务器组成,要么作为一个复制集或者作为一个分片集群,参数 serverSelectionTimeout的值即为多长时间内找不到合适服务器时候就决定放弃的时间间隔;
参数connectTimeout:对应第2个环节,每次创建Connection,对应的网络等待。单位毫秒数, 0表示没有限制;
参数maxWaitTime:对应第3个环节,应