服务器Swift与mongodb经理单身人士

时间:2017-03-26 08:33:04

标签: swift mongodb vapor

我正在使用VaporMongodb开展项目。
让我们说在特定的路线上

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

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

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

我是否通过此实施创建了瓶颈?

1 个答案:

答案 0 :(得分:0)

不,除非您的Vapor Handler和MongoDB之间有单线程机制,否则不会产生瓶颈。

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

MongoKitten 3的用户将根据请求使用单个连接。如果同时处理多个请求,将打开其他连接。

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

即将推出的Meow ORM(与您正在构建的工作类似)的用户将使用每个线程的单个连接。如果保留所有连接,则连接池将展开。