Oli*_*urg 61 architecture django multi-tenant
我一直在思索基于Django创建多租户应用程序的正确/最佳方式.
一些解释:
应用程序可以由几个租户使用(tenant1,tenant2,...,).
必须保护所有租户个人数据不被其他租户(及其用户)访问.
租户可以选择为应用程序对象创建其他自定义字段.
当然,底层硬件限制了一个"系统"上的租户数量.
1)通过例如子域和在底层中使用特定于租户的数据库来分离每个租户
2)在模型中使用一些租户ID来分离数据库中的租户数据
我正在考虑部署过程,系统部件的性能(Web服务器,数据库服务器,工作节点,...)
什么是最好的设置?专业人士和骗子在哪里?
你怎么看?
Ret*_*old 56
我们使用以下架构构建了一个多租户平台.我希望你能找到一些有用的提示.
(r'^(?P<tenant_id>[\w\-]+)
threading.local
)解决了这个问题login_required
),中间件或工厂以保护视图并选择正确的模型关于环境,我们使用以下设置:
从我的角度来看,这个设置有以下专业版和内容:
优点:
魂斗罗:
当然,最好的架构很大程度上取决于您的要求,如租户数量,模型的增量,安全要求等.
更新:在我们审核我们的架构时,我建议不要重写URL,如第2-3点所示.我认为一个更好的解决方案是把tenant_id
作为请求头,并提取(4点)的tenant_id
出请求的喜欢的东西request.META.get('TENANT_ID', None)
.通过这种方式,您可以获得中性URL,并且使用Django内置函数(例如{% url ...%}
或reverse()
)或外部应用程序会更容易.
归档时间: |
|
查看次数: |
6759 次 |
最近记录: |