我一直在预览期间将 DocumentDB 实现到多租户系统中。我的计划是在 DocumentDB 帐户下为每个注册的租户生成一个新数据库。大部分代码已经就位,并且测试进展非常顺利。
由于 DocumentDB 已正式发布并且文档已最终确定,我了解到每个 DocumentDB 帐户 100 个数据库的限制,这让我停止重新思考我的架构。
我想让我的租户保持隔离,这样删除帐户就很容易,而且帐户的组织也非常干净。租户之间的数据不需要交互,因此将其分开不会成为问题。
我的问题:
由于我的目标是使这种规模扩大到数万甚至数十万租户,由于 DocumentDB 的限制和/或成本,我是否需要考虑不同的架构?
这是否意味着我需要在多个 DocumentDB 帐户中每 100 个帐户进行分片?
根据 Microsoft 的说法,100 个数据库的限制只是一个软限制,可以根据请求进行扩展,但如果需要的话可以增加到 100,000 个以上吗?如果我获得的帐户注册数量超过预期,并且我达到了生产极限,可能会失去客户,该怎么办?
这种限制的存在是否是为了阻止开发商以这种方式划分租户,有充分的理由让我考虑?
在分区/分片租户数据方面,不存在一刀切的答案。通常,数据分区方式取决于应用程序的查询模式以及每个租户的资源需求(在存储和吞吐量方面)。请记住,集合是 DocumentDB 的事务和查询边界单元。
查看上面评论中提到的 user272735 的博客文章:使用 Azure DocumentDB 扩展多租户应用程序 http://azure.microsoft.com/blog/2014/12/03/scaling-a-multi-tenant-application-with-azure-documentdb-2/。这是一本很棒的书。
如果您需要针对您的特定场景或放宽数据库/集合限制的更多一对一指导,请随时通过 andrl {at} microsoft.com 联系我。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)