基于Gin框架的SAAS模式下多商户数据连接隔离问题, 寻求高端方案
各位大神帮指点下.
目前在做一个多租户系统,web框架gin , mysql xorm 开发,大概流程是这样的
- 登陆总后台,添加一个商户 (名称, 唯一标示,数据库链接),
- 根据商户分配的数据库链接地址 生成商户的数据库(一租户一库) 和 初始化数据
- 给租户添加后台管理登陆域名,前台访问域名
- 完成域名指向
======= 问题来了 ========
- 同一套代码,多个商户登陆商户后台,执行操作,数据库链接有可能不一样,数据库名一定不一样.
- 商户登陆的时候在中间件里根据域名判定是哪个商户登陆 然后找到这个商户对应的数据库配置,
- 通过配置连接数据库, DB链接指针存放到 gin.Context里面
- 每次查询的时候,从context获取链接地址
问题是,如果函数调用比较深,每次都要传context,这样代码太冗余.后续redis/ ES 也会分开
有哪位大佬有好的处理方案或者思路.
项目刚开开始, 参考地址 admin.mk117.com
推荐文章: