web-dev-qa-db-ja.com

Spring-BootでデフォルトのMongo接続プールサイズを変更する

Java mongodb driverによって提供される接続プールのデフォルトサイズを変更したいのですが、mongoのドキュメントによると100です。

以下は、接続プールのサイズをカスタマイズするために使用したmongoクライアントBeanです( この質問 を参照)。最小接続と最大接続の両方のconnectionPerHost属性を1に設定し、DBと対話する10個の並列ワーカースレッドを実行して、変更が適用されていることを確認しました。

@Bean
public Mongo mongo() throws Exception {
    MongoClientOptions.Builder clientOptions = new MongoClientOptions.Builder();
    clientOptions.minConnectionsPerHost(1);
    clientOptions.connectionsPerHost(1);
    MongoClient mongoClient = new MongoClient(new MongoClientURI(env.getProperty("mongodbhost"), clientOptions));
    return mongoClient;
}

次に、各ワーカースレッドの開始タイムスポットと終了タイムスポットを計算しました。そのため、スレッドが並列に動作していて、接続プールのサイズがこれらの構成によって変更されていないことを確認できます。誰かが私がこれを乗り越えるのを手伝ってくれませんか?どんな助けでも大歓迎です!

4
wannix

MongoDb uriパラメーターを使用して、接続プールのサイズを構成できます。詳細- https://stackoverflow.com/a/50407284/6629515

1
Alex Efimov

Uriによって接続パラメータを設定できます。

spring.data.mongodb.uri = mongodb:// localhost:27017 /?connectTimeoutMS = 300000&minPoolSize = 0&maxPoolSize = 10&maxIdleTimeMS = 900000

その他のパラメータについては、次のドキュメントを参照してください。

https://docs.mongodb.com/manual/reference/connection-string/#connections-connection-options

1
Namjith Aravind