【发布时间】:2011-11-03 21:25:47
【问题描述】:
我一直在思考创建基于多租户应用程序的正确/最佳方式 在 Django 上。
一些解释:
应用程序可由多个租户(租户 1、租户 2、...)使用。
必须保护所有租户个人数据,以防止其他租户(及其用户)访问。
租户可以选择为应用程序对象创建额外的自定义字段。
当然,底层硬件限制了一个“系统”上的租户数量。
1) 分隔每个租户,例如子域并在底层使用租户特定的数据库
2) 在模型中使用一些租户 ID 来分隔数据库中的租户数据
我正在考虑部署过程、系统部分的性能(网络服务器、数据库服务器、工作节点……)
最好的设置是什么?优缺点在哪里?
你怎么看?
【问题讨论】:
-
如果我能对此投票一百次,我会的。
-
谢谢 :-) 任何想法或其他方面,我没有提到?
-
Django 内置了 Sites 框架,我认为可以对其进行扩展以提供更好的多租户支持。需要有一种方法来识别我们需要从请求中的某些内容中提取内容的“站点”,而不是在 settings.py 中硬编码哪个站点
-
无 sql 支持也可以让多租户变得更容易,但是,目前我知道没有一个好的方法来判断特定站点的数据位于哪个分片上。
-
在研究了使用 Sites 框架后,我得出的结论是,它的目的是让不同站点之间的数据共享更容易——这与你想要的多租户应用程序完全相反,出于数据安全原因。
标签: django architecture multi-tenant