apaas多租户开源框架(apaas)

网友投稿 704 2023-01-14

本篇文章给大家谈谈apaas多租户开源框架,以及apaas对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 今天给各位分享apaas多租户开源框架的知识,其中也会对apaas进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

为什么要使用 Apache Stratos

为什么要使用 Apache Stratos

Apache Stratos (处于孵化阶段)是一个由 Apache community 支持的开放的 PaaS 框架项目。它带来了企业级的服务质量、管理以及安全性,表现为内部私有云,外部管理云和公有云。企业组织,云基础设施供应商以及云服务提供者可以自由的修改,发布和部署 Apache Stratos,而没有任何知识产权的限制,授权费用以及服务费。
开放的协同工作能力
一个开放的 PaaS 服务支持异构的IaaS环境以及多平台,多语言,多框架的环境。Apache Stratos 的cartridge模型和jCloud抽象层可以使其部署在当下比较流行的IaaS环境中(如, Amazon AWS, OpenStack, vCloud ),并且开发团队可以通过对cartridge进行扩展来实现他们想要的应用服务器。
构建你自己的 xPaaS
Apache Stratos PaaS框架是多种PaaS服务诸如Application PaaS(aPaaS), Integration PaaS (iPaaS) 或 Data PaaS (dPaaS) 的基础。由于我们没有规定中间件环境,所以企业或组织可以将云弹性的可扩展性,资源共享,服务水平管理以及按需自助服务等功能添加到他们的aPaaS,iPaaS或dPaaS中。
实现你自己的业务模型
团队通过使用Apache Stratos,获得了一个灵活的,为企业量身打造的PaaS框架,该框架没有规定任何具体的业务模型的限制。Apache Stratos 使用者可以自由的部署这个PaaS框架,作为他们的软件和服务的底层支持,而不需要任何许可证,并且也没有任何财政方面的限制。企业用户可以从WSO2和我们的合作伙伴哪里得到服务支持。
Apache Stratos 对工业的影响
一些在航空领域, 电信通信领域以及工程领域中处于领军位置的组织使用 Apache Stratos 来构建互联的生态系统。例如,波音公司就是使用的Apache Stratos来重新规划物流供应链,并将航线数字化。领先的网络基础设施供应商集成了 Apache Stratos 以便在负载达到峰值的时候也可以给他们的客户提供优质可靠,可用的电信服务。一些工程设备的提供商为了开辟小型市场,正在建设一个多租户的,可以根据政策和规则调整的云计算解决方案。
由社区掌管和经营
Apache Stratos 是当前市面上唯一一个由开源社区掌管的开源的PaaS框架。不像其他的PaaS产品那样,要么隶属于公司(像 RedHat 的OpenShift),要么有一些特定的大赞助商(像 Cloud Foundry),Apache Stratos 属于开放的Apache社区,在这里我们因参与而参与,并且任人唯贤,而不是靠财政方面的赞助。从Apache社区中出现过一些成为现代互联网基础组件的技术,包括Apache web服务器,Tomcat 服务器,Cassandra,CouchDB,CloudStack以及其他。Stratos的加入为Apache添加了一个具有PaaS能力的“家庭成员”——所有的这些都在开源社区的掌控之下。
Apache Stratos 的 Cloud-Native 架构
Cloud-Native Apache Stratos (Incubating) 架构提供独有的技术和业务,包括:
Cartridge model
In-container multi-tenancy
http and non http load auto scaling
Custom Load Balancer integration and hybrid cloud routing
Cartridge 模型
Apache Stratos 的 cartridge 模型将传统的基础设施转变成云服务,并创建了云感知(Cloud-aware)的容器来托管业务逻辑和基础设施服务。通过创建一个cartridge 或者选择一个预编译好的cartridge选项,开发团队可以很容易的把传统应用平台上的软件部署到一个托管的PaaS环境中。cartridge模型提供了运行时的扩展能力,并且可以为任何需要的编程语言,平台框架以及服务器提供多语言的支持。

abp框架如何多租户只显示自己的数据

abp框架如何多租户只显示自己的数据,操作如下
1、租户登录:
基于abp实施的identityserver4授权中心,多租户登录时必须指定当前租户ID,以便将当前租户ID包含在令牌中。
将请求标头添加到登录界面:__tenant:“租户ID”
2、实现多租户
一般来说,直接启用多租户:
MultiTenancyConsts.IsEnabla = true
但是,如果您是多数据库多租户,则需要配置租户存储,否则将抛出“找不到租户存储”异常。
具体步骤:
域层
引用nuget包:Volo.Abp.TenantManagement.Domain,并依赖于AbpTenantManagementDomainModule模块
domain.shared层
引用nuget包Volo.Abp.TenantManagement.Domain.Shared;取决于AbpTenantManagementDomainSharedModule模块;
实体框架层
引用nuget包:Volo.Abp.TenantManagement.EntityFrameworkCore,它依赖于AbpTenantManagementEntityFrameworkCoreModule模块;
dbcontext连接字符串必须与数据库中存储的名称相同,即,存储在AbpTenantConnectionStrings表中的名称与dbcontext记录的ConnectionStringName一致

Spring Boot 构建多租户SaaS平台核心技术指南

1. 概述

笔者从2014年开始接触SaaS(Software as a Service),即多租户(或多承租)软件应用平台;并一直从事相关领域的架构设计及研发工作。机缘巧合,在笔者本科毕业设计时完成了一个基于SaaS的高效财务管理平台的课题研究,从中收获颇多。最早接触SaaS时,国内相关资源匮乏,唯一有的参照资料是《互联网时代的软件革命:SaaS架构设计》(叶伟等著)一书。最后课题的实现是基于OSGI(Open Service Gateway Initiative)Java动态模块化系统规范来实现的。

时至今日,五年的时间过去了,软件开发的技术发生了巨大的改变,笔者所实现SaaS平台的技术栈也更新了好几波,真是印证了那就话:“山重水尽疑无路,柳暗花明又一村”。基于之前走过的许多弯路和踩过的坑,以及近段时间有许多网友问我如何使用Spring Boot实现多租户系统,决定写一篇文章聊一聊关于SaaS的硬核技术。

说起SaaS,它只是一种软件架构,并没有多少神秘的东西,也不是什么很难的系统,我个人的感觉,SaaS平台的难度在于商业上的运营,而非技术上的实现。就技术上来说,SaaS是这样一种架构模式:它让多个不同环境的用户使用同一套应用程序,且保证用户之间的数据相互隔离。现在想想看,这也有点共享经济的味道在里面。

笔者在这里就不再深入聊SaaS软件成熟度模型和数据隔离方案对比的事情了。今天要聊的是使用Spring Boot快速构建独立数据库/共享数据库独立Schema的多租户系统。我将提供一个SaaS系统最核心的技术实现,而其他的部分有兴趣的朋友可以在此基础上自行扩展。

2. 尝试了解多租户的应用场景

假设我们需要开发一个应用程序,并且希望将同一个应用程序销售给N家客户使用。在常规情况下,我们需要为此创建N个Web服务器(Tomcat),N个数据库(DB),并为N个客户部署相同的应用程序N次。现在,如果我们的应用程序进行了升级或者做了其他任何的改动,那么我们就需要更新N个应用程序同时还需要维护N台服务器。接下来,如果业务开始增长,客户由原来的N个变成了现在的N+M个,我们将面临N个应用程序和M个应用程序版本维护,设备维护以及成本控制的问题。运维几乎要哭死在机房了…

为了解决上述的问题,我们可以开发多租户应用程序,我们可以根据当前用户是谁,从而选择对应的数据库。例如,当请求来自A公司的用户时,应用程序就连接A公司的数据库,当请求来自B公司的用户时,自动将数据库切换到B公司数据库,以此类推。从理论上将没有什么问题,但我们如果考虑将现有的应用程序改造成SaaS模式,我们将遇到第一个问题:如果识别请求来自哪一个租户?如何自动切换数据源?

3. 维护、识别和路由租户数据源

我们可以提供一个独立的库来存放租户信息,如数据库名称、链接地址、用户名、密码等,这可以统一的解决租户信息维护的问题。租户的识别和路由有很多种方法可以解决,下面列举几个常用的方式:

