【问题标题】:Meteor -MongoDB - Single Database or Multiple Databases for SaaS OfferingMeteor -MongoDB - 用于 SaaS 产品的单个数据库或多个数据库
【发布时间】:2013-02-21 13:11:50
【问题描述】:

这是另一个问题,我认为应该由流星团队回答,因为到目前为止我找不到直接的答案。

"..我们决定将 MongoDB 用于我们正在创建的 SaaS 产品。每个注册的公司都有自己的 url (mycompany.domain.com) 和他们自己的一组私有用户、项目等......由于我们使用的是 NoSQL 解决方案,并且不必像使用 MySQL 那样管理向每个数据库推送模式更新,我想知道是拥有一个包含所有数据的大型数据库还是拥有一个更好每个客户端的数据库...”

那么,我可以使用流星方法(使用一个流星项目/服务器): 1)每家公司的不同网址 2) 每个公司和特定公司用户的不同数据库(在同一个 monodb 服务器中)。

【问题讨论】:

    标签: mongodb meteor


    【解决方案1】:

    如果您查看流星自己的托管,他们使用 MongoHQ 的 mongodb 服务器。您可以将多个流星服务器与单个 mongodb 服务器和多个数据库一起使用。

    我认为这更多地取决于您的应用程序设计,Meteor 可以使用任何一种设计。

    1)您可以使用发布功能为每个客户提供来自一个巨大数据库的仅他/她自己的记录,使用一种方法将子域 http 主机放入发布功能,以便它只提供该集合的数据。

    2) 在一台服务器上使用单独的流星实例连接到他们自己的 mongodb 数据库,并使用某种代理将它们服务到子域。您可以使用任何您想要的数据推送每一个,甚至可能是单独的应用程序集。

    这实际上取决于您要构建的内容。如果您只想只需要更新一组数据,以便为每个人更新,您可以使用 1),所以如果您的用例需要这样做,它可能是一个更好的选择。

    使用单独的流星实例的好处主要是自定义。用你给出的细节很难得到你想要的东西的要点,所以请简短地说:如果你希望每个客户的能力非常不同,使用 2),否则使用 1)

    如果你看 Meteor.com 的托管,我认为每个部署都有自己的数据库,主要原因:自定义,每个人的部署可能完全不同。

    更新:

    截至 2014 年 3 月,第三方 atmosphere package meteor-dbproxy 允许您在后端使用多个 mongodb 服务器(以及单独的 oplog 集成端点),从而允许您进行 db 级沙盒多租户。

    【讨论】:

      【解决方案2】:

      从 MongoDB 的角度来看,您可以为每个客户端创建一个数据库。当前稳定的 MongoDB 版本 2.2 具有数据库级锁定,而不是以前版本的大型全局锁定。

      这样,如果您的一个客户端正在敲击系统,它们不会影响具有全局锁定的其他客户端。

      【讨论】:

      • 你如何配置meteor来使用多个数据库?
      猜你喜欢
      • 1970-01-01
      • 2012-11-08
      • 1970-01-01
      • 1970-01-01
      • 2010-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多