博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SaaS “可配置”和“多租户”架构的几种技术实现方式
阅读量:5112 次
发布时间:2019-06-13

本文共 1202 字,大约阅读时间需要 4 分钟。

1、数据存储方式的选择

多租户(Multi-Tenant ),即多个租户共用一个实例,租户的数据既有隔离又有共享,说到底是要解决数据存储的问题。

常用的数据存储方式有三种。

方案一:独立数据库

 

 

一个Tenant,一个Database“的数据存储方式。隔离级别最高、最安全,但成本也高。

优点:

a.为不同租户提供独立数据库,有助于简化数据模型的扩展设计,满足个性化需求;

b.数据恢复简单;

缺点:增大了数据库的安装数量,购置和维护成本高;

 

方案二:共享数据库,隔离数据架构

 

 
 

多个租户或所有租户共享Database,但一个Tenant,一个Schema的方式。

优点:

a.一定程度的逻辑数据隔离(并非完全),可满足较高程度的安全性保障;

b.每个数据库,可支持更多租户数量;

缺点:

a.恢复数据较困难,因为将牵扯到其他租户数据;

b.跨租户统计数据,实现难度大;

 

方案三:共享数据库,共享数据架构

 

 
 

一种租户共享同一个Database、同一个Schema,而另行通过TenantID区分租户数据的方式。

优点:

a.每个数据库可支持租户数量多,维护和购置成本低;

缺点:

a. 隔离级别低,安全性低,开发时需做大量安全开发工作;

b. 逐表逐条备份和还原数据,数据备份和恢复困难。

 

三种数据存储方案的比较

 

 
 

但究竟选择何种方式,则取决于产品定价策略和租户对数据安全的接受程度。

2. 系统安全性设计

系统级:

A. 使用HTTPS传输协议,以SSL(Security Socket Layer)交换数据,加强通信安全

B. 使用数字签名,防止传输过程被篡改;

C. 使用DES数据加密算法,设计用户身份识别;

D. 定时备份业务数据;

程序级:

A. 权限配置(功能权限、数据权限等)

B. 客户端输入校验,防止JS和XXS攻击、SQL注入等;

C. 辅助安全设计,如密码控件、图片验证、手机验证等。

3. 租户管理

注册、订购、计费等管理。

注册

 

 
 

Tenant:租户

User: 租户下 的用户,同一租户下可以有多个用户;

Tenant的status属性,用于定义租户状态(待审核、已审核、启用、禁用、取消),赋予租户能否登陆的权限。

订购

 

 
 

PricePolicy:价格策略,支持按时间(年、月、日)、次数计价,以unit表示;

Subsciber: 订购记录,记录租户选用了何种价格策略,以及服务期限或服务次数。

计费

 

 
 

Journal:流水账,记录租户使用服务的日志,用于生成账单和报表;

4、数据隔离

 

 
 

为每个需要隔离的业务表加上Tenant_ID字段,以实现租户数据间的隔离,这是最通常的做法。

本文转自链接:https://www.jianshu.com/p/c11b19fc8110

转载于:https://www.cnblogs.com/itsharehome/p/10041814.html

你可能感兴趣的文章
查询删除SQL语句知识总结
查看>>
类型串php中null和false和0之间的区别
查看>>
电路板排列0032算法笔记——电路板排列问题和连续邮资问题回溯法求解
查看>>
开发者工程师软件工程师的IOS,WindowsPhone前景与android对比
查看>>
oracle缩小表空间
查看>>
iOS11新特性之导航栏和largeTitle的设置
查看>>
hibernate联合主键不便之处(转)
查看>>
货币体系
查看>>
Makefile
查看>>
net.ipv4.tcp_tw_recycle
查看>>
printf格式控制符的完整格式
查看>>
Java 语法 索引 ----- 异常
查看>>
Rommel - C# 浅谈 接口(Interface)的作用
查看>>
Linux企业级项目实践之网络爬虫(11)——处理http请求头
查看>>
ISV客户博客系列:Windows Azure上的Softlibrary 和 Kern4Cloud
查看>>
Windows Azure-2.5天免费深度技术训练营——面向软件工程师和架构师
查看>>
云与移动有何共同点?
查看>>
【leetcode】Count Primes
查看>>
LTE引理——解决数论竞赛题的利器
查看>>
国外论坛问题集
查看>>