多租户Saas架构设计分析(实践篇)

15 篇文章 18 订阅
订阅专栏

上一篇文章已经将SaaS架构做了一个简单的介绍和分析,此篇进入实践篇。

基础篇链接:https://blog.csdn.net/haponchang/article/details/104242482

 

具体的SaaS架构必须

1.先仔细选择最适合应用程序需求的租户模型,

2.需要根据租户模型来选定最终的架构,即应用程序设计和管理每个租户的数据如何映射到存储等等。

避免因租户模型的切换而付出昂贵的代价。

租户模型  --》 应用程序设计 + 数据设计方案

 

影响租户模型的相关因素包括:

可扩展性(Scalability

  • 租户的数量级
  • 每个租户的存储级别
  • 整体存储
  • 工作负载

租户隔离性(Tenant isolation

  • 数据隔离和性能(是否一个租户的负载会影响到其他租户)

单租户成本(Per-tenant cost

  • 数据库成本

开发复杂度(Development complexity

  • 数据结构的变化
  • 查询语句的变化

运维复杂度(Operational complexity

  • 性能监控
  • 数据结构schema管理
  • 租户数据恢复
  • 灾备

可定制化程度(Customizability

  • 根据租户的需求自定义架构的容易程度

这个租户的讨论集中在数据层。但考虑一下应用层。应用程序层被视为一个整体实体。如果将应用程序划分为许多小型组件,您的租户模型选择可能会发生变化。对于租户和存储技术或使用的平台,您可以对其他组件进行不同的处理。

 

 

常见的架构模式有以下几种:

这个模型中,应用层和数据层都是隔离的。

应用程序的每个实例都是独立实例。

租户拥有自己独立的数据库,每个应用程序实例只需要一个数据库。 

对租户的管理独立于系统之外,对于每一个租户,整个应用程序需要重复安装一次。供应商都可以为租户管理软件。每个应用程序实例都配置为连接到其相应的数据库。

优点:为不同的租户提供独立的应用实例和数据库,有助于简化数据模型和业务模型的扩展设计,满足不同租户的独特需求;如果出现故障,恢复系统或数据均比较简单,系统间也不会相互影响。

问题:数据库层面,每个租户数据库都作为独立数据库进行部署。该模型提供了最大的数据库隔离。但隔离需要为每个数据库分配足够的资源来处理其高峰负载。这里重要的是, 弹性池不能用于部署在不同资源组或不同订阅中的数据库。这种限制使得这种独立的单租户应用程序模型成为从整体数据库成本角度来看最昂贵的解决方案;应用层面,每个租户若存在个性化定制,则需要对项目进行横向扩展,扩展时务必需要保证与主干版本的兼容性问题。运维层面,应用和数据库的安装数量会随租户的数量线性递增,随之带来维护成本和购置成本的增加。

 

这个模型中,应用层是共享的,数据层都是隔离的。

应用程序仅部署一套,所有租户实例共享。

租户仍拥有自己独立的数据库,应用程序需对接多个租户的数据库。 

对租户的管理由配置中心(Config Server)管理,配置中心提供了配置,监视和管理共享所需的功能,供应商使用这些工具为租户管理软件。对于每一个租户,整个应用程序仅需要安装一次,应用程序实际请求结合配置中心请求相应的数据库。

优点:为不同的租户提供独立数据库,有助于简化数据模型扩展设计,满足不同租户的独特需求;如果出现故障,数据恢复均比较简单,也可以自动将单个租户恢复到较早的时间点。因为恢复只需要恢复存储租户的一个单租户数据库。这种恢复对其他租户没有影响,这证实了管理运营处于每个租户的细粒度级别。应用层面的维护成本和购置成本有所减少。

问题:数据库层面,同模型一;应用层面,每个租户若存在个性化定制,则需要对项目进行横向扩展,扩展时务必需要保证与主干版本的兼容性问题。运维层面,数据库的运维问题同模式一,应用层面的运维在版本控制的问题上难度有所增加。

 

这个模型中,应用层是共享的,数据库共享,但数据是隔离的。

应用程序和数据库仅部署一套,所有租户共享。

多个或所有租户共享Database,也就是说共同使用一个数据库,但是每个租户一个Schema(也可叫做一个user),使用表进行数据隔离数据库。底层库比如是:DB2、ORACLE等,一个数据库下可以有多个SCHEMA。

应用程序需对接多个租户的数据库。 

对租户的管理由配置中心(Config Server)管理,同模式二。

优点:为安全性要求较高的租户提供了一定程度的逻辑数据隔离,并不是完全隔离;每个数据库可支持更多的租户数量。

问题:数据库层面,如果出现故障,数据恢复比较困难,因为恢复数据库将牵涉到其他租户的数据;应用层面,配置中心需要对租户信息进行完整且合理的分配和维护。

 

模型与模型三的差别在于共享数据库,共享 Schema,共享数据表。也就是说共同使用一个数据库一个表使用字段进行数据隔离如表中增加TenantID多租户的数据字段。这是共享程度最高、隔离级别最低的模式。

简单来讲,即每插入一条数据时都需要有一个客户的标识。这样才能在同一张表中区分出不同客户的数据,这也是我们系统目前用到的(tenant_id)。

优点:方案的维护和购置成本低,允许每个数据库支持的租户数量最多。

缺点:隔离级别最低,安全性最低,需要在设计开发时加大对安全的开发量;数据备份和恢复最困难,需要逐表逐条备份和还原。

 

模式五与之前的模式的最大区别是,在原有的web Service进行细化拆分,优化成 网关+前台+中台+数据存储的模式。

网关用于接收租户的请求,并发送给前台。

前台的数量与租户一致,每一个租户对应一个前台服务,方便针对租户进行个性化定制。

中台负责提供处理所有的业务请求,中台不关心租户是谁,将重心关注在业务的处理上。配置中心用于配置租户的接口权限、流程定制等相关配置信息。结合业务逻辑返回给前台特定租户的相关信息。

数据库模式参考模式四。

 

优点:有利于定制不同租户的个性化需求。例如:交互界面不同、工作流不同等等。

           服务只需要根据用户需求在前台做相应的横向扩展即可;

           不同租户间服务相互独立,互不影响。

缺点:模块划分需要做好划分,重点注重业务之间的低耦合;

           调用链路变长,需要做一定的优化处理;

           模块纵向拆分后,后期研发和运维难度均会有所增加;

 

Saas系统架构的思考,多租户Saas架构设计分析
程序人生
06-14 7万+
ToBSaas系统最近几年都很火。很多创业公司都在尝试创建企业级别的应用cRM, HR,销售, Desk Saas系统。很多Saas创业公司也拿了大额风投。毕竟Saas相对传统软件的优势非常明显。 最近一年,有幸架构一个Crm saas 系统,上线了几个月来,各方面都比满意。整个系统创建过程,踩了很多坑,收获也比较多。总结一下Saas系统架构一些特点: Saas系统分...
SaaS多租户系统设计
DreamSun的博客
06-27 837
它定义了运行时的应用程序数据、应用程序的基础功能,以及特定租户的数据和自定义(如果有的话)。基于以上的分析,我们选择采用分片多租户的模型,因为这样可以获得无限的扩展能力,且对租户数据的隔离性也比较好。第 4 级(乌托邦):如同第 3 级,除非你可以找出有效的方式,以在不同的“实例”上运行不同版本的软件。其次,分片模式的扩展性很强,它可以是一个分片一个租户,也可以是一个分片多个租户,具体要看具体的分片策略。首先,第一种模式中不同租户的库是可以分别扩展的,也就是结构可以不一样,但分片多租户的是同一种数据结构。
多租户多应用多终端saas平台开发框架源码带本地搭建教程
03-18 444
可接入、强大的权限节点控制(管理员权限,租户及租户应用权限)、 强大的一键CRUD生成代码(页面JS,控制器controller,模型及关联模型model)、采用Tinkphp6框架及layui快速布局扩展等等特性、详细的二次开发及系统使用说明文档!后台:租户管理后台(域名+/manage/member/login)和平台管理后台(域名+/manage/admin/login)框架是“SAAS平台管理系统”具备多租户管理、多应用上架购买、多终端(公众号,小程序,PC,APP)。
分享一份物联网 SAAS 平台架构设计
最新发布
qinshengfei的专栏
04-30 408
(1)用户管理中心包含用户信息、用户账户管理、用户优惠卷等。(3)Redis:缓存token、会话信息、在线设备等。(1)商户信息、商户账户、商户分润规则、充电站管理。(2)Clickhouse:用于存储平台日志数据。(3)后置订单处理:订单完成时,启动分润处理。(1)MySQL:用于存储平台内的业务数据。(1)所有订单,包含未支付、已支付订单等。(2)为内部服务提供支付通道置单功能。(4)OSS:平台内文件、图片存储。(1)平台内所有日志的保存、查询。(2)平台对第三方的授权管理等。
多租户SaaS平台的架构四种方案
swebin的专栏
06-13 2417
多个租户通过分片模式来使用库(使用。多个租户通过分片模式来使用库(使用。每个租户使用一个独立的库(共享。每个租户使用一个独立的库(共享。每个租户使用一个独立的库(共享。每个租户使用一个独立的库(租户使用一个独立的库。租户使用一个独立的库。租户使用一个独立的库。
Spring Boot 构建多租户SaaS平台核心技术指南
z_ssyy的博客
12-29 3745
简单来说,当用户请求系统资源时,我们将用户提供的租户信息(tenantId)存放在ThreadLoacal中,紧接着获取TheadLocal中的租户信息,并根据此信息查询单独的租户库,获取当前租户的数据配置信息,然后借助Hibernate动态配置数据源的能力,为当前请求设置数据源,最后之前用户的请求。说起SaaS,它只是一种软件架构,并没有多少神秘的东西,也不是什么很难的系统,我个人的感觉,SaaS平台的难度在于商业上的运营,而非技术上的实现。其中的参数tenantId就是应用程序识别租户的关键信息。
聊聊 SaaS 多租户系统数据隔离实现方案
码猿技术专栏
06-07 1141
大家好,我是不才陈某~开发过SaaS系统平台的小伙伴一定对多租户这个概念不陌生,简单来说一个租户就是一个公司客户,多个租户共用同一个SaaS系统,一旦SaaS系统不可用,那么所有的租户都不可用。你可以这么理解SaaS系统就像一栋大楼,而租户就是大楼里面租办公楼层的公司,平时每家公司做着自己的业务,互不干扰,但是一旦大楼的电梯坏了,那么影响到的就是所有的公司。多租户问题,其是一种架构设计方式,就是在...
4种多租户数据库设计方案对比及思考,一文全讲透
在数字化道路无限探索
01-13 6238
超详实技术设计方案!
SaaS的几种架构解析
jiuhuayuese的博客
08-23 2564
SaaS的几种架构解析
互联网时代的软件革命-SaaS架构设计
09-15
本书是国内第一本完整介绍SaaS应用开发的书籍,聚集于架构设计。内容是互联网领域具有丰富实践经验的8位一线架构师,对于多年...本书首先从SaaS的商业价值分析开始,讨论SaaS应用与其它应用最大的差异特征:多租户
基于Spring Boot和Spring Cloud的微服务架构设计源码
04-03
本设计源码提供了一个基于Spring Boot和Spring Cloud...它提供基于React和Vue的两个前端框架,用于快速搭建企业级的SaaS多租户微服务平台。适合用于学习和实践Java、Shell和HTML技术,以及开发微服务相关的企业级应用。
Saas多租户数据结构设计
08-01
干货分享!Saas架构如何针对确保安全性、创建可扩展数据模型以及数据基础结构的可扩展性等方面进行设计,本文给出答案!
aws-saas-factory-bootcamp:AWS Bootcamp上的SaaS-在AWS上构建SaaS解决方案
05-02
理解SaaS架构原理的最好方法之一就是深入研究设计,构建和优化SaaS的工作示例。 在本训练营的工作坊中,我们将通过深入参考SaaS架构,向您展示SaaS架构的核心概念,在其中您可以看到实际使用中的SaaS解决方案的各个...
xtoon-boot:DDD开源框架-基于DDD领域模型并支持SaaS平台的开发脚手架
03-04
支持多租户SaaS平台;为何开源工作中一直有个困恼:为什么身边很多项目后期维护时业务逻辑变的混乱不堪,服务层代码变的大量难以修改,维护成本也越来越高,有没有好的解决方式的?后来接触到Eric Evans的DDD(域...
beauty of architecture
09-14
Force.com多租户架构设计演讲视频 3.4 SOA 3.4.1服务计算介绍 服务计算介绍 服务计算知识体系 3.4.2 服务导向架构设计 服务导向架构的迭代设计方法 3.4.3 产品技术 服务总线性能评估 延伸阅读 网格计算...
基于 SpringBoot 实现多租户架构:支持应用多租户部署和管理
2301_78526383的博客
06-04 1010
1 什么是多租户架构多租户架构是指在一个应用中支持多个租户(Tenant)同时访问,每个租户拥有独立的资源和数据,并且彼此之间完全隔离。通俗来说,多租户就是把一个应用按照客户的需求“分割”成多个独立的实例,每个实例互不干扰。2 多租户架构的优势更好地满足不同租户的个性化需求。可以降低运维成本,减少硬件、网络等基础设施的投入。节约开发成本,通过复用代码,快速上线新的租户实例。增强了系统的可扩展性和可伸缩性,支持水平扩展,每个租户的数据和资源均可管理和控制。3 实现多租户架构的技术选择。
解读SaaS架构多租户和单租户有什么分别?
01-04 1931
提到SaaS,很多人都会立刻想到节约成本、按需付费、即租即用等等这些概念,这说明大部分人对SaaS已经有了普遍认知,且开始主动应用SaaS软件。然而这只是一些浅层概念。很多人对于一些SaaS技术问题还是知之甚少,例如企业在进行SaaS企业管理软件选型时,仍不了解“多租户”与“单租户”是什么意思,二者之间的区别更是一头雾水。企业管理者需要明白这两种SaaS架构的特点,才能更多地从未来的功能需求、数据...
多租户设计
ronshi的博客
10-19 1610
多租户设计
基于 SpringBoot 实现多租户架构:支持应用多租户部署和管理!
程序员闪充宝
07-25 744
一、概述1 什么是多租户架构多租户架构是指在一个应用中支持多个租户(Tenant)同时访问,每个租户拥有独立的资源和数据,并且彼此之间完全隔离。通俗来说,多租户就是把一个应用按照客户的需求“分割”成多个独立的实例,每个实例互不干扰。 2 多租户架构的优势更好地满足不同租户的个性化需求。可以降低运维成本,减少硬件、网络等基础设施的投入。节约开发成本,通过复用代码,快速上线新的租户实例。增强了系统...
saas多租户架构
08-05
SAAS多租户架构图通常由以下组件组成: 1. 客户端:客户端是用户使用SAAS应用程序的界面,可以是Web浏览器、移动应用程序等。 2. 负载均衡器:负载均衡器用于分发客户端请求到后端的多个应用程序实例,以实现负载均衡和高可用性。 3. 应用程序服务器:应用程序服务器是SAAS应用程序的核心组件,它处理客户端请求并执行业务逻辑。多个应用程序服务器可以水平扩展以处理更多的请求和用户。 4. 数据库:数据库用于存储SAAS应用程序的数据,包括用户信息、配置数据、业务数据等。通常使用关系型数据库或者NoSQL数据库来支持数据存储。 5. 多租户引擎:多租户引擎是实现SAAS多租户架构的关键组件,它负责管理不同租户的数据隔离、安全性和定制化需求。它可以通过数据库模式分离、数据过滤或者虚拟化等方式来实现多租户隔离。 6. 身份验证和访问控制:SAAS应用程序通常需要进行身份验证和访问控制,以确保只有授权的用户可以访问特定的数据和功能。这可以通过用户身份验证、访问令牌、角色权限等方式来实现。 7. 集成服务:SAAS应用程序可能需要与其他系统进行集成,如第三方支付服务、邮件服务、短信服务等。集成服务可以通过API接口、消息队列等方式来实现。 8. 监控和日志:SAAS应用程序需要进行监控和日志记录,以实时监控系统的性能和健康状况,并记录关键事件和错误日志,用于故障排查和系统优化。 这是一个基本的SAAS多租户架构图,不同的SAAS应用程序可能会有一些定制化的组件或者扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • ORACLE rac集群概念和原理 48922
  • 多租户Saas架构设计分析(实践篇) 31421
  • 智能对话 | 使用 Java实现 智能对话机器人 19697
  • 多租户Saas架构设计分析(基础篇) 15859
  • 微服务之注册中心 15585

分类专栏

  • 运维 6篇
  • mac 2篇
  • 部署 3篇
  • linux 1篇
  • 基础 45篇
  • 数据结构与算法 9篇
  • Array
  • 数据库 15篇
  • Oracle 3篇
  • 工作流 2篇
  • flowable 1篇
  • 链表 7篇
  • stack 2篇
  • queue 1篇
  • 人工智能 1篇
  • spring boot 8篇
  • 架构 15篇
  • 微服务 20篇
  • elasticsearch 1篇
  • rest 2篇
  • Mysql 6篇
  • coreJava 1篇
  • redis 6篇
  • CDN 1篇
  • 其他 3篇
  • docker 3篇
  • thymeleaf 1篇
  • nginx 5篇
  • 物联网
  •  分类 1篇
  • 前端
  • layui 1篇
  • Mybatis 4篇
  • spring 7篇
  • 多线程 12篇
  • JVM 4篇
  • HTTP 3篇
  • tomcat 2篇
  • Netty 1篇
  • NIO 1篇
  • NoSQL 1篇
  • motan
  • JMS 1篇
  • MQ 1篇
  • 面试 4篇
  • 源码解析 1篇
  • 分布式 2篇
  • 黑科技 1篇
  • restful 1篇
  • 词趣
  • 算法 10篇

最新评论

  • JAVA 面试题 合辑(二)

    endlesswater: 可以的,我看的另一篇,我面试时90%以上的题目在下边这个博客里:https://knife.blog.csdn.net/article/details/121219272

  • 多租户Saas架构设计分析(实践篇)

    Box_csdn: 你这其实就是各开发各的了

  • 架构之业务架构

    qq_35613312: 这是什么画图工具那

  • 多租户Saas架构设计分析(实践篇)

    养 家 糊 口: 是的,所以模式五的数据库设计应该参照模式三

  • 多租户Saas架构设计分析(实践篇)

    YH555: 那是不是 前端后端都部署多个实列,不同实列可以实现个性化需求

大家在看

  • 智能算法之蚁群算法 793
  • 通用大模型还是垂直大模型更胜一筹? 509
  • 栈的实现详解 513
  • 无线传感网之LEACH路由算法
  • 写给大数据开发,如何去掌握数据分析 2256

最新文章

  • MySQL大表优化方案
  • WindowsServer2012r2 、Windows Server 2008或2012 修复CVE-2016-2183(SSL/TLS)漏洞的办法
  • 架构之业务架构
2022年1篇
2021年20篇
2020年23篇
2019年147篇
2018年3篇
2017年2篇
2016年4篇
2015年1篇

目录

目录

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

哆哆女性网康熙字典在线查字起名qq可爱表情座机呼叫转移英语商标如何起名人格测试起名带金旁的字有哪些后娘最彪悍男生双胎起名大全励志取名起名大全酷玛关于水的诗句起名推荐的字超时空英雄传说3儿童学习软件陈某卉照片什么名字起名爱在深夜时艾姓起名洋气给店铺起名字我的公主分集剧情韩非子五蠹山的名字都是怎么起的微博时代男宝宝起名字janicegriffith疑犯追踪第五季名不虚传的意思www.14ddd.com摄政王是病娇得宠着起微店名淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻不负春光新的一天从800个哈欠开始有个姐真把千机伞做出来了国产伟哥去年销售近13亿充个话费竟沦为间接洗钱工具重庆警方辟谣“男子杀人焚尸”男子给前妻转账 现任妻子起诉要回春分繁花正当时呼北高速交通事故已致14人死亡杨洋拄拐现身医院月嫂回应掌掴婴儿是在赶虫子男孩疑遭霸凌 家长讨说法被踢出群因自嘲式简历走红的教授更新简介网友建议重庆地铁不准乘客携带菜筐清明节放假3天调休1天郑州一火锅店爆改成麻辣烫店19岁小伙救下5人后溺亡 多方发声两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#青海通报栏杆断裂小学生跌落住进ICU代拍被何赛飞拿着魔杖追着打315晚会后胖东来又人满为患了当地回应沈阳致3死车祸车主疑毒驾武汉大学樱花即将进入盛花期张立群任西安交通大学校长为江西彩礼“减负”的“试婚人”网友洛杉矶偶遇贾玲倪萍分享减重40斤方法男孩8年未见母亲被告知被遗忘小米汽车超级工厂正式揭幕周杰伦一审败诉网易特朗普谈“凯特王妃P图照”考生莫言也上北大硕士复试名单了妈妈回应孩子在校撞护栏坠楼恒大被罚41.75亿到底怎么缴男子持台球杆殴打2名女店员被抓校方回应护栏损坏小学生课间坠楼外国人感慨凌晨的中国很安全火箭最近9战8胜1负王树国3次鞠躬告别西交大师生房客欠租失踪 房东直发愁萧美琴窜访捷克 外交部回应山西省委原副书记商黎光被逮捕阿根廷将发行1万与2万面值的纸币英国王室又一合照被质疑P图男子被猫抓伤后确诊“猫抓病”

哆哆女性网 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化