gpt4 book ai didi

swift - 服务器 Swift 与 mongodb 管理器单例

转载 作者:行者123 更新时间:2023-11-30 12:34:35 27 4
gpt4 key购买 nike

我正在使用 VaporMongodb 开发一个项目。
假设在特定路线上

    drop.get("user", String.self) { request, user in
// ... query Mongodb
}

我想查询数据库并查看输入用户是否已存在。
使用单例 MongoManager 类来处理与数据库的所有连接是否明智?

drop.get("user", String.self) { request, user in
MongoManager.sharedInstance.findUser(user)
}

此实现是否会造成瓶颈?

最佳答案

不,除非您在 Vapor Handler 和 MongoDB 之间有一个单线程机制,否则您不会造成瓶颈。

MongoKitten(Swift + MongoDB 项目的底层驱动)在内部管理连接池。您可以盲目地在 MongoKitten 上发起查询,它会找出要使用的连接,或者在必要时创建一个新连接。

MongoKitten 3 的用户每个请求将使用一个连接。如果同时处理多个请求,则会打开额外的连接。

MongoKitten 4 的用户将使用单个连接处理 3 个请求,这是可配置的。如果正在执行的请求太多,连接池将通过打开更多连接来扩展。

即将推出的 Meow ORM(其工作原理与您正在构建的类似)的用户将在每个线程中使用单个连接。如果保留所有连接,连接池将会扩大。

关于swift - 服务器 Swift 与 mongodb 管理器单例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43026676/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com