初代SAAS平台应用层架构设计

article/2025/9/22 17:01:34

近期参与SAAS项目第一代应用设计,为满足整体灵活性,复用性和可定制化,得出如下应用层模型,希望能给大家相互参考学习,设计上有什么缺漏请多指教

核心思想

  1. 模块为最小化购买单位 例如商城模块 分销模块等
  2. 多个模块组合成为一个版本  例如基础版本 旗舰版等
  3. 每个模块都关联了对应的接口/页面路由  将对应的关系上报给配置中心
  4. 根据租户购买情况 得出用户有哪些模块的权限 进而每个用户显示不同的功能及权限 由租户网关统一校验
  5. 以此达成多租户共享同一套应用程序但各自使用不同的模块

应用层架构图

模块

  1. 模块是SAAS购买/赠送的最小单位 例如商城模块,活动模块等 每个模块都有对应的定价
  2. 一个模块可以配置这个模块包含了哪些页面和接口
  3. 每个模块启动时自动向配置中心提交自己归属的页面和接口 用于网关校验
  4. 模块是被定制化的最小单位,可标记这个模块在某个租户上是否被定制化,若是已定制化的标记,则路由到定制化后的服务上去,具体的接口和页面的配置也已定制化后的为准

版本

  1. 多个模块组合打包即成为一个版本
  2. 用户可以版本为单位进行购买 批量获得各个模块的权限

前台与后台

  1. 以微商城SAAS举例  给到消费者用的页面等为前台
  2. 商户管理店铺的端口为后台

配置中心

  1. 每个模块将其对应包含的接口和页面启动时上报到配置中心

统一租户网关

  1. 实现SSO登录及其校验
  2. 租户及租户的客户每次访问页面或调用接口时  读取配置中心配置  校验其是否有这个页面/接口的权限 决定是否放行
  3. 对租户的租约到期时间进行校验 若已到期或快要到期的 则跳转引导续费
  4. 判断该租户的模块是否被定制化 若已定制化 则转发到对应的定制化模块上
  5. 提供接口给租户查询自己拥有多少个模块及其页面和接口

功能页面

  1. 具体功能对应的页面则为功能页面 例如商城页面等
  2. 每个页面可能包含多个模块的功能 页面前端组件根据该租户已购的模块动态显示/隐藏对应的组件 实现租户页面动态显示

非功能页面

  1. 续费 充值 支付等页面为非功能页面
  2. 这类页面不用经过网关校验 属于路由白名单

通用模块

  1. 即无需购买都有的模块 例如账号密码管理 子账号管理等
  2. 对应的接口和页面都为非功能页面/接口

租户购买/续费

  1. 即记录该租户和具体的哪些模块的关联关系及其租约到期时间
  2. 视为该租户已经购入了这个模块

小节

整体租户使用时调用路径如下:

访问页面:

  1. 根据路由规则或读取得出该页面关联有多少哪些个模块
  2. 网关校验该租户是否有这个页面的权限  即该用户有无购入该页面关联的模块  有则放行
  3. 当前是否处在即将到期或已到期状态下  不是则放行
  4. 根据该租户购有的模块 动态显示页面上的组件  即页面上本可有但用户没有购买的组件则隐藏不显示

调用接口:

  1. 根据路由规则得出该接口关联在哪个模块
  2. 网关校验该租户是否有这个接口的权限 即该用户有无购入这个接口对应的模块 有则放行
  3. 当前是否处在即将到期或已到期状态下  不是则放行

以此应用架构下,新增功能时可以水平扩充多个模块并保持灵活的权限控制,并且支持小部分客户的定制化,做到定制化且不影响原有的非定制化的功能,缺点是租约网关负荷相对较大,需要使用缓存等减轻租约网关压力。


http://chatgpt.dhexx.cn/article/wvovBIZp.shtml

相关文章

SAP 云平台 (Cloud Platform) 架构概述

引言 在我们开始SAP云平台的架构之旅之前,让我们先看看SAP已经发布的一些其他云产品。这些云产品方案可以分为公有云和私有云两种。 SAP公有云解决方案见下图最右侧,比较著名的有SAP SuccessFactors和SAP Cloud for Customer(C4C)等,作为SAP软…

大型JAVA智慧校园云平台SaaS源码

▶ 让技术回归教育 智慧校园完整技术栈: 前后端分离 1、使用springboot框架Javavue2 2、数据库MySQL5.7 3、移动端小程序使用小程序原生语音开发 4、电子班牌固件安卓7.1;使用Java Android原生 5、elmentui ,Quartz,jpa&#xff…

Saas免费开源充电桩平台

开源充电桩Saas系统(v2.3.1) 我的车,到底该选什么功率充电桩: 点我访问 体验地址,star star : 点我访问 日志记录 每天进步一点点,希望每天能更新一些进度。 系统更新日志 2022.10.4 重新整理PP…

多校园SaaS运营智慧校园云平台源码 智慧校园移动小程序源码

