boot版本分库多租户数据源问题

Blade 未结 1 96
guzz
guzz 剑侠 2025-05-13 16:22

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

我在租户管理添加修改数据源后,需要重启jar才能生效,可以不需要重启吗



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


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


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


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

1条回答
  • 2025-05-13 17:13

    设定就是这样的,具体逻辑在这里控制:https://center.javablade.com/blade/BladeX-Tool/src/branch/master/blade-starter-tenant-dynamic/src/main/java/org/springblade/core/tenant/dynamic/TenantDataSourceHolder.java#L68

    这么设计的原因可以看注释,并且是有真实案例的,之前在线修改就能生效(虽然只有管理员可以配置,但总归会误操作),导致线上系统的数据直接崩了,因为老数据都在老的库里,查不到,新增的数据在新库里,导致了生产事故。

    所以后来改成了只要生成了缓存,就无法再改,除非手动迁移完数据再重启服务才能生效了。

    作者追问:2025-05-14 09:32

    还是多数据源问题,根据文档修改了配置


    blade:
      #多租户配置
      tenant:
        #动态数据源功能
        dynamic-datasource: true
        #动态数据源全局扫描
        dynamic-global: true

    新的租户库只有blade_notice表, 点击通知公告页面还会报错. 因为切面的sql会查询租户库,比如 

    blade:
      #多租户配置
      tenant:
        #动态数据源功能
        dynamic-datasource: true
        #动态数据源全局扫描
        dynamic-global: true

    我注释掉PreAuth后 还会因为查询blade_scope_data 报错

    分库多租户这些不应该查询master数据源吗 还是我配置的问题

    0 讨论(1)
代码语言
提交回复