目前,我正面临一项技术决策,个人无法亲自找到解决方案。
我目前正在开发多租户数据库。
结构如下:
- 有一个核心数据库可以保存有关特定租户的数据和关系
- 有多个租户数据库实例(根据核心数据库中的查询,确定我应该连接到哪个租户ID)
- 每个租户都在单独的数据库实例上(在单独的服务器上)
- 每个租户都有特定的数据,其他租户都不应该访问这些数据
- 每个数据库最好都位于mySQL中(但是如果有更好的选择,我愿意提出建议)
- 后端是用koa框架编写的
- 核心数据库和租户数据库中的数据库模型不同
- 每个租户数据库的最大表可能有大约100万条记录(未经审核)
- 乐观地,租户数量可能会增长到50
有关项目的其他数据:
- 项目的所有数据可供所有者使用
- 每个客户将拥有可用于其自己租户的数据
- 每个租户都有自己的网站
- 每个租户的数据库结构保持不变
- 项目主要是物流服务,其数据是针对每个不同区域进行隔离的
问题:
这是设计多租户架构的正确方法还是应该在架构中进行重新设计?
如果可以使用多服务器的多租户-是否应该有一个更好的工具/技术堆栈?(想更具体地了解这一点)
最好使用ORM。我目前正在尝试使用Sequelize,但是在初期我已经面临问题(多个数据库无法共享相同的模型,无法管理多个连接)。
理想的目标是无需过多配置即可添加其他租户的可能性。
编辑:-数据库当前将托管在Azure中,但是我们希望可以选择将它们迁移到需要的位置