解决了上述问题后,我们再来看看如何获取客户端传入的租户信息,以及在我们的业务代码中如何使用租户信息(最关键的是DataSources的问题)。

我们都知道,在启动Spring Boot应用程序之前,就需要为其提供有关数据源的配置信息(有使用到数据库的情况下),按照一开始的需求,有N个客户需要使用我们的应用程序,我们就需要提前配置好N个数据源(多数据源),如果N<50,我认为我还能忍受,如果更多,这样显然是无法接受的。为了解决这一问题,我们需要借助Hibernate 5提供的动态数据源特性,让我们的应用程序具备动态配置客户端数据源的能力。简单来说,当用户请求系统资源时,我们将用户提供的租户信息(tenantId)存放在ThreadLoacal中,紧接着获取TheadLocal中的租户信息,并根据此信息查询单独的租户库,获取当前租户的数据配置信息,然后借助Hibernate动态配置数据源的能力,为当前请求设置数据源,最后之前用户的请求。这样我们就只需要在应用程序中维护一份数据源配置信息(租户数据库配置库),其余的数据源动态查询配置。接下来,我们将快速的演示这一功能。

4. 项目构建

我们将使用Spring Boot 2.1.5版本来实现这一演示项目,首先你需要在Maven配置文件中加入如下的一些配置:

然后提供一个可用的配置文件,并加入如下的内容:

接下来,我们需要关闭Spring Boot自动配置数据源的功能,在项目主类上添加如下的设置:

最后,让我们看看整个项目的结构:

5. 实现租户数据源查询模块

我们将定义一个实体类存放租户数据源信息,它包含了租户名,数据库连接地址,用户名和密码等信息,其代码如下:

持久层我们将继承JpaRepository接口,快速实现对数据源的CURD操作,同时提供了一个通过租户名查找租户数据源的接口,其代码如下:

业务层提供通过租户名获取租户数据源信息的服务(其余的服务各位可自行添加):

接下来是配置自定义的数据源,其源码如下:

在改配置类中,我们主要提供包扫描路径,实体管理工程,事务管理器和数据源配置参数的配置。

6. 实现租户业务模块

在此小节中,租户业务模块我们仅提供一个用户登录的场景来演示SaaS的功能。其实体层、业务层和持久化层根普通的Spring Boot Web项目没有什么区别,你甚至感觉不到它是一个SaaS应用程序的代码。

首先,创建一个用户实体User,其源码如下:

业务层提供了一个根据用户名检索用户信息的服务,它将调用持久层的方法根据用户名对租户的用户表进行检索,如果找到满足条件的用户记录,则返回用户信息,如果没有找到,则返回null;持久层和业务层的源码分别如下:

7. 配置-

我们需要提供一个租户信息的-,用以获取租户标识符,其源代码和配置-的源代码如下:

8. 维护租户标识信息

在这里,我们使用ThreadLocal来存放租户标识信息,为动态设置数据源提供数据支持,该类提供了设置租户标识、获取租户标识以及清除租户标识三个静态方法。其源码如下:

9. 动态数据源切换

要实现动态数据源切换,我们需要借助两个类来完成,CurrentTenantIdentifierResolver和AbstractDataSourceBasedMultiTenantConnectionProviderImpl。从它们的命名上就可以看出,一个负责解析租户标识,一个负责提供租户标识对应的租户数据源信息。

首先,我们需要实现CurrentTenantIdentifierResolver接口中的resolveCurrentTenantIdentifier()和validateExistingCurrentSessions()方法,完成租户标识的解析功能。实现类的源码如下:

有了租户标识符解析类之后,我们需要扩展租户数据源提供类,实现从数据库动态查询租户数据源信息,其源码如下:

最后,我们还需要提供租户业务模块数据源配置,这是整个项目核心的地方,其代码如下:

10. 应用测试

最后,我们通过一个简单的登录案例来测试本次课程中的SaaS应用程序,为此,需要提供一个Controller用于处理用户登录逻辑。在本案例中,没有严格的对用户密码进行加密,而是使用明文进行比对,也没有提供任何的权限认证框架,知识单纯的验证SaaS的基本特性是否具备。登录控制器代码如下:

