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字段,以实现租户数据间的隔离,这是最通常的做法。

多租户系统技术实现mysql_SaaS “可配置”和“多租户”架构的几种技术实现方式...相关推荐

  1. 广州蓝景分享—目前微前端架构的几种技术选型,你了解吗?

    各位编程的小伙伴,今天广州蓝景继续跟大家分享前端技术相关文章:微前端架构的几种技术选型,你了解吗?随着SPA大规模的应用,紧接着就带来一个新问题:一个规模化应用需要拆分. 一方面功能快速增加导致打包时 ...

  2. 聊一聊关于微前端架构的几种技术选型

    背景 随着SPA大规模的应用,紧接着就带来一个新问题:一个规模化应用需要拆分. 一方面功能快速增加导致打包时间成比例上升,而紧急发布时要求是越短越好,这是矛盾的.另一方面当一个代码库集成了所有功能时, ...

  3. 聊一聊关于微前端架构的几种技术选型(转载,侵权必删)

    背景 随着SPA大规模的应用,紧接着就带来一个新问题:一个规模化应用需要拆分. 一方面功能快速增加导致打包时间成比例上升,而紧急发布时要求是越短越好,这是矛盾的.另一方面当一个代码库集成了所有功能时, ...

  4. 【微前端】1404- 常用微前端架构的几种技术选型

    原文: https://juejin.cn/post/7113503219904430111?share_token=a2d6b49c-d8ce-4448-acd3-d71bbc6e228d 作者:小 ...

  5. 小波变换与图像图形处理技术_产品图形:使图像更具信息性的6种技术

    网站设计师已经变得非常精通营销技巧 . 吸引页面内容总是好的,但是当涉及到吸引访问者时,关注图像是最流行的媒体形式. 他们不需要演示视频之类的声音,并且可以在几秒钟内快速传递重要信息. 这看起来似乎很 ...

  6. SpringCloud微服务实战——搭建企业级开发框架(四十一):扩展JustAuth+SpringSecurity+Vue实现多租户系统微信扫码、钉钉扫码等第三方登录

      前面我们详细介绍了SSO.OAuth2的定义和实现原理,也举例说明了如何在微服务框架中使用spring-security-oauth2实现单点登录授权服务器和单点登录客户端.目前很多平台都提供了单 ...

  7. 实现多租户系统的一点思考

    2020年突发的新冠疫情,让在线协同办公在疫情期间成为了刚需.我们也从 2020 年的 2月3 日开始在家远程办公,直到四月份.协同办公软件一下子火爆了起来,钉钉.企业微信.特别是腾讯会议等都在疫情期 ...

  8. SAAS平台的基础,构建多租户系统的思考

    多租户应用程序擅长使用一套代码为多个租户提供服务.该体系结构可以使用单个代码源为许多不同的客户端或租户提供服务.构建多租户系统一般都是哪些构建思路呢? 1.什么是租户 在多租户体系结构中,应用程序的一 ...

  9. ASP.NET Core 缓存技术 及 Nginx 缓存配置

    前言 在Asp.Net Core Nginx部署一文中,主要是讲述的如何利用Nginx来实现应用程序的部署,使用Nginx来部署主要有两大好处,第一是利用Nginx的负载均衡功能,第二是使用Nginx ...

最新文章

  1. 为什么华为200万招聘AI博士,马斯克却推出脑机接口对抗AI?
  2. python处理3000个excel-Python处理Excel数据的坑,一文让你不用重复犯错
  3. 17.splash_case02
  4. 近期在看的一段JS(谁能看出我想实现什么功能)
  5. 【Tiny4412】烧写最小文件系统到SD卡
  6. java浮点数存储方式_Java浮点数内存存储
  7. 学习Identity Server 4的预备知识
  8. mpvue小程序以及微信直播踩坑总结
  9. 5922. 统计出现过一次的公共字符串
  10. Extract Interface(提炼接口)
  11. 机器学习--01建立开发集与训练集
  12. 关于练习美剧听写中碰到的问题
  13. aws waf sql注入_适用于快速SQL Server Always On部署的AWS启动向导
  14. OpenBSD 将迎来原生的 Hypervisor
  15. idea创建svn分支
  16. u3d联机斗地主(1):出牌规则
  17. nbiot和2g_NBIoT网络覆盖性能评价与优化
  18. Spark性能调优 之 合理规划资源配置
  19. 小波变换比傅里叶变换好在哪里_小波变换与傅里叶变换详解——代码下载——非平稳信号与平稳信号的滤波效果对比
  20. c语言按字母排序用直接插入法,直接插入排序(C语言实现)

热门文章

  1. 湖北黄冈中学2021年高考成绩查询,【喜报】2020年黄冈中学高考成绩出炉,600分以上人数556人...
  2. 1.8正版生存服务器,我的世界1.8-1.16.5 qqof 生存服务器
  3. Gradle Sync: Wait for the other thread to finish acquiring the distribution
  4. mysql null排在最后面
  5. epoch,iteration,batch,batch_size
  6. boost之ThreadPool
  7. No loop matching the specified signature and casting
  8. Windows10 右键 cmd
  9. FCN网络的训练——以燃气表数字识别为例
  10. ubuntu右键在当前位置打开终端