V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
chlinlearn
V2EX  ›  问与答

saas 租户独立数据库,多数据源动态切换的实现方案有哪些?

  •  
  •   chlinlearn · 2023-06-06 08:04:57 +08:00 via Android · 1442 次点击
    这是一个创建于 536 天前的主题,其中的信息可能已经有所发展或是发生改变。
    6 条回复    2023-06-06 15:20:14 +08:00
    kuxuan
        1
    kuxuan  
       2023-06-06 08:41:29 +08:00
    也在关注,希望有大佬回复
    SilenceLL
        2
    SilenceLL  
       2023-06-06 08:50:44 +08:00
    1. 重写 AbstractRoutingDataSource,记得缓存数据库连接,在请求拦截器,消息消费入口,定时任务入口设置数据库上下文(其他看项目还有什么请求来源)。
    2. https://github.com/baomidou/dynamic-datasource-spring-boot-starter
    cylx3124
        3
    cylx3124  
       2023-06-06 13:30:52 +08:00   ❤️ 1
    之前同事有遇到类似的多数据源切换问题,当时我的想法不是在单服务连接多数据源,在服务代码中做数据源切换,而是部署多个服务,每个服务连接不同的数据源,然后通过一层 gateway 代理,通过代理解析用户身份,然后转发请求到连接对应数据源的服务上。
    不知道这个的方案适不适用你们的场景。
    chlinlearn
        4
    chlinlearn  
    OP
       2023-06-06 14:06:22 +08:00 via Android
    @SilenceLL 感谢回复
    chlinlearn
        5
    chlinlearn  
    OP
       2023-06-06 14:06:34 +08:00 via Android
    @cylx3124 感谢回复
    SilenceLL
        6
    SilenceLL  
       2023-06-06 15:20:14 +08:00
    @cylx3124 只代入了自己的业务,这位朋友提的很对,具体还是要看你们的业务,我们这种属于适合那种极小客户。可以在不同层次做租户的路由,域名,服务器,数据库实例,catalog 。 可以参考下微软的多租户模型看看 https://learn.microsoft.com/zh-cn/azure/architecture/guide/multitenant/considerations/tenancy-models
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   922 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 22:15 · PVG 06:15 · LAX 14:15 · JFK 17:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.