在启动项目之前,我们需要为主数据源创建对应的数据库和数据表,用于存放租户数据源信息,同时还需要提供一个租户业务模块数据库和数据表,用来存放租户业务数据。一切准备就绪后,启动项目,在浏览器中输入:http://localhost:8080/login.html

在登录窗口中输入对应的租户名,用户名和密码,测试是否能够正常到达主页。可以多增加几个租户和用户,测试用户是否正常切换到对应的租户下。

总结

免费的低代码开发平台有哪些?

别找了apaas多租户开源框架, 翻遍全网apaas多租户开源框架,推荐率最高的“免费低代码开发平台”就在这了!

想要提高办公体验或者工作效率的朋友,看这一篇就够了!


织信Informat作为一款随需而配的低代码开发平台,它包含报表、表单、页面、自动化工作流、沟通等多个模块,无需懂代码,通过拖拽可视化组件就可以快速、轻松搭建企业管理系统、业务平台、企业官网等等。同时它也是一款业务管理平台,提供大量成熟应用和行业模板,让管理与业务随心而变、随需而配,一站式解决企业的数字信息化需求。


作为一款功能强大,同时简单易用的低代码开发平台,可以满足企业95%以上的数字信息化需要。


织信界面体验apaas多租户开源框架:简洁、便捷、大气,整个界面是清新自然的协调色系,UI漂亮,平台使用操作很简单,自由度也非常高。

织信工作台

虽然涉及数据管理、企业官网和多场景系统应用搭建,织信这款工具却并不难理解,你可以用它来制作你想要的业务管理、内部办公和对外销售,尤其是做业务管理方面的应用,以完成数据的搜集、整理、协作、推送、展示与分析。小到一张调查问卷的制作,大到OA、ERP、CRM、BPM、eHr等应用的搭建。对外销售管理到对内业务系统办公协作,都能轻松完成。


织信还提供了100+现成的应用和行业模板,你不用从零开始,直接基于应用或模板来修改或拓展功能,可以更快速的搭建出贴近你需求的应用,就像搭积木一样,省时还省力省心。

织信应用市场

这样一款平台,为什么在开头讲它可以满足企业95%的需求?


1、20%:入门门槛低

在以前,很多人会花精力去学Excel 百分之五十的功能,可能到最后用到的不过是5%。对企业而言,Excel不管是在功能灵活性方面,还是在协作上,尤其是在移动端应用方面,都难以满足需求;而买现成的通用软件,功能或臃肿或不全,外包定制开发不仅贵而且周期长,低门槛搭建个性化应用成为刚需;市面上也有一些快速开发平台类的产品,但使用难度高,要很懂编程,要花大量的时间精力学习,这对一般的企业员工或管理者来说,都是极不现实的。

织信功能织信功能

织信低代码开发平台的一大价值在于,它大大降低了企业应用的制作难度,完全可视化配置,简化了企业应用的制作过程,既不需要编写代码,甚至还不用部署安装,还可以基于现成的CRM、ERP、eHr、OA、任务协作、项目管理、调查问卷、生产管理等应用和行业模板快速搭建,即搭即用的理念非常契合互联时代的快节奏。

从功能上说,织信包含报表、表单、页面、自动化工作流、沟通等模块(详见上图),这些模块都有相应的可视化设计器,操作基本就是“拖拉拽”,而且织信匠心独运,很多超复杂的业务逻辑都做了大量的底层工作,你只需要简单配置就可以使用,例如在设计“入库单”的表单时,使用表单的“初始化表单”功能,根据“订单编号”,就可以从“销售订单”和“订单明细”子表中读取出相应数据,快捷生成入库单。


2、20%:边改边用,随需应变

企业不管是买现成的通用软件,还是外包定制开发,都不能满足企业应用的需求变化,或者要花很贵的价钱去随时定制,但开发周期长,质量也不保障,低成本、易操作的随时自定义是企业应用的另一刚需;

织信低代码开发平台的另一价值在于,它很好的满足了不同行业和企业,甚至同一企业在不同的发展时期、不同业务阶段的个性化需求,可以说它是一套动态平台、智能化平台,任何时候哪个功能用得不合适了、不爽了就可以随时配置修改,几分钟就能解决需求变化的问题,这也是深度契合了互联时代的快节奏。


