多租户数据库隔离方式数据同步问题

Blade 未结 2 561
bao2007happy
bao2007happy 剑童 2022-10-09 14:57

一、该问题的重现步骤是什么?

1、多租户采用数据库隔离方式,一个租户一个数据库,超级管理员创建租户相关配置,基础数据需要手动迁移到租户数据库吗,有没有迁移的方案
2、如果后续上新功能追加菜单,怎么同步数据,需要每个租户隔离的数据库手动维护菜单数据吗


二、你期待的结果是什么?实际看到的又是什么?


三、你正在使用的是什么产品,什么版本?在什么操作系统上?


四、请提供详细的错误堆栈信息,这很重要。


五、若有更多详细信息,请在下面提供。

2条回答
  • 自己写脚本同步或者手动对比同步。

    作者追问:2022-10-10 08:54

    你好,目前如果通过脚本同步数据,可能会存在缓存刷新的问题,基础数据缓存(主要是菜单),不能及时刷新。有没有通过脚本实现跨数据库同步数据的解决方案

    0 讨论(0)
  • 2022-10-09 22:57

    我们采用的方案已经把这个考虑进去了,基础数据全部用的master库,只有租户的业务库才会进行数据库隔离。否则每创建一个租户,就要创建一整套完整的基础数据库,那后续同步起来会非常麻烦的。

    所有的菜单、权限数据都是在master库进行维护的,所以这个不用再去操心了。如果你们要每个数据库都全部创建一份,就需要自行处理了,用同步工具或者其他的脚本命令都行,但是不推荐这么做。

    作者追问:2022-10-10 08:27

    你好,如果基础数据全部用的master库,我采用的单体版,不采用微服务的访问方式,业务模块涉及基础模块的数据,需要调用基础模块的service,业务controller类已经切换到了租户数据库,基础数据的service层没法切换到master库访问数据吧,这个问题能解决吗

    作者追问:2022-10-10 09:20

    你好,我这边看租户创建的逻辑,有些操作是初始化的时候进行的。即使目前采用基础数据共用master库,后续是不是新增菜单之后,租户管理员目前也无法看到新增菜单,还需要手动处理关联关系和缓存数据才能看到

    0 讨论(0)
提交回复