mysql与mangodb多租户_MongoDB中针对多租户数据库的推荐方法是什么?

我有同样的问题要解决,也考虑变种。由于我有多年创建SaaS多租户应用程序的经验,我还将根据我以前使用关系数据库的经验选择第二个选项。

在进行研究时,我在mongodb支持网站上发现了这篇文章:[http://support.mongohq.com/use-cases/multi-tenant.html]

这些家伙表示不惜任何代价避免第二种选择,据我所知,这并不是特别针对mongodb。 我的印象是,由于数据库设计的具体细节,这适用于我研究的大多数NoSQL dbs(CoachDB,Cassandra,CouchBase Server等)。

集合(或桶或者它们在不同的DB中调用它们)与RDBMS中的安全模式不同,尽管它们表现为文档的容器,它们对于应用良好的租户分离是无用的。 我找不到可以根据集合应用安全限制的NoSQL数据库。

当然,您可以使用基于mongodb角色的安全性来限制对数据库/服务器级别的访问。([http://docs.mongodb.org/manual/core/authorization/)]

我会建议第一个选项:

你有足够的时间和资源来处理复杂性设计,实施和测试这种情况。

如果你不会在结构上有太大差异数据库中针对不同租户的功能。

您的应用程序设计将允许租户只做最小的运行时自定义。

如果您想优化空间并最大限度地减少硬件使用资源。

如果你有数以千计的租户。

如果您想快速扩展并且成本很高。

如果您不打算根据租户备份数据(保持单独每个租户的备份)。 即使在这方面也可以做到这一点情景,但努力将是巨大的。

如果符合以下情况我会选择变体3:

你将有一小部分租户(几百个)。

业务的细节要求您能够支持不同租户的数据库结构的巨大差异(例如,与第三方系统的集成,数据的导入 - 导出)。

您的应用程序设计将允许客户(租户)在应用程序运行时(添加模块,自定义字段等)中进行重大更改。

如果您有足够的资源可以快速扩展新的硬件节点。

如果您需要为每个租户保留数据的版本/备份。 恢复也很容易。

有法律/监管限制迫使您将不同的租户保留在不同的数据库(甚至是数据中心)。

如果您想充分利用mongodb的开箱即用安全功能,如角色。

租户之间的规模差异很大(你有很多小租户,很少有很大的租户)。

如果您发布有关您的应用程序的其他详细信息,也许我可以给您更详细的建议。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值