【问题标题】:Server Swift with mongodb manager singleton带有 mongodb 管理器单例的服务器 Swift
【发布时间】:2017-08-18 23:54:15
【问题描述】:

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

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

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

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

我是否会在此实现中造成瓶颈?

【问题讨论】:

    标签: swift mongodb vapor


    【解决方案1】:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2019-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-24
      • 1970-01-01
      • 2015-12-14
      • 1970-01-01
      相关资源
      最近更新 更多