小编Arn*_*d42的帖子

使用 r2dbc 的基于多租户模式的应用程序

我正在开发一个多租户反应式应用程序,使用 Spring-Webflux + Spring-data-r2dbc 和 r2dbc 驱动程序连接到 Postgresql 数据库。多租户部分是基于模式的:每个租户一个模式。因此,根据上下文(例如用户登录),请求将命中数据库的特定架构。

我正在努力研究如何在 r2dbc 中实现这一点。理想情况下,这将是 Hibernate 使用MultiTenantConnectionProvider 的方式(参见示例 16.3)。

到目前为止我发现了什么以及我做了什么:

我可能需要找到一种方法来覆盖它,以便从上下文而不是配置中动态获取模式?

  • 否则,我可以尝试将请求中的架构指定为表前缀:

        String s = "tenant-1";
        databaseClient.execute("SELECT * FROM \"" + s + "\".\"city\"")
                .as(City.class)
                .fetch()
                .all()
    
    Run Code Online (Sandbox Code Playgroud)

但我不能再使用 SpringData,或者我需要重写每个请求以将租户作为参数传递。

任何提示/帮助表示赞赏:)

multi-tenant spring-data-r2dbc r2dbc

8
推荐指数
1
解决办法
3455
查看次数

标签 统计

multi-tenant ×1

r2dbc ×1

spring-data-r2dbc ×1