1. 首页
  2. 主题
  3. Go Web框架

求助 - Gin框架SAAS模式下多租户数据连接隔离问题

mi1688 · · 4676 次点击
各位大神帮指点下. 我在做一个多租户系统,给予gin / xorm 开发, 大概流程是这样的 1. 登陆总后台,添加一个租户, 2. 根据租户分配的数据库链接地址 生成租户的数据库(一租户一库). 3. 添加租户的域名.后台管理域名,前台域名 ======= 问题来了 ======== 1. 同一套代码,租户登陆租户后台,执行操作,数据库链接有可能不一样,数据库名一定不一样. 2. 租户登陆的时候在中间件里根据域名判定是哪个租户登陆 然后找到这个租户对应的数据库配置, 3. 链接数据库, DB链接指针放到 gin.Context里面 4. 每次查询的时候,从context获取链接地址 问题是,如果函数调用比较深, 每次都传context, 这样感觉代码太冗余. 有什么好办法不?
<a href="/user/jfliuyun" title="@jfliuyun">@jfliuyun</a> 目前是web请求的域名来绑定数据库链接。 现在同够context传数据库进去。感觉有点不优雅。
#4
更多评论
我目前是这么做的,可以一起讨论。把所有数据链接放在一个全局集合变量里。每次进来时根据域名去匹配
#1
我前段时间刚好做过一个就是在调用API的时候获取请求的Referer 然后把这个做为参数来匹配响应的数据库 datasources: - dataSourceLabel: default mysqlUrl: mysql 连接串 - dataSourceLabel: yyy.domain.com mysqlUrl: mysql 连接串
#2

用户登录

没有账号?注册

今日阅读排行

    加载中

一周阅读排行

    加载中