加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 编写一个多租户Rails 3应用程序在Heroku上部署

发布时间:2020-12-16 20:14:07 所属栏目:百科 来源:网络整理
导读:我正在构建一个用于在Heroku部署的Rails 3应用程序,我想知道如何在我的模型中处理多租户方面有任何建议.半年前,有一个相关的问题( #3776593)发布在这里,但没有得到很多答案.我也看过 Guy Naor’s presentation on writing multi-tenant applications with Ra
我正在构建一个用于在Heroku部署的Rails 3应用程序,我想知道如何在我的模型中处理多租户方面有任何建议.半年前,有一个相关的问题( #3776593)发布在这里,但没有得到很多答案.我也看过 Guy Naor’s presentation on writing multi-tenant applications with Rails,但似乎3个提出的解决方案中的2个在Heroku上不起作用.我会链接到这些,但新的Stackoverflow用户只限于2个超链接.

我也遇到了以下工具:

> http://samuel.kadolph.com/2010/12/simple-rails-multi-tenancy/
> http://blog.codecrate.com/2011/03/multitenant-locking-down-your-app-and.html

只是想知道你是否有经验丰富的多元宝石或简单的轨道多租户宝石.似乎最简单的解决方案就是简单地将一个belongs_to放在所有需要在一个帐户下的模型上,但是我真的很想知道你在现实世界中的使用情况!

解决方法

方法的范围从“无分享”,通常意味着每个租户的一个数据库,以“共享一切”,这通常意味着每个表包含许多租户的行.频谱(以下)可以通过隔离度,成本(每个租户的成本,即)以及容易的灾难恢复来分解.

>每个租户一个数据库;成本最高,隔离最高,恢复最简单.
每个租户一个模式;成本在另外两个之间,良好的隔离度,相当容易恢复,但恢复通常会降低其他租户的业绩.
>租户分享表最低成本,最低隔离度(共享表),难度恢复(恢复通常意味着为每个表恢复一些行).恢复通常会降低其他租户的表现“很多”.

所有这些都在一定程度上是平台特定的.当dbms禁止查询访问多个数据库时,“每个租户的一个数据库”具有最高的隔离度.但有些平台允许跨多个数据库进行查询.

MSDN有一个体面的文章,击中了高点:Multi-Tenant Data Architecture.

但是,如果你限于Heroku,你必须选择Heroku支持的选项.我不知道这些选项可能是什么,但我知道你最好不要在开发中使用SQLite. Heroku部署将在PostgreSQL上运行;你需要开发PostgreSQL.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读