java - 如何自动创建多租户模式?
问题描述
我正在开发一个使用 Java、Spring 和 PostgreSQL 的项目,该项目将有多个商店,每个商店将彼此分开,拥有各自的产品。我是多租户数据库的新手。每个商店都有自己独立的用户,具有特定角色,低于谁将管理所有商店。用户将使用他们自己的凭据登录,生成一个身份验证令牌,我可以用它来识别他们并为注册为商家的用户创建一个新商店。我应该走什么路?或者我应该使用什么框架来帮助我将商店彼此分开?
解决方案
尝试基于 Spring 框架的CUBA 平台。
CUBA 将主流 JVM 技术编译成一个强大的环境,响应现代开发标准和业务应用程序的共同需求。
CUBA 平台的多租户插件
CUBA 平台有一个经过开源生产测试的多租户插件:
该插件为 CUBA 应用程序实现了单一数据库多租户支持。
它允许使用单个应用程序实例来服务多个租户——彼此不可见且不共享他们具有写入权限的任何数据的用户组。该组件支持两种类型的数据: - 通用数据 — 跨租户共享。- 租户特定数据——其他租户无法访问。
所有租户都有自己的管理员用户,可以创建租户用户并分配租户特定的角色和权限。
特征
- 单个应用程序中用户组的数据访问差异化。
- 租户特定实体的简单配置。
- 用于管理租户的用户界面。
链接
免责声明:我为 haulmont.com 工作
推荐阅读
- java - 如何在jsp页面中动态呈现jspf以及如何将参数传递给它?
- html - 输入值未基于另一个输入字段清除
- mysql - 有什么方法可以加快包含 IN 子句的 sql 查询,其中 IN 子句的数据是从查询中获取的?
- swift - Swift:如何检查对象是否被释放
- bittorrent - 最后一段 torrent 是否对应最后一个文件的最后一段?
- jmeter - 记录的用户身份验证然后使用另一个用户 ID 和密码运行相同的脚本,但 Jmeter 显示以前用户的仪表板
- vba - 在 VBA 中使用多种语言(英文、中文、日文)
- python - 使用主管设置 pipenv
- javascript - 在 asp:panel 中以 display:none 开头时,Ajax ComboBox 无法正确呈现
- sql-server - Upsert 选项:rowversion vs datetime