【问题标题】:MongoDB Java Driver 4.1.1 how to configure timeout settingsMongoDB Java Driver 4.1.1 如何配置超时设置
【发布时间】:2021-03-19 05:08:16
【问题描述】:

我正在将应用程序从使用 MongoDB Java 驱动程序 v. 3.6.4 迁移到 v. 4.1.1

在 3.6.4 中配置是通过 MongoClientOptions 传递的

@Bean
    public MongoClientOptions mongoOptions() {
        return MongoClientOptions.builder()
                .connectTimeout(...)
                .serverSelectionTimeout(..)
                .socketTimeout(...)
                .build();
    } 

在 4.1.1 MongoClientOptions 已被弃用,我正在使用 MongoClientSettings 类 http://mongodb.github.io/mongo-java-driver/4.1/apidocs/mongodb-driver-core/com/mongodb/MongoClientSettings.Builder.html

   @Bean
    public MongoClientSettings mongoOptions() {
        return MongoClientSettings.builder()
                .applyToSocketSettings(builder ->
                        builder.applySettings(builder()
                                .connectTimeout(config.getConnectTimeout(), MILLISECONDS).build()))
                .applyToClusterSettings(builder ->
                        builder.serverSelectionTimeout(config.getServerSelectionTimeout(), MILLISECONDS).build())
                .build();

    }

但是我找不到配置 connectTimeout 的设置(除了通过 applyConnectionString 方法提供连接字符串。

【问题讨论】:

标签: java mongodb


【解决方案1】:

是的,我花了一段时间才弄明白。

连接超时和套接字超时现在都在 SocketSettings 中(后者重命名为 readTimeout)。

所以它看起来像下面这样(你可以用你的输入替换 1):

  @Bean
  public MongoClientSettings mongoSetting() {

    return MongoClientSettings.builder()
        .applyToSocketSettings(builder -> {
          builder.connectTimeout(1, MILLISECONDS);
          builder.readTimeout(1, MILLISECONDS);
        })
        .applyToClusterSettings( builder -> builder.serverSelectionTimeout(1, MILLISECONDS))
        .applyConnectionString(new ConnectionString("<your-connection-string>"))

        .build();
  }

我发现需要在这里设置连接字符串(除了通过 spring.data.mongodb.uri 设置它)。去图吧。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多