【问题标题】:Spring Data Mongodb Connection Pool Concurrent Requests LimitSpring Data Mongodb 连接池并发请求数限制
【发布时间】:2019-05-24 01:55:16
【问题描述】:

想知道spring data mongodb连接池是怎么工作的。

想象一个连接到的 spring boot rest api 服务器 mongodb 通过 spring 数据 mongodb。如果默认连接池大小为 100, 这是否意味着只能同时处理 100 个 curl 请求?如果有 200 个并发请求会怎样?

我如何知道给定服务器的最大池大小?例如,如果我有一个 8 GB RAM 的服务器,我可以设置的最大池大小是多少?如果我将池大小设置为 100 万,而我的服务器无法处理 100 万个 mongodb 池大小会发生什么

【问题讨论】:

    标签: spring mongodb spring-data-mongodb spring-data-rest


    【解决方案1】:

    Mongodb 连接池将由MongoDB 服务器根据您传递给它的参数进行管理。

    默认情况下maxPoolSize 设置为100

    要修改它,您可以传递这样的值

    spring.data.mongodb.uri=mongodb://localhost:27017/?connectTimeoutMS=30000&minPoolSize=0&maxPoolSize=50
    

    Refer doc了解更多详情

    如果有 200 个并发请求会发生什么?

    一般来说,当池达到这个大小并且没有空闲连接可用时,对getConnection() 的调用将在超时之前阻塞最多connectionTimeout 毫秒。

    【讨论】:

    • 我如何知道给定服务器的最大池大小?例如,如果我有一个 8 GB RAM 的服务器,我可以设置的最大池大小是多少?如果我将池大小设置为 100 万,而我的服务器无法处理 100 万个 mongodb 池大小会怎样?
    • 对此没有直接的答案。这可能有助于dzone.com/articles/optimum-database-connection-pool-size
    • 是的,如果我只有 1 个 api 服务器连接到 db,这篇文章会很有意义,但是如果我有多个 api 服务器连接到同一个 mongodb 怎么办?我仍然想知道我的 8gb ram mongodb 服务器的最大连接数
    猜你喜欢
    • 1970-01-01
    • 2020-03-30
    • 2021-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多