需求
一个程序服务,多个租户,每个租户独立数据库,每个租户下的用户访问自己的租户数据库
只能部署一套程序服务,否则新增修改一个需求要部署发布50次
实现
- 写一个租户管理后台,将租户的数据库连接信息存到公共基础的一个数据库中,新增租户自动新增一个数据库
- 租户管理后台包含所有租户的账号用户和会员用户管理,用户登录先访问公共数据库获取用户信息(属于哪个租户),后续所有操作数据都保存到自己的租户数据库
问题
- 如何解决有50个租户则要创建50个数据库,新增一个需求添加一个字段则50个数据库都要添加
- 如何懒加载程序配置文件(yml)或动态路由数据库连接配置(程序只配置公共数据库的连接,根据租户用户登录查询出租户数据库连接后再加载进去)
- 如何用户信息访问公共数据库,订单产品等其他信息访问租户数据库
解决方法
- 租户管理后台需要有数据库表设计器页面,新增表新增字段修改字段什么的在web页面上操作,保存的时候所有数据库都执行sql
- 不知道,nacos配置中心?,或每新增一个租户将数据库配置手动添加到配置文件中
- 不知道
更多问题
还有哪些问题需要解决
集思广益,寻求最优解决方案,需要试用哪些技术,java优先