同步API

3.x版本

        MongoClientOptions mongoClientOptions = mongoClient.getMongoClientOptions();
        int connectionsPerHost = mongoClientOptions.getConnectionsPerHost();
        System.out.println("修改后的连接池大小:" + connectionsPerHost); // 输出200

异步API(reactivestream)

5.2.1

   CodecRegistry pojoCodecRegistry = CodecRegistries.fromProviders(
                PojoCodecProvider.builder().automatic(true).build()
        );
        CodecRegistry codecRegistry = CodecRegistries.fromRegistries(
                MongoClientSettings.getDefaultCodecRegistry(),
                pojoCodecRegistry
        );
        ConnectionString connectionString = new ConnectionString(mongoURI.toString());
        MongoClientSettings clientSettings = MongoClientSettings.builder()
                .codecRegistry(codecRegistry)
                .applyConnectionString(connectionString) // 应用连接字符串
//                .applyToConnectionPoolSettings(builder -> builder
//                        .maxSize(Runtime.getRuntime().availableProcessors())                          // 最大连接数
//                        .minSize(Runtime.getRuntime().availableProcessors() / 2)                           // 最小空闲连接数
//                        .maxWaitTime(30, TimeUnit.SECONDS)     // 获取连接的最大等待时间
//                        .maxConnectionLifeTime(60, TimeUnit.MINUTES) // 连接最大存活时间
//                        .maxConnectionIdleTime(30, TimeUnit.MINUTES) // 连接最大空闲时间
//                )
                .applyToSocketSettings(builder -> builder
                        .connectTimeout(5, TimeUnit.SECONDS)   // 建立连接的超时时间
                        .readTimeout(10, TimeUnit.SECONDS))   // 读取数据的超时时间)         // 应用 socket 配置
                .build();
        MongoClient mongoClient = MongoClients.create(clientSettings);
        int maxSize = clientSettings.getConnectionPoolSettings().getMaxSize();
        System.out.println("修改后的连接池大小:" + maxSize); // 输出200

tips

上述两者都是默认100

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