智慧校园管理平台源码 智慧校园云平台源码 智慧校园全套源码包含:电子班牌管理系统、成绩管理系统、考勤人脸刷卡管理系统、综合素养评价系统、请假管理系统、电子班牌发布系统、校务管理系统、小程序移动端、教师后台管理系统、SaaS运营云平台(支持多学…

云平台的分类

要了解云平台之前,首先讲一下云计算 定义:云计算(cloud computing)是分布式计算的一种,指的是通过网络“云”将巨大的数据计算处理程序分解成无数个小程序,然后,通过多部服务器组成的系统进行处…

多租户saas云平台框架

今天谈下云平台下的多租户架构,不论是在公有云还是私有云平台,是设计一个面向最终组织或用户的 SaaS 应用还是面向业务系统的 PaaS 平台,多租户都是前期架构设计的一个关键内容,因此有必要对里面的一些核心要点进一步说明。 多租…

SAAS云平台搭建札记: (一)浅论SAAS多租户自助云服务平台的产品、服务和订单

最近在做一个多租户的云SAAS软件自助服务平台,途中遇到很多问题,我会将一些心得、体会逐渐分享出来,和大家一起探讨。这是本系列的第一篇文章。 大家知道,要做一个全自助服务的SAAS云平台是比较复杂的,稍微有些漏洞&am…

SaaS云平台多租户数据库方案,完美兼顾共享、独占模式

构建SaaS云平台多租户架构,首要的问题要解决数据如何存储的问题,业界基本上已经形成共识,无非是以下三种方案: 1、共享数据库,共享表 在表中增加TenantId多租户的数据字段,以区分不同租户的数据。这种做法…

多租户saas云平台框架---weiit

今天谈下云平台下的多租户架构,不论是在公有云还是私有云平台,是设计一个面向最终组织或用户的 SaaS 应用还是面向业务系统的 PaaS 平台,多租户都是前期架构设计的一个关键内容,因此有必要对里面的一些核心要点进一步说明。 多租…

SaaS是什么,目前主流的国内SAAS平台提供商有哪些?

SaaS是什么,目前主流的国内SAAS平台提供商有哪些?SaaS这个概念近两年可谓说是十分火热,尤其是后疫情时代。 但还是有很多人对SaaS这个名词云里雾里,被碎片化的信息裹挟,并没有真正意义上理解SaaS的概念。 这篇就综合…

移动端mousedown不生效 类型“TouchEvent”上不存在属性“clientX”

移动端只有如下四个操作 mousedown相当于touchstart 然后两个方法里面的对象也不一样,mouse的是MouseEvent,touch的是TouchEvent。 MouseEvent里面的clientX对应TouchEvent里面的changedTouches[0].clientX,所以做个判断,适配下…

WPF开发经验-WPF的TextBox控件的MouseDown事件不响应的解决方法

一 问题的发现 最近项目有个需求,大概是,当点击某个TextBox时,先执行一些业务上的逻辑处理。 于是按以往思维,将TextBox的MouseDown事件关联事件处理方法,将业务处理写在方法里。 调试发现,点击TextBox时&a…

原生js事件 mousedown,mouseup,mousemove结合实现元素拖拽

拖拽要注意 解决鼠标焦点丢失问题 鼠标移动过快,会导致鼠标移出盒子,出现盒子和鼠标不同步,且在盒子外鼠标抬起,发现鼠标再次划入盒子,不点击鼠标盒子也仍然还会拖拽。 IE/火狐 把盒子和鼠标绑在一起 调用元素的 se…

mousedown、mousemove、mouseup实现一个可拖拽的div

可拖拽的div 前言:前端开发当中不单单是简单的页面布局,很多的事件也应用在其中,比如一个窗口实现在整个页面的拖动的需求。 明确步骤 (1)对div设置position:absolute;属性并设置top&#xff1a…

WPF中Button中的MouseDown和MouseUp不触发问题解决方法

按照WPF的帮助说明,某些控件的路由事件被内部处理了,已经被标记为Handled,自行定义的事件处理代码便不再起作用了,有时候会很郁闷! 不过WPF提供了必要的方法。1)使用相应的Preview事件。须注意隧道类型的事…

Three.js mousedown不触发

想点击3D物体触发事件,然后进行旋转操作之后再抬起的时候也会触发click事件,因此想在鼠标按下的时候记录一下鼠标位置,click触发的时候判断位置是否相等再触发事件。 但是试了好久mousedown事件怎么都不触发,最后发现是和OrbitCon…

Web服务器性能压力测试工具

webbench webbench是Linux下的一个网站压力测试工具,最多可以模拟3万个并发连接去测试网站的负载能力。 下载地址可以到google搜,我这里给出一个 下载地址:http://soft.vpser.net/test/webbench/webbench-1.5.tar.gz 安装非常简单 #tar zxv…

web压力測试-Web Bench

1.web bench下载。地址:http://home.tiscali.cz/~cz210552/webbench.html 2.wen bench安装: [rootweb111 tmp]#tar -zxvf webbench-1.5.tar.gz [rootweb111 tmp]# cd webbench-1.5 [rootvstar111 webbench-1.5]# ll total 28 lrwxrwxrwx 1 1001 root …

电脑网页压力测试软件,网站压力测试工具

网站压力测试软件可以测试不同上网方式、不同地区、访问Web不同页面、在不同并发访问密度情况下的客户端响应时间、流量和流速,实现极高的服务器测试,数据精准。网站压力测试软件适用于所有windows平台,操作简单,新手也能快速上手…

十个免费的 Web 压力测试工具

本文列举了是十个免费工具,可以用来进行Web的负载/压力测试的。这样你就可以知道你的服务器以及你的WEB应用能够扛得住多少的并发量,以及网站性能。 0. Grinder – Grinder是一个开源的JVM负载测试框架,它通过很多负载注射器来为分布式测试提…