MongoClient 不尊重 connectTimeout

Posted

技术标签:

【中文标题】MongoClient 不尊重 connectTimeout【英文标题】:MongoClient not respecting connectTimeout 【发布时间】:2015-03-13 10:59:46 【问题描述】:

我正在尝试为 MongoClient(驱动程序版本 2.13)设置连接超时。

它挂起 10 秒然后超时。我需要快速超时,因为此代码用于测试。

这是我的代码:

String connectionUri = properties.getProperty("application.mongo.url");
System.out.println("******     "+  connectionUri  + "*******");
MongoClientOptions mongoClientOptions = MongoClientOptions.builder()
                                                .connectTimeout(500)
                                                .build();

MongoClient mongoClient = new MongoClient(connectionUri, mongoClientOptions);

javadoc is describes the connectTimeout 和 this post 描述了如何设置超时。

有没有人遇到过类似的问题并解决了?

【问题讨论】:

您能否提供一个与选项一起使用的连接字符串示例? 也设置socketTimeout,解决快速失败问题? api.mongodb.org/java/2.13/com/mongodb/… 【参考方案1】:

如果你想测试服务器连接,你应该使用MongoClientOptions.builder().serverSelectionTimeout(500).build()。如果您想测试它们,要设置的其他属性是:

连接超时 套接字超时 heartbeatConnectTimeout heartbeatSocketTimeout

【讨论】:

以上是关于MongoClient 不尊重 connectTimeout的主要内容,如果未能解决你的问题,请参考以下文章

com.mongodb.client.MongoClient 和 com.mongodb.MongoClient 的区别

UserWarning: MongoClient 在 fork 之前打开。仅在 fork 后创建 MongoClient

iframe 不尊重高度属性

为啥角度组件不尊重样式 css?

查看不尊重约束,这是为啥呢?

不尊重 zindex 的 Mapbox 标记