MongoDB Java驱动程序:autoConnectRetry
我们当前的连接配置如下所示:
MongoClientOptions.builder() .autoConnectRetry(true).maxAutoConnectRetryTime(1200000) .socketTimeout(30000).connectTimeout(15000).build(); // SocketTimeout: 30s, ConnectionTimeout 15s, ReconnectRetry: 20min
autoConnectRetry
和maxAutoConnectRetryTime
在当前版本( 源代码 )中已弃用,将被删除:“此方法没有替代。使用connectTimeout属性来控制连接超时。”
我认为重试和连接超时是两个不同的事情。 有谁知道为什么这会改变以及这有什么(内部)影响?
关于autoConnectRetry的含义存在很多困惑。 大多数人认为这意味着,如果操作因IOException而失败,驱动程序将重试该操作,直到maxAutoConnectRetryTime结束。 但事实并非如此。
所有这一切意味着,在调用Socket.connect()时,驱动程序会重试失败的连接尝试,直到maxAutoConnectRetryTime结束。 但这正是connectTimeout的用途。 autoConnectRetry的唯一附加function是,您可以指定比基础操作系统允许的更长的连接超时(通常会强制实施最大连接超时,限制用户指定的值)。
由于这种混淆,function缺乏价值,以及其他MongoDB驱动程序都没有支持此function,我们决定弃用它(并在下一个主要版本中将其删除)。
- 使用“multipart / form-data”进行文件上传服务时出现严重错误 – Apache Jersey
- 既然他们停止为Eclipse开发derby插件,是否有可能在Eclipse中使用来自apache的derby?
- 在java swing中设置窗口的最小大小限制
- Kerberos – 使用HMAC无法找到适当类型的密钥来解密AP REP-RC4
- 如何从spring控制器获取angularjs中的模型属性值
- 在persistence.xml之外定义jpa实体类
- ClientRequestFactory RestEasy已弃用……任何其他RestEasy替代方案?
- Java中可用的最佳可resize的循环字节缓冲区是什么?
- 实现Java优先级队列