目前我面临一个技术决策,个人无法自行找到解决方案。
我正在开发一个多租户数据库。
结构如下:
- 有一个核心数据库保存特定租户的数据和关系
- 有多个租户数据库实例(从核心数据库的查询中确定应该连接哪个租户ID)
- 每个租户都在单独的数据库实例上(在单独的服务器上)
- 每个租户都有特定的数据,其他租户不能访问这些数据
- 每个数据库最好是MySQL(但如果有更好的选择,我可以考虑建议)
- 后端使用koa框架编写
- 核心数据库和租户数据库的模型不同
- 每个租户数据库的最大表可能达到100万条记录(没有审计)
- 乐观地说,租户数量可能增长到50个
项目的其他数据:
- 所有项目数据都可供所有者使用
- 每个客户端将为其自己的租户提供数据
- 每个租户都有自己的网站
- 每个租户的数据库结构相同
- 该项目主要是一个物流服务,其数据针对每个不同的地区进行分隔
问题:
这是设计多租户架构的正确方法,还是应该重新设计架构?
如果可以使用多服务器的多租户-是否有首选的工具/技术堆栈应该完成?(很想更具体地了解此事)
最好使用ORM。我目前正在尝试使用Sequelize,但在早期阶段就遇到了问题(多个数据库不能共享相同的模型,管理多个连接)。
理想目标是能够添加其他租户而不需要进行太多的额外配置。
编辑: - 数据库当前托管在Azure上,但如果需要,我们希望它们可以迁移走。