【问题标题】:Mongo DB connectionsMongoDB 连接
【发布时间】:2014-06-22 22:55:24
【问题描述】:

我正在使用 Mongoose 连接到 MongoDB。为数据库创建了一个包含 10 个连接的池。我只想确保是否使用了所有 10 个连接,或者如果有大约 1000 个并发用户,则仅使用 1 个

1.连接对象中是否有唯一标识来区分使用的是哪个连接?

示例连接字符串 -

mongoose.createConnection('mongodb://localhost/mydatabase',{server:{poolSize:10}});

【问题讨论】:

    标签: node.js mongodb mongoose


    【解决方案1】:

    当您有一个连接池时,默认值将是,因此始终在第一次使用该连接时设置最大大小。所以默认情况下:

    poolSize: 5,
    minPoolSize: 3
    

    这意味着在初始连接时,所有 5 个连接都将建立并设置在池中。随着时间的流逝,随着时间的流逝(如果它们空闲),池大小将降至最小值 3。当然,最大值或最小值都不会偏离您设置的这些参数。

    如果您相当忙于活动,那么您可能会拥有池中可用的最大数量,因为它们会定期从池中抽取并且不会过时。

    您当然可以通过查询驱动程序信息来获取当前使用信息。连接池条目在一个数组中,你可以通过获取它的长度来获取计数。

    从一个猫鼬模型,到这里的路径是:

    console.log( Model.db.db.serverConfig.connectionPool.openConnections.length );
    

    这会深入了解本机驱动程序信息以获取此信息。沿着这条路径还有其他有趣的信息,您可能会发现对应用程序工具有用。

    【讨论】:

    • 对于一个请求,如何从池中找出使用了哪个连接。每个连接是否有唯一ID
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多