云平台之多租户的实践—理论篇( 二 )


这种方案是方案一的变种 。 只需要安装一份数据库服务 , 通过不同的Schema对不同租户的数据进行隔离 。 由于数据库服务是共享的 , 所以成本相对低廉 。
共享数据库、共享数据表【云平台之多租户的实践—理论篇】共享数据库、共享数据表:即租户共享同一个Database , 同一套数据库表(所有租户的数据都存放在一个数据库 的同一套表中) 。 在表中增加租户ID等租户标志字段 , 表明该记录是属于哪个租户的 。
云平台之多租户的实践—理论篇文章插图

  • 优点:所有租户使用同一套数据库 , 所以成本低廉 。
  • 缺点:隔离级别低 , 安全性低 , 需要在设计开发时加大对安全的开发量 , 数据备份和恢复困难 。
这种方案和基于传统应用的数据库设计并没有任何区别 , 但是由于所有租户使用相同的数据库表 , 所以需要做好对每个租户数据的隔离安全性处理 , 这就增加了系统设计和数据管理方面的复杂程度 。
选择合理的实现模式衡量三种模式主要考虑的因素是隔离还是共享 。
成本角度因素隔离性越好 , 设计和实现的难度和成本越高 , 初始成本越高 。 共享性越好 , 同一运营成本下支持的用户越多 , 运营成本越低 。
安全因素要考虑业务和客户的安全方面的要求 。 安全性要求越高 , 越要倾向于隔离 。
从租户数量上考虑主要考虑下面一些因素
  • 系统要支持多少租户?上百?上千还是上万?可能的租户越多 , 越倾向于共享 。
  • 平均每个租户要存储数据需要的空间大小 。 存贮的数据越多 , 越倾向于隔离 。
  • 每个租户的同时访问系统的最终用户数量 。 需要支持的越多 , 越倾向于隔离 。
  • 是否想针对每一租户提供附加的服务 , 例如数据的备份和恢复等 。 这方面的需求越多 ,越倾向于隔离
技术储备共享性越高 , 对技术的要求越高 。
文章持续更新 , 可以公众号搜一搜「 一角钱技术 」第一时间阅读 , 本文 GitHub org_hejianhui/JavaStudy 已经收录 , 欢迎 Star 。