云平台多租户系统的设计方案

竹林之风2年前 (2019-08-24)技术积累2745

        多租户(Multi Tenancy)是指在一个云平台上,多个不同的客户共用相同的平台和架构但又相互独立并对各自的用户提供服务。多租户相同有4个特点:①共用平台和架构;②相互独立;③数据隔离;④对外表现为使用不同的子域名但页面形式一致;⑤由平台统一管理。在数据库和应用程序层面上,有如下3种解决方案:

(1)数据库物理隔离、应用程序物理隔离:各客户使用独立的数据库和应用程序。优点:各客户的数据和程序绝对隔离互不影响。缺点:①部署复杂,每新增一个客户就要重建一个新的数据库和应用程序,比较冗余且占用多余存储空间;②升级麻烦,每当数据库和应用程序需要升级时,得为每一个客户一一升级;③配置繁琐,得为每一个客户一一配置,如配置数据库、绑定域名等。适用:小量客户。

(2)数据库物理隔离、共用应用程序:各客户使用独立的数据库,但使用相同的应用程序。优点:①各客户的数据绝对隔离互不影响;②应用程序部署、升级和配置简单。缺点:①数据库部署复杂,每新增一个客户就要重建一个新的数据库;②数据库升级麻烦,每当数据库需要升级时,得为每一个客户一一升级;③数据库配置繁琐;④绑定泛域名需要程序根据子域名自动匹配对应的客户;⑤需要根据子域名自动确定访问哪个数据库。适用:中小量客户。

(3)共用数据库和应用程序:各客户使用相同的数据库和应用程序。优点:①各客户共用所有应用程序和数据库,只需部署一次、配置一次;②升级简单;③数据逻辑隔离。缺点:①程序中实现数据的逻辑隔离较繁琐;②绑定泛域名需要程序根据子域名自动匹配对应的客户。适用:大量客户。

相关文章

C#中问号“?”的用法

        在C#中问号有单问号和双问号两种场景,其中单问号就是用于条件表达式的一个三元运算符;双问号有两个用法:可...

ASP.NET MVC中的Area区域简介

        ASP.NET MVC4有预定义的目录规则,框架根据这些目录规则去加载各种类。在MVC单项目中,随着业务...

ASP.NET实现HTTP长轮询(三)——MVC

        本文主要描述如何在ASP.NET MVC中实现长轮询:(1)控制器继承AsyncController:using System.Thr...

实现内网穿透的几种方式

        大部分普通电脑对外都没有固定的公网IP、或处于NAT网络内,要从局域网外直接访问该电脑,需要借助第三方工具。一、有一台公网固...

SVN源码版本控制目录方案

        SVN的目录规划:(1)trunk:主干目录,用于存放当前正在开发和维护中的源码版本,这是一个进行日常开...

通用基础表逻辑设计(三)——功能权限

概述        在一个应用系统中有多个用户,用户通常分为多种角色,每种角色的用户能够访问的页面、能够查看的数据或者能...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法和观点。