多租户
多租户指一套系统能够支撑多个租户。一个租户通常是具有相似访问模式和权限的一组用户,典型的租户是同一个组织或者公司的若干用户。 要实现多租户,首先需要考虑的是数据层面的多租户。数据层的多租户模型对上层服务和应用的多租户实现有突出影响。本文重点介绍数据层多租户对各种多租户模型的支持。 权衡不同的多租户实现方式时,需要考虑如下因素:
扩展性
租户数量级别,以及未来发展趋势
安全性
租户之间数据隔离级别要求
资源共享
多租户通常有某种形式的资源共享,需要避免某个租户的糟糕SQL吃掉系统资源,影响其他租户的响应时间
灵活性
不同租户可能有不同的需求,对特定租户需求的扩展能力
跨租户分析和优化
对全部租户或者多个租户的数据和行为进行分析的能力
运维和管理
运维管理的复杂度和便宜性,包括监控、修改数据库模式、创建索引、收集统计数据、数据加载等
成本
总体拥有成本,包括方案实现成本、运维成本等。