CN114765630B - 多租户平台的数据访问方法、多租户平台及服务器 - Google Patents
多租户平台的数据访问方法、多租户平台及服务器 Download PDFInfo
- Publication number
- CN114765630B CN114765630B CN202210141332.6A CN202210141332A CN114765630B CN 114765630 B CN114765630 B CN 114765630B CN 202210141332 A CN202210141332 A CN 202210141332A CN 114765630 B CN114765630 B CN 114765630B
- Authority
- CN
- China
- Prior art keywords
- server
- tenant
- application server
- target
- database
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 73
- 238000012545 processing Methods 0.000 claims abstract description 29
- 238000004891 communication Methods 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 4
- 238000002955 isolation Methods 0.000 abstract description 14
- 230000008569 process Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 8
- 238000012423 maintenance Methods 0.000 description 5
- 239000002699 waste material Substances 0.000 description 4
- 239000000872 buffer Substances 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 230000003416 augmentation Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请的实施例提供了一种多租户平台的数据访问方法、多租户平台及服务器,涉及数据处理技术领域。通过接收目标租户发起的访问请求,所述访问请求中包括所述目标租户的租户信息以及待访问数据的标识;根据所述租户信息,从所述路由服务器中获取所述目标租户的路由信息;根据所述目标租户可访问的至少一个所述应用服务器的运行状态,确定待访问的目标应用服务器,并向所述目标应用服务器发送访问指令;接收所述目标应用服务器发送的访问结果,并向所述目标租户发送所述访问结果。能够在保证多租户的数据隔离的情况下,提升了多租户平台中各服务器的利用率。
Description
技术领域
本申请涉及数据处理技术领域,具体而言,涉及一种多租户平台的数据访问方法、多租户平台及服务器。
背景技术
软件即服务(Software as a Service,简称SaaS)平台,即通过网络提供软件服务的平台。SaaS平台服务提供方将应用软件统一部署在自己的服务器上,租户可以根据工作实际需求,通过互联网向服务提供方定购所需的应用软件服务,按定购的服务多少和时间长短向服务提供方支付费用,并通过互联网获得SaaS平台服务提供方提供的服务。
目前,SaaS已成为企业级IT系统建设的主流服务方式,SaaS服务的提供方,根据租户安全性需求等级的不同,可以通过共享部署方式或者专有部署方式实现租户的数据部署。对于安全性需求等级较低的租户,通常采用共享部署方式,服务提供方为多个租户部署一套包括一个入口服务器、一个应用服务器以及一个数据库服务器的共享平台,多个租户由同一入口服务器进入,进行数据访问。同时,在数据库服务器中建立一个数据库,为多个租户建立不同的表,用于存储各租户的数据。对于安全性需求等级较高的租户,为了确保租户之间的数据隔离,通常采用专有部署方式,即服务提供方为每个租户部署、搭建一套专用的包括入口服务器、应用服务器、数据库服务器等设备的专有平台,其中,专有平台的入口服务器仅用于响应该租户的访问请求,数据库服务器仅用于存储该租户的数据,实现了“点对点”SaaS服务。
但是,共享部署方式中,同一平台中的租户可能会由于共享同一数据库导致数据泄露。专有部署方式中,由于每个租户都使用专有平台,各租户的专有平台中的应用服务器、数据库服务器的利用率不足,造成了服务器资源的浪费。另外,上述两种部署方式,大部分租户之间对应的入口服务器以及入口服务器对应的应用服务器都不相同,在租户数量不断增长的情况下,服务提供方投入的技术成本和维护成本将越来越高,系统的稳定性和性能将难以保障。
发明内容
本申请的目的包括,例如,提供了一种多租户平台的数据访问方法、多租户平台及服务器,能够在保证多租户的数据隔离的情况下,提升了多租户平台中各服务器的利用率。
本申请的实施例可以这样实现:
第一方面,本申请实施例提供了一种多租户平台的数据访问方法,应用于多租户平台的入口服务器,所述方法包括:
接收目标租户发起的访问请求,所述访问请求中包括所述目标租户的租户信息以及待访问数据的标识,所述租户信息包括:租户的标识;
根据所述租户信息,从所述路由服务器中获取所述目标租户的路由信息,所述路由信息包括:所述目标租户的租户信息、所述目标租户可访问的至少一个应用服务器的网络地址以及所述至少一个应用服务器对应的数据库服务器的标识,其中,同一租户可访问的应用服务器归属于同一应用服务器组;
根据所述目标租户可访问的至少一个所述应用服务器的运行状态,确定待访问的目标应用服务器,并向所述目标应用服务器发送访问指令,所述访问指令中包括:所述目标租户的租户信息、所述待访问数据的标识以及所述目标应用服务器对应的数据库服务器的标识;
接收所述目标应用服务器发送的访问结果,并向所述目标租户发送所述访问结果。
在一种可选的实施方式中,所述根据所述租户信息,从所述路由服务器中获取所述目标租户的路由信息,包括:
向所述路由服务器发送路由查询请求,所述路由查询请求包括:所述租户信息;
接收所述路由服务器发送的所述路由信息。
在一种可选的实施方式中,所述根据所述目标租户可访问的至少一个应用服务器的运行状态,确定待访问的目标应用服务器,包括:
分别获取所述目标租户可访问的至少一个应用服务器中各应用服务器的负载信息;
从所述目标租户可访问的至少一个应用服务器中选择负载满足预设条件的应用服务器作为所述目标应用服务器。
在一种可选的实施方式中,所述方法还包括:
接收新租户发送的注册请求,所述注册请求中包括所述新租户的租户信息;
根据各数据库服务器的存储信息、最大可承载量和租户信息,确定所述新租户对应的目标数据库服务器;
向所述路由服务器发送路由记录请求,所述路由记录请求中包括所述新租户的租户信息以及所述目标数据库服务器的标识。
在一种可选的实施方式中,所述根据各数据库服务器的存储信息、最大可承载量和租户信息,确定所述新租户对应的目标数据库服务器,包括:
根据所述数据库服务器的存储信息以及最大可承载量,确定各所述数据库服务器的当前可存储量;
根据所述数据库服务器的当前可存储量与所述租户信息中的请求存储量,确定所述目标数据库服务器。
第二方面,本申请实施例提供了一种多租户平台的数据访问方法,应用于多租户平台的应用服务器,所述方法包括:
接收所述入口服务器发送的访问指令,所述访问指令中包括:所述目标租户的租户信息、所述待访问数据的标识以及所述目标应用服务器对应的数据库服务器的标识;
根据所述目标应用服务器对应的数据库服务器的标识,向所述目标应用服务器对应的数据库服务器发送数据查询请求,所述数据查询请求包括:所述待访问数据的标识;
接收所述数据库服务器发送的数据访问结果,并将所述数据访问结果发送给所述入口服务器。
第三方面,本申请实施例提供了一种多租户平台的数据访问方法,应用于多租户平台的路由服务器,所述方法包括:
接收入口服务器发送的路由记录请求,所述路由记录请求中包括:新租户的租户信息以及目标数据库服务器的标识,所述目标数据库服务器用于存储所述新租户的数据;
根据所述路由记录请求,生成并保存所述新租户的路由信息,所述路由信息包括:所述新租户的标识、所述目标数据库服务器以及所述目标数据库服务器对应的所述新租户可访问的至少一个应用服务器的网络地址,其中,数据库服务器与应用服务器的对应关系预先配置完成。
第四方面,本申请实施例提供了一种多租户平台,所述多租户平台包括:入口服务器、路由服务器、多个应用服务器组以及与各应用服务器组对应的多个数据库服务器组,各应用服务器组中分别包括多个应用服务器,各数据库服务器中分别包括多个数据库服务器,各应用服务器组与对应的数据库服务器组之间通信连接,各应用服务器组之间相互隔离,且各数据库服务器组之间相互隔离,所述入口服务器与各应用服务器组通信连接,所述路由服务器与所述入口服务器相连接;
所述入口服务器用于接收目标租户发起的访问请求,根据所述租户信息,从所述路由服务器中获取所述目标租户的路由信息,并根据所述目标租户可访问的至少一个所述应用服务器的运行状态,确定待访问的目标应用服务器,并向所述目标应用服务器发送访问指令,接收所述目标应用服务器发送的访问结果,并向所述目标租户发送所述访问结果;
所述应用服务器用于接收所述入口服务器发送的访问指令,根据所述目标应用服务器对应的数据库服务器的标识,向所述目标应用服务器对应的数据库服务器发送数据查询请求,并接收所述数据库服务器发送的数据访问结果,并将所述数据访问结果发送给所述入口服务器;
所述路由服务器用于接收入口服务器发送的路由记录请求,并根据所述路由记录请求,生成并保存所述新租户的路由信息。
第五方面,本申请实施例提供了一种服务器,所述服务器包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当所述服务器运行时,所述处理器与所述存储器之间通过总线通信,所述处理器执行所述机器可读指令,以执行如前述实施例中任一项所述的多租户平台的数据访问方法的步骤。
第六方面,一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时,实现如前述实施例中任一项所述的多租户平台的数据访问方法的步骤。
本申请实施例的有益效果包括:
采用本申请提供的多租户平台的数据访问方法、多租户平台及服务器,首先,本申请提供的多租户平台包括相互之间物理隔离的多个数据库服务器组,每个数据库服务器组包括多个数据库服务器,使得不同数据库服务器对应的租户的数据实现了物理隔离。还在各数据库服务器上分别建立了多个数据库,对应于多个租户,使得各租户之间的数据实现了逻辑隔离,保证了租户数据的安全性。其次,由于各数据库服务器上都存储了至少一个租户的数据,提高了数据库服务器的利用率,避免了服务器资源的浪费。最后,在本申请实施例提供的多租户平台中,各租户对应的入口服务器皆为同一入口服务器,该入口服务器通过路由服务器获取得到了租户与应用服务器、数据库服务器的对应关系,降低了服务提供方对于平台的维护难度,同时也便于对用户的管理。
另外,当已有的数据库服务器、应用服务器无法满足新用户的需求时,服务提供方可以仅通过在路由服务器中,增加对应的路由信息的方式,快速的实现热扩容,而无需在配置方面做其他的处理,使得多租户平台的可持续发展性升高。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为现有技术中多租户平台的结构示意图;
图2为本申请实施例提供的多租户平台的结构示意图;
图3为本申请实施例提供的多租户平台的数据访问方法的步骤流程示意图;
图4为本申请实施例提供的多租户平台的数据访问方法的又一步骤流程示意图;
图5为本申请实施例提供的多租户平台的数据访问方法的又一步骤流程示意图;
图6为本申请实施例提供的多租户平台的数据访问方法的又一步骤流程示意图;
图7为本申请实施例提供的多租户平台的数据访问方法的又一步骤流程示意图;
图8为本申请实施例提供的多租户平台的数据访问方法的又一步骤流程示意图;
图9为本申请实施例提供的多租户平台的数据访问方法的又一步骤流程示意图;
图10为本申请实施例提供的应用于入口服务器的多租户平台的数据访问装置的结构示意图;
图11为本申请实施例提供的应用于应用服务器的多租户平台的数据访问装置的结构示意图;
图12为本申请实施例提供的应用于路由服务器的多租户平台的数据访问装置的结构示意图;
图13为本申请实施例提供的服务器的结构示意图。
图标:101-入口服务器;1011-第一入口服务器;1012-第K入口服务器;102-路由服务器;103-第一应用服务器组;1031-第一应用服务器;1032-第二应用服务器;104-第二应用服务器组;1041-第三应用服务器;1042-第四应用服务器;105-第S应用服务器组;1051-第M-1应用服务器;1052-第M应用服务器;106-第一数据库服务器组;1061-第一数据库服务器;1062-第二数据库服务器;1063-第三数据库服务器;107-第二数据库服务器组;1071-第四数据库服务器;1072-第五数据库服务器;1073-第六数据库服务器;108-第S数据库服务器组;1081-第N-2数据库服务器;1082-第N-1数据库服务器;1083-第N数据库服务器;90-应用于入口服务器的多租户平台的数据访问装置;9001-第一接收模块;9002-获取模块;9003-第一确定模块;9004-第一发送模块;100-应用于应用服务器的多租户平台的数据访问装置;1001-第二接收模块;1002-第二发送模块;110-应用于路由服务器的多租户平台的数据访问装置;1101-第三接收模块;1102-第二确定模块;2001-处理器;2002-存储器。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
此外,若出现术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
需要说明的是,在不冲突的情况下,本申请的实施例中的特征可以相互结合。
SaaS是一种软件架构技术,专为网络交付而设计,用于实现通过一个SaaS平台同时为一个或者多个租户提供服务,便于租户通过互联网托管、部署及接入。SaaS平台服务提供方将应用软件统一部署在自己的服务器上,租户可以根据工作实际需求,通过互联网向服务提供方定购所需的应用软件服务,按定购的服务多少和时间长短向服务提供方支付费用,并通过互联网获得SaaS平台服务提供方提供的服务。
为了保证租户的数据隔离,目前,SaaS平台的数据隔离主要有共享部署方式以及专有部署方式两种。如图1所示,这两种部署方式都会在SaaS平台部署多套供租户访问的系统,其中,第一套系统包括第一入口服务器1011、第一应用服务器1031以及第一数据库服务器1061,第S套系统与第一套系统设备组成结构相同,包括第K入口服务器1012、第M应用服务器1052以及第N数据库服务器1083。这两种部署方式的区别在于,对于SaaS平台的其中一套系统,对应于租户的数量不同。以第一套系统为例,共享部署方式是多个租户共享一套由第一入口服务器1011、第一应用服务器1031以及第一数据库服务器1061组成的SaaS平台的共享系统,多个租户都通过同第一入口服务器1011进入后,通过第一应用服务器1031进行数据处理。多租户的数据都存储在第一数据库服务器1061的同一数据库中,各租户之间通过租户的身份标识号(Identity document,简称ID)访问第一数据库服务器1061中各自对应的表,进行数据访问。专有部署方式中,租户使用独占的一套包括第一入口服务器1011、第一应用服务器1031以及第一数据库服务器1061的SaaS平台的一套专有系统,该系统的第一入口服务器1011仅用于响应该租户的数据访问请求,第一数据库服务器1061仅用于存储该租户的数据,通过各自独立的数据库,实现了各租户间的物理数据隔离。
但是,共享部署方式中,不同租户间的数据隔离等级过低,仅通过ID进行隔离的方式可能会导致数据泄露。专有部署方式中,虽然实现了完全的物理隔离,但是专有系统仅用于服务该租户,也会造成服务器资源的浪费。并且,上述两种部署方式中,由于大多数租户对应的入口服务器并不相同,在租户数量不断增长的情况下,服务提供方投入的技术成本和维护成本将越来越高,系统的稳定性和性能将难以保障。
基于上述问题,申请人经研究,提出了一种多租户平台的数据访问方法、多租户平台及服务器,能够仅通过一台入口服务器、一台路由服务器以及本申请实施例提供的数据访问方法,使得该多租户SaaS平台的每个租户,都能够经由同一入口服务器,找到各自对应的路由服务器以及数据库服务器。既保证了多租户间的数据隔离,又提高了SaaS平台中各服务器的利用率。
如下结合多个具体的应用示例,对本申请实施例提供的一种多租户平台的数据访问方法、多租户平台及服务器进行解释说明。
图2所示为本申请实施例提供的多租户平台的结构示意图,如图2所示,该多租户平台包括:入口服务器101、路由服务器102、多个应用服务器组以及与各应用服务器组对应的多个数据库服务器组,各应用服务器组中分别包括多个应用服务器,各数据库服务器中分别包括多个数据库服务器,各应用服务器组与对应的数据库服务器组之间通信连接,各应用服务器组之间相互隔离,且各数据库服务器组之间相互隔离,入口服务器与各应用服务器组通信连接,路由服务器与入口服务器相连接。
上述多个应用服务器以及多个数据库服务器都被划分为多组,各应用服务器组与各个数据库服务器组之间具有对应关系,每个应用服务器组上部署有处理程序,仅用于处理对应于该应用服务器组的数据库服务器的租户的访问指令。每应用服务器组包含至少一个应用服务器,各数据库服务器组包含至少一个数据库服务器,各组包含的应用服务器、数据库服务器的数量可以相同也可以不同,本申请在此不做限定。
以每个应用服务器组均包含2个应用服务器、各数据库服务器均包含3个数据库服务器为例,可以将M个应用服务器划分为S组,其中,第一应用服务器组103包括第一应用服务器1031、第二应用服务器1032,第二应用服务器组104包括第三应用服务器1041、第四应用服务器1042,以此类推,最后一组第S应用服务器组105包括第M-1应用服务器1051以及第M应用服务器1052。N个数据库服务器的划分方式与M个应用服务器相同,其中,第一数据库服务器组106包括第一数据库服务器1061、第二数据库服务器1062以及第三数据库服务器1063,第二数据库服务器组107包括第四数据库服务器1071、第五数据库服务器1072以及第六数据库服务器1073,以此类推,第S数据库服务器组108包括第N-2数据库服务器1081、第N-1数据库服务器1082以及第N数据库服务器1083。其中,第一应用服务器组103与第一数据库服务器组106通信连接,第二应用服务器组104与第二数据库服务器组107通信连接,以此类推,第S应用服务器组105与第S数据库服务器组108通信连接。
可以理解的是,每个数据库服务器上通过关系型数据库服务(RelationalDatabase Service,简称RDS)方式建立了多个相互独立的数据库,可以用于存储多个租户的数据。同时,由于一个租户的数据只能存储在一个数据库中,因此,一个应用服务器、一个应用服务器组、以及一个数据库服务器组中的其中一个数据库服务器可以组成一套系统,用于至少一个租户的数据存储。
入口服务器101用于接收目标租户发起的访问请求,根据租户信息,从路由服务器102中获取目标租户的路由信息,并根据目标租户可访问的至少一个应用服务器的运行状态,确定待访问的目标应用服务器,并向目标应用服务器发送访问指令,接收目标应用服务器发送的访问结果,并向目标租户发送访问结果。
应用服务器用于接收入口服务器101发送的访问指令,根据目标应用服务器对应的数据库服务器的标识,向目标应用服务器对应的数据库服务器发送数据查询请求,并接收数据库服务器发送的数据访问结果,并将数据访问结果发送给入口服务器101。
路由服务器102用于接收入口服务器101发送的路由记录请求,并根据路由记录请求,生成并保存新租户的路由信息。
下面,将对已注册的用户的数据访问流程进行说明。
当有已注册的目标租户向该SaaS平台发起访问请求时,入口服务器101收到该访问请求后,对该访问请求进行解析,得到访问请求中包含的目标租户的租户信息以及待访问数据的标识。
然后,入口服务器101向路由服务器102发送带有上述租户信息的路由查询请求,路由服务器102根据租户信息,查询自身存储的路由表得到路由信息,并将该路由信息发送至入口服务器101。该路由信息是路由表中的一条数据,包括:该租户的租户信息、对应的一个应用服务器组的多个网络地址以及存储了该租户数据的数据库服务器的标识。示例性地,若该租户对应的应用服务器为第一应用服务器组103,存储该租户的数据库服务器为第三数据库服务器1063,那么此时路由信息可以为第一应用服务器1031的网络地址、第二应用服务器1032的网络地址以及第三数据库服务器1063的标识,例如,第三数据库服务器1063的名称RDS-2。
接下来,入口服务器101收到路由信息后,根据预设的负载均衡算法,确定其中当前某一数据处理量最低的应用服务器进行数据处理,示例性地,可以为第二应用服务器1032。入口服务器101根据第二应用服务器1032的网络地址,向第二应用服务器1032发送访问指令,该访问指令中包括:目标租户的租户信息,例如,租户ID,待访问数据的标识,例如,可以是待统计数据的名称,以及第三数据库服务器1063的标识,如上述实施例中所述,可以是RDS-3。
第二应用服务器1032收到上述访问指令后,根据访问指令中的第三数据库服务器1063的标识,确定RDS-3对应的第三数据库服务器1063的网络地址。并根据该网络地址,向第三数据库服务器1063发送数据查询请求,例如,该数据查询请求可以包括:待访问数据某一条某一字段的内容、该条数据另一待查询字段的字段名,以及租户的租户信息等,当然,不以此为限。
第三数据库服务器1063根据数据查询请求完成数据查询后,将查询结果、租户信息等合成数据访问结果报文,并将该报文发送至第二应用服务器1032。
第二应用服务器1032根据第三数据库服务器1063发送的数据访问结果,根据上述访问指令,确定是否需要进行再次数据处理,例如,统计等。并将处理后或者未处理的数据,以及租户信息,一起转发给入口服务器101。
入口服务器101收到第二应用服务器1032发送的数据后,根据租户信息,将其发送至目标租户。
需要说明的是,当有新租户的注册请求发送至入口服务器101时,入口服务器101将首先查询自身存储的各数据库服务器的存储信息表,根据该表中各数据库服务器的存储信息,也就是当前各数据库服务器已存储的数据量,与各数据库的最大可承载量相比,确定各数据库服务器的当前可存储量。再将新租户的注册请求中包含的请求存储量与上述各服务器的当前可存储量相比较,为该新租户分配一个当前可存储量与请求存储量最接近的数据库服务器,例如,第四数据库服务器1071。
入口服务器101确定对应的第四数据库服务器1071后,将第四数据库服务器1071的标识,示例性地,可以是RDS-4,以及租户的租户信息,例如,租户ID,发送至路由服务器102,路由服务器102根据RDS-4,确定第四数据库服务器1071所属的数据库服务器组,进一步地,确定与其对应的应用服务器组,如图2所示,可以是第二应用服务器组104,并将该应用服务器组的中各应用服务器的网络地址、第四数据库服务器1071的标识,以及租户信息写入路由服务器102。
可选地,在上述为新租户分配数据库服务器的过程中,若入口服务器101无法找到满足租户的请求存储量的数据库服务器,则需将新增一组应用服务器以及一个数据库服务器组,并将该数据库服务器组中其中之一分配给目标租户。对于新增的应用服务器、数据库服务器,需通过如下过程进行配置:
首先,为各应用服务器配置该SaaS所在网段的网络地址,为各数据库服务器按照预设的规则赋予标识。并在各应用服务器中,配置各数据库服务器的网络地址与标识之间的映射关系,建立各应用服务器与各数据库服务器之间的通信连接。
然后,对各数据库服务器以及应用服务器进行初始化,应用数据库部署与其他各应用数据库相同的处理程序,数据库服务器根据租户信息,进行数据库的建立,以及空白表的初始化。
最后,在路由服务器102中,由工作人员写入一条路由信息,包括数据库的标识、对应的应用服务器的网络地址等信息,本申请在此不做限定。同时,在入口服务器101的存储信息表中,写入新增的多个数据库服务器的可存储量。这样,在各数据库服务器的当前可存储量均小于新租户的请求存储量时,入口服务器101将为其分配其中某一新增数据库服务器作为其存储数据的目标数据库服务器。
图3为本申请实施例提供的多租户平台的数据访问方法的步骤流程示意图,该方法的执行主体可以是上述多租户平台的入口服务器,该入口服务器可以是具有计算处理能力的远程服务器,例如,云服务器。如图3所示,当已注册的用户向该多租户平台发起访问请求时,该方法包括如下步骤:
S201,接收目标租户发起的访问请求。
其中,访问请求中包括目标租户的租户信息以及待访问数据的标识,租户信息包括:租户的标识。
可选地,租户的标识可以是根据预先规则为租户命名的唯一的租户ID,例如,可以是company-1。目标租户通过其租户的标识在入口服务器登录后,可以向入口服务器发送访问请求。入口服务器可以根据目标租户的租户ID与存储在自身存储器中的合法用户ID表中的ID比较,确定发出访问请求的目标租户的租户ID是否合法。
访问请求中不仅包含目标租户的租户信息,还包括待访问数据的标识。该待访问数据的标识可以包括:目标租户需处理的数据的类型,例如,增加数据、删除数据、修改数据以及查询数据等,还可以包括进行处理的数据的字段或者内容。例如,若目标租户想增加一条其客户购买商品的付款记录,则该目标租户发送的访问请求中可以包括:需处理数据的类型为增加数据,增加的内容为:客户的标识、付款的时间、付款的金额、付款的商品以及商品的数量、客户的地址等信息,本申请在此不做限定。
S202,根据租户信息,从路由服务器中获取目标租户的路由信息。
其中,路由信息包括:目标租户的租户信息、目标租户可访问的至少一个应用服务器的网络地址以及至少一个应用服务器对应的数据库服务器的标识,其中,同一租户可访问的应用服务器归属于同一应用服务器组。
需要说明的是,入口服务器可以根据租户信息中的租户的标识,从路由服务器中获取该租户的路由信息。
如前述实施例中所述,一个数据库服务器组中包含多个数据库服务器,一个应用服务器组中包含多个应用服务器,每应用服务器组仅用于处理对应的数据库服务器的租户的访问请求。因此,路由信息可以包括,目标租户的租户信息,以及目标租户对应的数据库服务器的标识,以及用于处理该数据库服务器的一应用服务器组中多个应用服务器的网络地址。
可以理解的是,数据库服务器的标识可以在路由服务器初始化时,按照预设的数据库服务器命名规则命名的唯一ID,例如,对于第一数据库,其数据库标识可以是RDS-1。另外,网络地址可以是应用服务器的网际互连协议(Internet Protocol,简称IP)地址。
S203,根据目标租户可访问的至少一个应用服务器的运行状态,确定待访问的目标应用服务器,并向目标应用服务器发送访问指令。
其中,访问指令中包括:目标租户的租户信息、待访问数据的标识以及目标应用服务器对应的数据库服务器的标识。
入口服务器可以根据负载均衡算法,根据上述路由服务器返回的多个应用服务器的运行状态,确定其中之一为目标应用服务器,例如,可以将当前数据处理量最低的一个应用服务器作为目标应用服务器。
确定了目标应用服务器后,入口服务器读取目标应用服务器的,目标网络地址,向具有目标网络地址的目标服务器发送访问指令。访问指令中可以包括:上述租户信息,可以是租户的标识,还有待访问的数据的标识,如上述实施例中所述,可以是目标租户需处理的数据的类型、进行处理的数据的字段或者内容,还可以包括目标应用服务器对应的数据库服务器的标识,例如,目标租户对应的目标数据库服务器的名称。
S204,接收目标应用服务器发送的访问结果,并向目标租户发送访问结果。
最后,应用服务器根据自身配置的目标数据库的名称,对待访问的数据的标识进行处理,得到待访问的字段的信息或者进行数据处理的动作,并在相应的数据库服务器中进行数据处理,处理完成后,将访问结果发送至目标租户。
需要说明的是,在每一数据库服务器上,RDS建立了RDS实例,每个RDS实例中可以建立多个数据库(Database),每个Database用于存储多个租户的数据,各租户间实现了多租户间数据的逻辑隔离。同时,对应于不同数据库服务器的租户,实现了数据的物理隔离。
可选地,上述数据库服务器的标识与其网络地址的对应关系,可以存储在路由数据库中,也可以存储在入口服务器中,还可以存储在其对应的应用服务器组中,本申请在此不做限定。
在本实施例中,实现了多租户间数据的物理隔离与逻辑隔离,保证了租户数据的安全性。由于各数据库服务器上可以通过RDS,在保证多租户间数据隔离的前提下,存储多个租户的数据,提高了数据库服务器的利用率,避免了服务器资源的浪费。另外,各租户对应的入口服务器皆为同一入口服务器,该入口服务器通过路由服务器获取得到了租户与应用服务器、数据库服务器的对应关系,降低了服务提供方对于平台的维护难度,同时也便于对用户的管理。
可选地,如图4所示,上述步骤202中,根据租户信息,从路由服务器中获取目标租户的路由信息,可以由下述步骤S301至S302实现:
S301,向路由服务器发送路由查询请求,路由查询请求包括:租户信息。
入口服务器可以根据租户信息中的租户的标识,向路由服务器发送带有该租户的标识的路由查询请求。
S302,接收路由服务器发送的路由信息。
路由服务器是用于存储租户的标识、各对应的应用服务器的路由信息、数据库服务器标识等各设备对应关系的路由表的服务器。路由服务器收到入口服务器发送的路由查询请求后,可以根据租户的标识查询路由表,并将路由表中该租户对应的多个应用服务器的网络地址,以及数据库服务器的标识发送至入口服务器。
在本实施例中,入口服务器通过路由服务器获得了对应的路由信息,并通过路由信息寻路至对应的应用服务器以及数据库服务器。降低了入口服务器的数据存储量以及数据处理量,提升了多租户平台的响应速度,使租户具有更好的使用体验。
可选地,如图5所示,上述步骤S203中,根据目标租户可访问的至少一个应用服务器的运行状态,确定待访问的目标应用服务器,可由下述步骤S401至步骤S402实现:
S401,分别获取目标租户可访问的至少一个应用服务器中各应用服务器的负载信息。
可选地,入口服务器中可以设置一个用于记载各应用服务器当前负载信息的表格,用于实现负载均衡算法,可以根据当前的用户访问请求情况,实时对该表格进行更新。其中,负载信息用于标识当前对应的应用服务器的数据处理量。例如,入口服务器每向其中一个应用服务器发送一个访问请求,则将表格中该应用服务器的负载信息加1,每从该应用服务器收到一个访问结果,则将其负载信息减1。
示例性地,当对应于第一数据库服务器的目标租户访问请求发送至入口服务器后,入口服务器根据路由服务器发送的路由信息,确定目标租户的访问请求可由第一应用服务器或者第二应用服务器处理。此时,入口服务器可以通过查询记录各应用服务器负载信息的表格,得到第一应用服务器的数据处理量是5,第二应用服务器的数据处理量为7。
S402,从目标租户可访问的至少一个应用服务器中选择负载满足预设条件的应用服务器作为目标应用服务器。
入口服务器通过存储的记录各应用服务器当前负载信息的表格后,确定了目标租户存储数据的目标数据库服务器对应的多个应用服务器的负载情况。其中,预设条件可以是负载最小的其中一个应用服务器,入口服务器就将其作为目标应用服务器。
查询到第一应用服务器、第二应用服务器的负载后,由于第一应用服务器的负载小于第二应用服务器,入口服务器就可以将第一应用服务器作为目标服务器,并根据由路由数据库获得的第一应用服务器的网络地址,向其发送访问指令。
在本实施例中,入口服务器通过负载均衡算法,确定了处理租户访问请求的应用服务器。负载均衡能够多租户平台的各应用服务器的利用率更高,处理速度更快,避免了数据的拥挤与丢失。
可选地,参阅图6,前述实施例中的多租户平台的数据访问方法,在新租户的访问入口服务器时,还包括如下步骤:
S501,接收新租户发送的注册请求,注册请求中包括新租户的租户信息。
可以理解的是,新租户在未获得上述用户的标识的情况下,访问入口服务器后,需要进行注册。
可选地,入口服务器的访问页面可以包含“登录”、“注册”两项,新租户选择“注册”页面后,可以根据入口服务器提供的注册选项,填写注册信息,例如,新租户的标识、密码等。
S502,根据各数据库服务器的存储信息、最大可承载量和租户信息,确定新租户对应的目标数据库服务器。
如前述实施例中所述,入口服务器可以根据租户信息,以及入口服务器中存储的记录各数据库服务器的存储信息、最大可承载量的存储信息表,为新租户确定一个合适的目标数据库服务器。
其中,各数据库服务器的存储信息,可以是包含各数据库当前的存储的租户数、当前正在访问的活跃租户数以及各租户的订单总量或者总占用存储容量的存储信息表。可选地,该表可以存储在路由服务器中,也可存储在入口服务器中,在本申请实施例中,以该表存储在入口服务器中进行说明。
S503,向路由服务器发送路由记录请求,路由记录请求中包括新租户的租户信息以及目标数据库服务器的标识。
入口服务器确定了合适的目标数据库服务器后,将目标数据库服务器的标识、新租户的租户信息,一起添加进入口服务器生成的路由记录请求中,发送给路由服务器。路由服务器将在自身存储的路由表中,增加一条表项,记录新租户的租户信息、目标数据库服务器的标识,以及按照对应关系,对应的某一组多个应用服务器的网络地址。
在本实施例中,新用户自助完成注册后,多租户平台可以直接通过软件完成目标数据库服务器、目标应用服务器的分配和部署,无需服务提供方介入,提升了用户体验,降低了服务提供方的配置成本。
可选地,如图7所示,上述步骤S502中,根据各数据库服务器的存储信息、最大可承载量和租户信息,确定新租户对应的目标数据库服务器,可由下述步骤S601至S602实现:
S601,根据数据库服务器的存储信息以及最大可承载量,确定各数据库服务器的当前可存储量。
入口服务器还可以将各数据库服务器的最大承载量,例如,最多可存储租户的数量,或者最大可存储数据的容量对应记录在上述存储信息表中。入口服务器就可以根据上述存储信息表,计算得到各数据库服务器的当前可存储量,可以理解的是,当前可存储量可以是当前可以存储的租户的数量、也可以是当前可存储的数据的容量。
S602,根据数据库服务器的当前可存储量与租户信息中的请求存储量,确定目标数据库服务器。
可选地,新租户在注册时,可以填写请求存储量,也就是请求存储数据的容量。请求存储量作为租户信息中的一项数据,添加进新租户的注册请求中,发送给入口服务器。
入口服务器首先查看由存储信息表得到各数据库服务器当前可以存储的租户的数量,再查看各数据库服务器当前可存储的数据的容量。当某一数据库服务器当前可以存储的租户的数量大于等于1,且当前可存储的数据的容量大于新租户的请求存储量时,入口服务器可以将这一数据库服务器作为目标服务器,分配给新租户。
可以理解的是,入口服务器在确定目标数据库服务器时,会为各数据库服务器预留预设容量的buffer(缓冲寄存器),若新租户的请求存储量与buffer之和小于数据库服务器当前可存储的数据的容量,将不会将该数据库服务器作为目标数据库服务器。
可选地,若为新租户分配数据库服务器的过程中,若入口服务器无法找到满足租户的请求存储量的数据库服务器,则需将新增一组应用服务器以及一个数据库服务器组,并将该数据库服务器组中其中之一分配给目标租户。对于新增的应用服务器、数据库服务器,配置过程已在前述实施例中说明,在此不再赘述。
在本实施例中,多租户平台可以根据新租户的请求存储量需求,自动为新租户分配目标数据库服务器,提升了多租户平台的自动化程度。并且,随着租户数量的增加,当前的数据库服务器不满足存储需求时,服务提供方仅需经过简单的配置即可完成扩容,在不影响多租户平台性能的前提下,降低了服务提供方的技术投入和维护成本。
可选地,如图8所示,本申请实施例提供了一种多租户平台的数据访问方法,应用于多租户平台的应用服务器。如图8所示,该方法包括:
S701,接收入口服务器发送的访问指令。
其中,访问指令中包括:目标租户的租户信息、待访问数据的标识以及目标应用服务器对应的数据库服务器的标识。
可选地,目标租户的租户信息可以包括:目标租户的标识,例如,目标租户的ID。待访问数据的标识可以包括目标租户需处理的数据的类型,以及进行处理的数据的字段或者内容。数据库服务器的标识可以是按照预先规则命名的数据库名称,例如,RDS-N。
S702,根据目标应用服务器对应的数据库服务器的标识,向目标应用服务器对应的数据库服务器发送数据查询请求。
其中,数据查询请求包括:待访问数据的标识。
如前述实施例中所述,每个应用服务器组包含多台应用服务器,每台应用服务器上都装载有处理访问指令的处理程序,仅用于处理数据存储在对应组的数据库服务器的目标租户的访问指令。应用服务器上可以预先配置对应组的数据库服务器的标识与其网络地址的对应关系表,根据数据库服务器的标识,查找对应的网络地址,并向具有该网络地址的数据库服务器发送数据查询请求,查询需要的数据。
S703,接收数据库服务器发送的数据访问结果,并将数据访问结果发送给入口服务器。
应用服务器收到数据库服务器对于数据查询请求,回送的数据访问结果后,根据上述待访问数据的标识中的目标租户需处理的数据的类型,确定是否需对数据访问结果做进一步处理。例如,目标租户需处理的数据类型是增加数据,则应用服务器直接将数据库服务器返回的数据增加成功的数据访问结果返回入口服务器。若目标租户需处理的数据类型是统计某一客户的订单总款项,则应用服务器根据数据库服务器返回的该客户的总订单数量,计算对应的订单总款项,得到数据访问结果发送至入口服务器。
在本实施例中,应用服务器处理、转发目标租户的访问请求,使得数据的存储、处理分离,提高了数据处理的效率,模块式编程也更便于多租户平台的布局。
可选地,如图9所示,本申请实施例提供了一种多租户平台的数据访问方法,应用于多租户平台的路由服务器,如图9所示,该方法包括:
S801,接收入口服务器发送的路由记录请求。
其中,路由记录请求中包括:新租户的租户信息以及目标数据库服务器的标识,目标数据库服务器用于存储新租户的数据。
路由服务器可以是用于存储各租户的标识、各对应的应用服务器的路由信息、数据库服务器标识等各设备对应关系的路由表的服务器。如前述实施例中所述,新租户注册后,入口服务器将向路由服务器发送路由记录请求,将新租户的标识、为新租户分配的目标数据库服务器的标识的对应关系发送给路由服务器。
S802,根据路由记录请求,生成并保存新租户的路由信息。
其中,路由信息包括:新租户的标识、目标数据库服务器以及目标数据库服务器对应的新租户可访问的至少一个应用服务器的网络地址,其中,数据库服务器与应用服务器的对应关系预先配置完成。
路由服务器收到上述路由记录请求后,将在路由表中增加一条上述记录。并根据对应关系,将目标数据库服务器对应的某一组多个应用服务器的网络地址写入该租户对应的路由信息中。
在本实施例中,路由服务器记录了各租户的标识、应用服务器的网络地址、各数据库的标识之间的对应关系,能够降低入口服务器的存储负荷。新增的数据库服务器、应用服务器仅通过配置路由服务器即可实现多租户平台的扩容,提高了多租户平台的可扩展性。
请参阅图10,本申请实施例还提供一种应用于入口服务器的多租户平台的数据访问装置90,该装置包括:
第一接收模块9001,用于接收目标租户发起的访问请求,访问请求中包括目标租户的租户信息以及待访问数据的标识,租户信息包括:租户的标识。
获取模块9002,用于根据租户信息,从路由服务器中获取目标租户的路由信息,路由信息包括:目标租户的租户信息、目标租户可访问的至少一个应用服务器的网络地址以及至少一个应用服务器对应的数据库服务器的标识,其中,同一租户可访问的应用服务器归属于同一应用服务器组。
确定模块9003,用于根据目标租户可访问的至少一个应用服务器的运行状态,确定待访问的目标应用服务器,并向目标应用服务器发送访问指令,访问指令中包括:目标租户的租户信息、待访问数据的标识以及目标应用服务器对应的数据库服务器的标识。
第一发送模块9004,用于接收目标应用服务器发送的访问结果,并向目标租户发送访问结果。
获取模块9002具体还用于,向路由服务器发送路由查询请求,路由查询请求包括:租户信息。接收路由服务器发送的路由信息。
确定模块9003具体还用于,分别获取目标租户可访问的至少一个应用服务器中各应用服务器的负载信息。从目标租户可访问的至少一个应用服务器中选择负载满足预设条件的应用服务器作为目标应用服务器。
第一接收模块9001还用于,接收新租户发送的注册请求,注册请求中包括新租户的租户信息。
第一确定模块9003还用于,根据各数据库服务器的存储信息、最大可承载量和租户信息,确定新租户对应的目标数据库服务器。
第一发送模块9004还用于,向路由服务器发送路由记录请求,路由记录请求中包括新租户的租户信息以及目标数据库服务器的标识。
第一确定模块9003具体还用于,根据数据库服务器的存储信息以及最大可承载量,确定各数据库服务器的当前可存储量。根据数据库服务器的当前可存储量与租户信息中的请求存储量,确定目标数据库服务器。
请参阅图11,本申请实施例还提供一种应用于应用服务器的多租户平台的数据访问装置100,该装置包括:
第二接收模块1001还用于,接收入口服务器发送的访问指令,访问指令中包括:目标租户的租户信息、待访问数据的标识以及目标应用服务器对应的数据库服务器的标识。
第二发送模块1002还用于,根据目标应用服务器对应的数据库服务器的标识,向目标应用服务器对应的数据库服务器发送数据查询请求,数据查询请求包括:待访问数据的标识。
第二接收模块1001还用于,接收数据库服务器发送的数据访问结果,并将数据访问结果发送给入口服务器。
请参阅图12,本申请实施例还提供一种应用于路由服务器的多租户平台的数据访问装置110,该装置包括:
第三接收模块1101还用于,接收入口服务器发送的路由记录请求,路由记录请求中包括:新租户的租户信息以及目标数据库服务器的标识,目标数据库服务器用于存储新租户的数据。
第二确定模块1102还用于,根据路由记录请求,生成并保存新租户的路由信息,路由信息包括:新租户的标识、目标数据库服务器以及目标数据库服务器对应的新租户可访问的至少一个应用服务器的网络地址,其中,数据库服务器与应用服务器的对应关系预先配置完成。
请参阅图13,本实施例还提供一种服务器,该服务器可以是入口服务器,也可以是应用服务器,还可以是数据库服务器。该服务器包括:处理器2001、存储器2002和总线,存储器2002存储有处理器2001可执行的机器可读指令,当服务器运行时,执行上述机器可读指令,处理器2001与存储器2002之间通过总线通信,当该服务器是入口服务器时,处理器2001用于执行上述实施例中步骤201至步骤602的多租户平台的数据访问方法的步骤。当该服务器是应用服务器时,处理器2001用于执行前述实施例中步骤S701至步骤S703的多租户平台的数据访问方法的步骤,当该服务器是数据库服务器时,处理器2001用于执行前述实施例中步骤S801至步骤S802的多租户平台的数据访问方法的步骤。
存储器2002、处理器2001以及总线各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。多租户平台的数据访问系统的数据处理装置包括至少一个可以软件或固件(firmware)的形式存储于存储器2002中或固化在计算机设备的操作系统(operatingsystem,OS)中的软件功能模块。处理器2001用于执行存储器2002中存储的可执行模块,例如多租户平台的数据访问系统的数据处理装置所包括的软件功能模块及计算机程序等。
其中,存储器2002可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。
可选地,本申请还提供一种存储介质,存储介质上存储有计算机程序,计算机程序被处理器运行时执行上述方法实施例的步骤。具体实现方式和技术效果类似,这里不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考方法实施例中的对应过程,本申请中不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (9)
1.一种多租户平台的数据访问方法,其特征在于,应用于多租户平台的入口服务器,所述多租户平台包括:所述入口服务器、路由服务器、多个应用服务器组以及与各应用服务器组对应的多个数据库服务器组,各应用服务器组中分别包括多个应用服务器,各数据库服务器组中分别包括多个数据库服务器,各应用服务器组与对应的数据库服务器组之间通信连接,各应用服务器组之间相互隔离,且各数据库服务器组之间相互隔离,所述入口服务器与各应用服务器组通信连接,所述路由服务器与所述入口服务器相连接;
所述方法包括:
接收目标租户发起的访问请求,所述访问请求中包括所述目标租户的租户信息以及待访问数据的标识,所述租户信息包括:租户的标识;
根据所述租户信息,从所述路由服务器中获取所述目标租户的路由信息,所述路由信息包括:所述目标租户的租户信息、所述目标租户可访问的至少一个应用服务器的网络地址以及所述至少一个应用服务器对应的数据库服务器的标识,其中,同一租户可访问的应用服务器归属于同一应用服务器组;
根据所述目标租户可访问的至少一个所述应用服务器的运行状态,确定待访问的目标应用服务器,并向所述目标应用服务器发送访问指令,所述访问指令中包括:所述目标租户的租户信息、所述待访问数据的标识以及所述目标应用服务器对应的数据库服务器的标识;
接收所述目标应用服务器发送的访问结果,并向所述目标租户发送所述访问结果;
所述根据所述目标租户可访问的至少一个应用服务器的运行状态,确定待访问的目标应用服务器,包括:
分别获取所述目标租户可访问的至少一个应用服务器中各应用服务器的负载信息;
从所述目标租户可访问的至少一个应用服务器中选择负载满足预设条件的应用服务器作为所述目标应用服务器;
其中,入口服务器中设置一个用于记载各应用服务器当前负载信息的表格,用于实现负载均衡算法,根据当前的用户访问请求情况,实时对该表格进行更新,其中,负载信息用于标识当前对应的应用服务器的数据处理量。
2.根据权利要求1所述的多租户平台的数据访问方法,其特征在于,所述根据所述租户信息,从所述路由服务器中获取所述目标租户的路由信息,包括:
向所述路由服务器发送路由查询请求,所述路由查询请求包括:所述租户信息;
接收所述路由服务器发送的所述路由信息。
3.根据权利要求1-2任一项所述的多租户平台的数据访问方法,其特征在于,所述方法还包括:
接收新租户发送的注册请求,所述注册请求中包括所述新租户的租户信息;
根据各数据库服务器的存储信息、最大可承载量和租户信息,确定所述新租户对应的目标数据库服务器;
向所述路由服务器发送路由记录请求,所述路由记录请求中包括所述新租户的租户信息以及所述目标数据库服务器的标识。
4.根据权利要求3所述的多租户平台的数据访问方法,其特征在于,所述根据各数据库服务器的存储信息、最大可承载量和租户信息,确定所述新租户对应的目标数据库服务器,包括:
根据所述数据库服务器的存储信息以及最大可承载量,确定各所述数据库服务器的当前可存储量;
根据所述数据库服务器的当前可存储量与所述租户信息中的请求存储量,确定所述目标数据库服务器。
5.一种多租户平台的数据访问方法,其特征在于,应用于多租户平台的应用服务器,所述多租户平台包括:入口服务器、路由服务器、多个应用服务器组以及与各应用服务器组对应的多个数据库服务器组,各应用服务器组中分别包括多个应用服务器,各数据库服务器组中分别包括多个数据库服务器,各应用服务器组与对应的数据库服务器组之间通信连接,各应用服务器组之间相互隔离,且各数据库服务器组之间相互隔离,所述入口服务器与各应用服务器组通信连接,所述路由服务器与所述入口服务器相连接;
所述方法包括:
接收所述入口服务器发送的访问指令,所述访问指令中包括:目标租户的租户信息、待访问数据的标识以及目标应用服务器对应的数据库服务器的标识;
根据所述目标应用服务器对应的数据库服务器的标识,向所述目标应用服务器对应的数据库服务器发送数据查询请求,所述数据查询请求包括:所述待访问数据的标识;
接收所述数据库服务器发送的数据访问结果,并将所述数据访问结果发送给所述入口服务器;
所述入口服务器用于接收所述目标应用服务器发送的所述数据访问结果,并向所述目标租户发送所述数据访问结果;
所述访问指令中的所述目标应用服务器是根据所述目标租户可访问的至少一个所述应用服务器的运行状态确定得到的,具体包括:
所述入口服务器分别获取所述目标租户可访问的至少一个应用服务器中各应用服务器的负载信息;
所述入口服务器从所述目标租户可访问的至少一个应用服务器中选择负载满足预设条件的应用服务器作为所述目标应用服务器;负载信息用于标识当前对应的应用服务器的数据处理量。
6.一种多租户平台的数据访问方法,其特征在于,应用于多租户平台的路由服务器,所述多租户平台包括:入口服务器、所述路由服务器、多个应用服务器组以及与各应用服务器组对应的多个数据库服务器组,各应用服务器组中分别包括多个应用服务器,各数据库服务器组中分别包括多个数据库服务器,各应用服务器组与对应的数据库服务器组之间通信连接,各应用服务器组之间相互隔离,且各数据库服务器组之间相互隔离,所述入口服务器与各应用服务器组通信连接,所述路由服务器与所述入口服务器相连接;
所述方法包括:
所述入口服务器用于接收新租户发起的访问请求,所述访问请求中包括新租户的租户信息以及待访问数据的标识,所述租户信息包括:租户的标识;
所述路由服务器接收入口服务器发送的路由记录请求,所述路由记录请求中包括:新租户的租户信息以及目标数据库服务器的标识,所述目标数据库服务器用于存储所述新租户的数据;
所述路由服务器根据所述路由记录请求,生成并保存所述新租户的路由信息,所述路由信息包括:所述新租户的标识、所述目标数据库服务器以及所述目标数据库服务器对应的所述新租户可访问的至少一个应用服务器的网络地址,其中,数据库服务器与应用服务器的对应关系预先配置完成;
所述入口服务器用于根据所述新租户可访问的至少一个所述应用服务器的运行状态,确定待访问的目标应用服务器,并向所述目标应用服务器发送访问指令,所述访问指令中包括:所述新租户的租户信息、所述待访问数据的标识以及所述目标应用服务器对应的数据库服务器的标识;
所述入口服务器用于接收所述目标应用服务器发送的访问结果,并向所述新租户发送所述访问结果;
其中,所述根据所述新租户可访问的至少一个应用服务器的运行状态,确定待访问的目标应用服务器,包括:
所述入口服务器用于分别获取所述新租户可访问的至少一个应用服务器中各应用服务器的负载信息;
所述入口服务器用于从所述新租户可访问的至少一个应用服务器中选择负载满足预设条件的应用服务器作为所述目标应用服务器;
其中,入口服务器中设置一个用于记载各应用服务器当前负载信息的表格,用于实现负载均衡算法,根据当前的用户访问请求情况,实时对该表格进行更新,其中,负载信息用于标识当前对应的应用服务器的数据处理量。
7.一种多租户平台,其特征在于,所述多租户平台包括:入口服务器、路由服务器、多个应用服务器组以及与各应用服务器组对应的多个数据库服务器组,各应用服务器组中分别包括多个应用服务器,各数据库服务器组中分别包括多个数据库服务器,各应用服务器组与对应的数据库服务器组之间通信连接,各应用服务器组之间相互隔离,且各数据库服务器组之间相互隔离,所述入口服务器与各应用服务器组通信连接,所述路由服务器与所述入口服务器相连接;
所述入口服务器用于接收目标租户发起的访问请求,根据租户信息,从所述路由服务器中获取所述目标租户的路由信息,并根据所述目标租户可访问的至少一个所述应用服务器的运行状态,确定待访问的目标应用服务器,并向所述目标应用服务器发送访问指令,接收所述目标应用服务器发送的访问结果,并向所述目标租户发送所述访问结果;
所述应用服务器用于接收所述入口服务器发送的访问指令,根据所述目标应用服务器对应的数据库服务器的标识,向所述目标应用服务器对应的数据库服务器发送数据查询请求,并接收所述数据库服务器发送的数据访问结果,并将所述数据访问结果发送给所述入口服务器;
所述路由服务器用于接收入口服务器发送的路由记录请求,并根据所述路由记录请求,生成并保存新租户的路由信息;
所述入口服务器具体用于:
分别获取所述目标租户可访问的至少一个应用服务器中各应用服务器的负载信息;
从所述目标租户可访问的至少一个应用服务器中选择负载满足预设条件的应用服务器作为所述目标应用服务器;
其中,入口服务器中设置一个用于记载各应用服务器当前负载信息的表格,用于实现负载均衡算法,根据当前的用户访问请求情况,实时对该表格进行更新,其中,负载信息用于标识当前对应的应用服务器的数据处理量。
8.一种服务器,其特征在于,所述服务器包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当所述服务器运行时,所述处理器与所述存储器之间通过总线通信,所述处理器执行所述机器可读指令,以执行如权利要求1-6任一项所述的多租户平台的数据访问方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时,实现权利要求1-6中任一项所述的多租户平台的数据访问方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210141332.6A CN114765630B (zh) | 2022-02-16 | 2022-02-16 | 多租户平台的数据访问方法、多租户平台及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210141332.6A CN114765630B (zh) | 2022-02-16 | 2022-02-16 | 多租户平台的数据访问方法、多租户平台及服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114765630A CN114765630A (zh) | 2022-07-19 |
CN114765630B true CN114765630B (zh) | 2024-04-26 |
Family
ID=82364821
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210141332.6A Active CN114765630B (zh) | 2022-02-16 | 2022-02-16 | 多租户平台的数据访问方法、多租户平台及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114765630B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115391828A (zh) * | 2022-10-31 | 2022-11-25 | 泰豪软件股份有限公司 | 基于微服务架构的多租户平台的数据隔离方法及系统 |
CN118484796A (zh) * | 2024-07-15 | 2024-08-13 | 宁波安得智联科技有限公司 | SaaS平台的租户权限管理方法、系统、设备及介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106503163A (zh) * | 2016-10-31 | 2017-03-15 | 用友网络科技股份有限公司 | 基于SaaS应用的全局配置多租户动态数据源系统 |
CN107493331A (zh) * | 2017-08-16 | 2017-12-19 | 网宿科技股份有限公司 | 一种客户端访问方法、服务器及系统 |
WO2018188437A1 (zh) * | 2017-04-13 | 2018-10-18 | 华为技术有限公司 | 一种多租户数据隔离方法、装置及系统 |
CN110188307A (zh) * | 2019-05-31 | 2019-08-30 | 东信和平科技股份有限公司 | 一种多租户数据隔离方法、服务器及系统 |
CN110719263A (zh) * | 2019-09-17 | 2020-01-21 | 平安科技(深圳)有限公司 | 多租户dns安全管理方法、装置及存储介质 |
CN111491012A (zh) * | 2020-03-27 | 2020-08-04 | 北京尚医智信健康管理有限公司 | SaaS多租户数据隔离访问方法、装置、电子设备及存储介质 |
CN111814177A (zh) * | 2020-06-28 | 2020-10-23 | 中国建设银行股份有限公司 | 基于微服务的多租户数据处理方法、装置、设备及系统 |
CN112860451A (zh) * | 2021-01-21 | 2021-05-28 | 中国建设银行股份有限公司 | 一种基于SaaS的多租户数据处理方法和装置 |
CN113190529A (zh) * | 2021-04-29 | 2021-07-30 | 电子科技大学 | 一种适用MongoDB数据库的多租户数据共享存储系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10601804B2 (en) * | 2017-12-11 | 2020-03-24 | International Business Machines Corporation | Provide access to data storage services in a network environment |
-
2022
- 2022-02-16 CN CN202210141332.6A patent/CN114765630B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106503163A (zh) * | 2016-10-31 | 2017-03-15 | 用友网络科技股份有限公司 | 基于SaaS应用的全局配置多租户动态数据源系统 |
WO2018188437A1 (zh) * | 2017-04-13 | 2018-10-18 | 华为技术有限公司 | 一种多租户数据隔离方法、装置及系统 |
CN108737325A (zh) * | 2017-04-13 | 2018-11-02 | 华为技术有限公司 | 一种多租户数据隔离方法、装置及系统 |
CN107493331A (zh) * | 2017-08-16 | 2017-12-19 | 网宿科技股份有限公司 | 一种客户端访问方法、服务器及系统 |
CN110188307A (zh) * | 2019-05-31 | 2019-08-30 | 东信和平科技股份有限公司 | 一种多租户数据隔离方法、服务器及系统 |
CN110719263A (zh) * | 2019-09-17 | 2020-01-21 | 平安科技(深圳)有限公司 | 多租户dns安全管理方法、装置及存储介质 |
CN111491012A (zh) * | 2020-03-27 | 2020-08-04 | 北京尚医智信健康管理有限公司 | SaaS多租户数据隔离访问方法、装置、电子设备及存储介质 |
CN111814177A (zh) * | 2020-06-28 | 2020-10-23 | 中国建设银行股份有限公司 | 基于微服务的多租户数据处理方法、装置、设备及系统 |
CN112860451A (zh) * | 2021-01-21 | 2021-05-28 | 中国建设银行股份有限公司 | 一种基于SaaS的多租户数据处理方法和装置 |
CN113190529A (zh) * | 2021-04-29 | 2021-07-30 | 电子科技大学 | 一种适用MongoDB数据库的多租户数据共享存储系统 |
Also Published As
Publication number | Publication date |
---|---|
CN114765630A (zh) | 2022-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11418512B2 (en) | Method for virtual machine to access physical server in cloud computing system, apparatus, and system | |
CN114765630B (zh) | 多租户平台的数据访问方法、多租户平台及服务器 | |
US9922045B2 (en) | Data management in a multi-tenant distributive environment | |
CN107196982B (zh) | 一种用户请求的处理方法和装置 | |
US10235047B2 (en) | Memory management method, apparatus, and system | |
US8417929B2 (en) | System for selecting a server from a plurality of server groups to provide a service to a user terminal based on a boot mode indicated in a boot information from the user terminal | |
CN111404753A (zh) | 一种扁平网络配置方法、计算机设备及存储介质 | |
CN106817388B (zh) | 虚拟机、宿主机获取数据的方法、装置及访问数据的系统 | |
EP4068725A1 (en) | Load balancing method and related device | |
US10579287B2 (en) | Sharing alias addresses among logical devices | |
CN113361913A (zh) | 一种通信业务编排方法、装置、计算机设备及存储介质 | |
US20030012225A1 (en) | Network addressing method and system for localizing access to network resources in a computer network | |
JP2013186654A (ja) | ホスト提供システム及びホスト提供方法 | |
CN112148467A (zh) | 计算资源的动态分配 | |
CN112035244A (zh) | 在多租户环境中虚拟节点集群的部署 | |
CN111556123A (zh) | 一种基于边缘计算的自适应网络快速配置及负载均衡系统 | |
US11102141B2 (en) | Outbound request management | |
CN110383254A (zh) | 优化与网络节点相关联的内存映射 | |
CN114885024B (zh) | 应用实例的路由方法、装置、设备及介质 | |
CN113691575B (zh) | 通信方法、装置及系统 | |
CN101741861A (zh) | 一种数据存储方法及装置 | |
CN112241307A (zh) | 一种虚拟机创建方法、装置及相关设备 | |
WO2024165066A1 (zh) | 一种云资源容量管理方法和云管理平台 | |
CN118400339B (zh) | 一种租户管理方法、装置、控制器及存储介质 | |
CN109302505B (zh) | 数据传输方法、系统、装置和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |