我有一个中等大的rails ERP应用程序,大约有80个表。我使用MySQL。我最近收到一个客户需求,需要我为大约10,000个办公室部署相同的应用程序(每个办公室一个实例)。中心办公室(超级管理办公室)必须能够查看所有这些办公室的详细信息。
在与客户交谈后,这是我可以想到的:为10,000个办公室配置应用程序,将有一些需要超级管理员访问的数据的新模型。这些模型的表将位于另一个数据库(superdamin_database,而不是特定办公室使用的数据库)中,要报告给超级管理员的数据将写入该数据库
我打算使另一个应用程序,将连接到这个superdamin_database,以呈现数据给超级管理员。所以我会有10000个app_databases和1个superdamin_database
我在这个计划中的缺点在哪里?此计划/结构中由于服务器负载而导致应用程序不可用的最薄弱环节是什么?rails有什么方法可以做到这一点。希望在座的有经验的人能对此多加考虑。提前感谢你的回复,山姆
发布于 2010-10-25 04:20:29
也许在http://aac2009.confreaks.com/06-feb-2009-14-30-writing-multi-tenant-applications-in-rails-guy-naor.html上讨论的概念将引导您朝着正确的方向前进
发布于 2010-10-25 01:36:58
如果我没理解错你的问题
我最近收到一个客户需求,需要我为大约10,000个办公室部署相同的应用程序(每个办公室一个实例)。
您违反了web应用程序的基本规则。托管在一个地方,并从任何地方访问。我不知道您为什么要在这些办公室中安装每个应用程序实例,而是拥有一个可以从任何办公室访问的托管系统。
在一个地方托管您的应用程序将使您的维护和升级工作变得轻松。
顺便说一句,你到底要怎么安装一万个应用程序?!
我的建议是
有一个单一的web应用程序,让你的客户(在提到的办公室)使用它,并有一个良好的分层访问控制系统,这样你就可以控制哪个用户访问哪个数据。
顺便说一句,你不想这样做
我打算做另一个应用程序,它将连接到此superdamin_database,以呈现数据给超级管理员。所以我会有10000个app_databases和1个superdamin_database
希望你明白我的想法,
干杯
sameera
https://stackoverflow.com/questions/4009391
复制相似问题