gpt4 book ai didi

mongodb - MongoConnectionTimeOut 无法使用 MongoClientURI

转载 作者:可可西里 更新时间:2023-11-01 10:49:03 25 4
gpt4 key购买 nike

我正在尝试使用 MongoClientURI(URL) 连接 MongoDB 我的 URL 是 mongodb://userName:Password@host:PortNumber/DBName?connectTimeoutMS=10000当我的 MongoDB 出现故障时,我尝试发布请求,但默认时间为 30 秒。谁能帮我解决问题

提前致谢。

最佳答案

您可以使用 Mongo Java 客户端的 MongoClientOptions 设置超时。例如:

    MongoClientOptions clientOptions = MongoClientOptions.builder()
.connectTimeout(...)
.socketTimeout(...)
.serverSelectionTimeout(...)
.build();

MongoClient mongoClient = new MongoClient(new ServerAddress(host, port), clientOptions);

在上述代码行之后检查 mongoClient.getMongoClientOptions() 清楚地表明创建的客户端忠实于提供的配置值。相比之下,如果您不通过 MongoClientOptions 设置这些值,则 mongoClient.getMongoClientOptions() 显示已选择默认值。

根据您更新的评论,我认为您正试图迎合的情况是这样的:

Creating a connection against a server instance which does not exists / is unavailable should fail sooner that the default of 30s.

如果是这样,那么您要使用的配置参数是 serverSelectionTimeout。以下调用 ...

    MongoClientOptions clientOptions = MongoClientOptions.builder()
.serverSelectionTimeout(2000)
.build();

MongoClient mongoClient = new MongoClient(new ServerAddress(host, port), clientOptions);

... 将导致抛出此异常:

com.mongodb.MongoTimeoutException: Timed out after 2000 ms while waiting to connect.

注意:serverSelectionTimeout 在您使用的 MongoDB Java 驱动程序版本中可用(3.2.2 根据您在问题上发表的评论)。

关于mongodb - MongoConnectionTimeOut 无法使用 MongoClientURI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45276710/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com