【问题标题】:Mongo Connection Pooling(Changing the size of connection pool)Mongodb Connection Pooling(改变连接池的大小)
【发布时间】:2014-07-03 15:28:23
【问题描述】:

如何改变mongo连接池大小?

我已经看到它默认为 100。有没有办法改变这个值?

我不想通过 spring 来做,有没有办法通过 MongoClient 来配置它?

我看到了一个关于 mongoClientOptions 的选项,但我没有看到设置连接池的选项

【问题讨论】:

    标签: java spring mongodb mongo-java spring-mongo


    【解决方案1】:

    您可以使用 MongoClientOptions.Builder 构建自己的 MongoClient 实例。

    MongoClientOptions.Builder builder = new MongoClientOptions.Builder();
    MongoClientOptions options = builder.connectionsPerHost(10).build();
    MongoClient client = new MongoClient(listOfServers, options);
    

    【讨论】:

    • 所以这个10号是连接池?默认情况下是 100?另外,如果我说 3 个主机,在您的情况下我总共将有 30 个连接?
    • 默认 100 可能是实施者认为对大多数人来说最好的默认设置 - 我无法回答为什么。以上将为每个主机设置 10 个连接(是的,池)。如果您有 3 台主机,则每台主机 10 台,总共 30 台。
    【解决方案2】:

    作为另一种选择(对我来说更方便),可以通过 MongoDb URI 更改连接池大小。 示例:

     MONGODB_URI (mongo):   mongodb://user:password@localhost:27017/users_db?ssl=true&maxPoolSize=10&readPreference=primaryPreferred&replicaSet=Dev-shard-0&authSource=admin
    

    maxPoolSize=10 参数是最大连接数。 还有一些额外的参数用于配置连接池,详情请参考文档-https://docs.mongodb.com/manual/reference/connection-string/

    【讨论】:

      【解决方案3】:

      也可以使用 MongoClientURI 设置额外的选项:

      MongoClientOptions.Builder builder = new MongoClientOptions.Builder().connectionsPerHost(10));
      MongoClientURI clientURI = new MongoClientURI(connectionURL, builder);
      MongoClient mongoClient = new MongoClient(clientURI);
      

      【讨论】:

        猜你喜欢
        • 2013-08-12
        • 2017-09-04
        • 1970-01-01
        • 2011-08-13
        • 2015-12-19
        • 2018-02-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多