【发布时间】:2021-02-18 04:52:12
【问题描述】:
Hibernate 多租户共享数据库(鉴别器列)到现在仍未实现。
我正在开发 Quarkus RestEasy JAX-RS 端点。 我想使用多租户体系结构(不是单独的数据库或单独的模式,而是具有像tenantId 这样的鉴别器列的共享数据库)。 Quarkus 也只支持独立的数据库和独立的模式,如 Hibernate。
那么,如何实现自定义解析器来根据tenantId 编写我的端点资源方法(get、post、put、delete)?
我想到了一个拦截器或过滤器,但我不知道如何用 Quarkus 实现它。
这个想法是(SaaS):
- 创建客户帐户(为他设置租户 ID)
- 当用户登录时,根据他的tenantId获取数据。
用例:
Tenant1 发送包含他的tenantId 的HTTP 请求,从端点资源中获取tenantId 并根据当前tenantId 值执行save()、getAll()、get()、delete() 方法,这样每个租户只会得到或添加他自己的数据。
其他可能性:
是否可以使用单独的架构并编写可以从所有租户架构中获取数据的服务(管理仪表板)?
例子:
-
Tenant1 = StackOverflow US(员工人数 = 50)(SCHEMA 1 中的员工表)
-
Tenant2 = StackOverflow France(员工人数 = 30)(SCHEMA 2 中的员工表)
-
StackOverFlow 全球经理仪表板(员工总数 = 80,Schema 1 员工表和Schema 2 员工表之和),他还可以按子公司进行统计。 p>
【问题讨论】:
标签: java database rest multi-tenant quarkus