首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过多种部署和单独模式实现多租户的利弊

通过多种部署和单独模式实现多租户的利弊
EN

Stack Overflow用户
提问于 2015-08-24 15:06:25
回答 2查看 541关注 0票数 1

我正在尝试使用Spring创建一个java web应用程序。此应用程序的目的是为企业中不同业务单位的不同用户组提供服务。因此,例如,如果您认为它是一种购物体验类的应用程序,那么应用程序在功能上是

  • 选择你想要的
  • 把你挑选的东西加到购物车里
  • 从手推车退房

然后,我需要列出管道部门的管道项目,电气部门的电器项目等等。

因此,我决定使用两个具有相同表结构的不同模式。因此,模式“PLUMB”将存储可以使用应用程序的管道部门用户,以及与管道相关的项目,以及PLUMB的用户和项目表中的项目。同样,电力部门也有自己的模式。这是用于数据库端的多租户。

对于应用程序/部署端,除了一个属性外,webapp的代码保持不变,该属性告诉应用程序需要查询哪个模式(在每个实例中这显然是不同的)。所以,我在考虑

  • http://mycompany.com/plumbingapp
  • http://mycompany.com/electricalapp

这种建筑有什么已知的反模式吗?我看到的一个缺点是,我现在将有多个环境需要管理,比如dev.mycompany.com/plumbingapp和test.mycompany.com/plumbingapp。除此之外,我认为这比拥有一个验证用户身份的应用程序更干净,然后让他选择他想去的部门,并根据他选择的部门的不同,我会填充网页。

你以前用过这种结构吗?这种设计/体系结构是否有已知的缺点?如果我部署多个实例,它是否是多租户应用程序?

EN

回答 2

Stack Overflow用户

发布于 2015-08-24 16:18:44

依赖于用户和他的权限,在他登录后,您将创建/plum或/electrical modelAndView。在您的DB中,您可以创建表plum_table和elec_table,但用户表和user_roles除外。另一种方法是根据/plum或/electrical为不同的机器创建虚拟机和代理。

票数 1
EN

Stack Overflow用户

发布于 2015-09-16 18:14:06

问题中所列的方法非常适合两位或几位租户。但要扩大规模并不容易。

不需要单独的部署包。租户标识和分离只能在DB模式级别、角色和任何业务规则上进行。其余的系统组件可以是通用的。没有绑定的理由为每个租户创建一个单独的应用程序。

这些帖子可以帮助:

Databse architecture (single db vs client specific db) for Building Enterprise Web (RIA) application on cloud

Architecture for SaaS based online portal

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32185654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档