3、20%:-移动端Web

身处移动互联时代,外出办公、销售外勤都是常况,加上全民热情普及,移动端的使用和体验成为重中之重;

在织信低代码开发平台做出来的功能在微信里可以直接群组分享,适合用来做对外销售+业务管理+内部办公;深度集成微信和钉钉,使用非常方便,而且体验非常流畅不亚于原生APP。


4、20%:紧密的团队协作

团队协作过程中,成员间不仅仅要共享数据资料,对数据快速整合、实时分析,还要对数据能针对性的实时沟通,例如销售、项目的团队协作;

织信低代码开发平台在协作方面做得非常完善:数据的共享和权限控制只是基础中的基础,此外流程审批可以关联任何业务,提供数据进行互动协作、任务协作等协作模块,这也是其他平台、开发框架等产品所没有的。

互动面板,可以针对任意项目业务或数据发起互动协作,评论、回复、参与:


5、15%:深度满足业务需求

企业需求不仅都有各自的个性特点,行业差异性大,而且就算是中小企业也是五脏俱全,需求都不会简单,企业应用自然要做到有“深度”,满足复杂业务逻辑。

市面上,类似开发平台、开发框架或者应用搭建工具是相当多的。这类工具有个最大的问题:功能强大了就太难用,而太容易使用了功能就太简单。例如麦客、金数据这类,使用起来就相当简单,拖拉一下就能搞出一个表单、报表,但开发的功能也相当简单,其实就是简单的增删改查+一点报表展示,用这类工具不能开发出强大的业务管理软件吗,例如简单地实现报表里加个按扭实现钻取数据,做一些操作,就做不到;表单的界面也不能任意设计。这类工具就是用于收集一下数据,ERP没有的功能这里来补一补,都是一些不重要的边缘一点的业务才用这类工具来信息化管理。

织信低代码开发平台可以轻松解决上面的问题,它一方面是提供了大量的行业应用,我们可以基于成熟应用进行修改开发,另一方面,它把很多复杂的逻辑已经智能性的处理了,用户只需要简单的配置操作就可以完成复杂的功能。同时,织信不像别的开发平台,需要很强的技术背景以及花费大量的学习时间,可以说织信兼顾到了功能强大和傻瓜好用,是一款非常适合企业管理者或企业业务部门使用的低代码快速开发平台。


6、最后,剩余5%的期待

织信基础功能的搭建学习并不难,甚至可以说非常简单,任何人都能轻易学会,而且它提供了很多成熟的通用应用和行业应用,有大量的模板,其实对使用者来说真的是性价比非常高的选择。

但像调用函数这种,难度相对较高的内容,用起来也是非常轻松,比起普通编程开发或者使用传统的开发平台、开发工具简直是太简单,只是对完全不懂技术的小白,就需要花费一些时间来学习,这方面来说,织信也提供了很多的视频教程,以及帮助中心。

总的来说,织信作为一款快速开发平台,同时也是一款业务管理平台,能让不懂技术的人搭建出企业信息化所需的东西,也能让懂技术的人事半功倍,更加专注于业务,功能丰富、自由而强大,UI漂亮体验流畅,不管是做对外的小程序还是做对内的管理平台,都非常值得推荐。

合理并且有效地运用低/零代码开发平台,不仅可以让我们工作高效地运行,还能最大程度保证团队目标的达成。我推荐使用织信Informat,它内置100多个应用模板并覆盖:OA、ERP、CRM、绩效、人事、企业服务、个人及组织等多个应用场景。点击一键安装,即可免费试用。现在注册可享受终身免费使用权益。同时还能体验在线搭建功能,是帮助企业开启数字化转型的重要引擎!

关于apaas多租户开源框架和apaas的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 apaas多租户开源框架的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于apaas、apaas多租户开源框架的信息别忘了在本站进行查找喔。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:项目施工总进度计划由谁编制(项目施工总进度计划包括哪些)
下一篇:excel 拼接字符串(excel拼接字符串和数字)
相关文章