CN117827940A - 一种多租户数据处理方法、装置、电子设备及存储介质 - Google Patents
一种多租户数据处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117827940A CN117827940A CN202211203236.6A CN202211203236A CN117827940A CN 117827940 A CN117827940 A CN 117827940A CN 202211203236 A CN202211203236 A CN 202211203236A CN 117827940 A CN117827940 A CN 117827940A
- Authority
- CN
- China
- Prior art keywords
- data
- thread
- processed
- tenant
- dyeing
- 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.)
- Pending
Links
- 238000003860 storage Methods 0.000 title claims abstract description 54
- 238000003672 processing method Methods 0.000 title claims abstract description 42
- 238000004043 dyeing Methods 0.000 claims abstract description 191
- 238000000034 method Methods 0.000 claims abstract description 115
- 230000008569 process Effects 0.000 claims abstract description 83
- 238000013500 data storage Methods 0.000 claims abstract description 43
- 230000004044 response Effects 0.000 claims abstract description 15
- 238000012545 processing Methods 0.000 claims description 63
- 238000012384 transportation and delivery Methods 0.000 claims description 49
- 238000010186 staining Methods 0.000 claims description 28
- 230000006870 function Effects 0.000 claims description 23
- 238000004040 coloring Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 7
- 238000002955 isolation Methods 0.000 abstract description 14
- 238000005516 engineering process Methods 0.000 description 15
- 238000013507 mapping Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 238000001514 detection method Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000013404 process transfer Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种多租户数据处理方法、装置、电子设备及存储介质,方法包括:响应于第一租户对应的第一服务请求,确定染色标识和第一待处理数据,染色标识用于唯一标识第一租户,将染色标识设置在第一线程的共享参数中,第一线程为将被运行以对第一待处理数据进行处理的线程,在运行的第一线程对第一待处理数据实施的处理为数据存储时,从第一线程的共享参数中获取染色标识,将第一待处理数据发送至染色标识对应的数据库实例,数据库实例对应的数据库为只存储第一租户的数据的数据库。本申请实施例可以基于共享服务将有数据隔离需求的租户的数据通过全链路染色标识在服务之间进行传递,在减少租户成本的基础上,实现数据存储的物理隔离。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种多租户数据处理方法、装置、电子设备及存储介质。
背景技术
随着互联网技术发展,私域流量逐渐兴起,租户对数据安全性要求越来越高,进而使得部分租户不能接受将自己的数据和别人的数据存储在同一个数据库中。
现有技术中,通常采用不同的租户通过不同的应用部署在不同的集群中,完全采用部署集群隔离。这样带来的问题是,虽然数据安全得到了保障,但是租户的成本比较高昂,很多租户都支付不起提供不同应用的服务器的费用。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种多租户数据处理方法、装置、电子设备及存储介质。技术方案如下:
一方面,提供了一种多租户数据处理方法,方法包括:
响应于第一租户对应的第一服务请求,确定染色标识和第一待处理数据;染色标识用于唯一标识第一租户;
将染色标识设置在第一线程的共享参数中;第一线程为将被运行以对第一待处理数据进行处理的线程;
在运行的第一线程对第一待处理数据实施的处理为数据存储时,从第一线程的共享参数中获取染色标识;
将第一待处理数据发送至染色标识对应的数据库实例;数据库实例对应的数据库为只存储第一租户的数据的数据库。
另一方面,提供了一种多租户数据处理装置,装置包括:
确定模块,用于响应于第一租户对应的第一服务请求,确定染色标识和第一待处理数据;染色标识用于唯一标识第一租户;
标识设置模块,用于将染色标识设置在第一线程的共享参数中;第一线程为将被运行以对第一待处理数据进行处理的线程;
标识获取模块,用于在运行的第一线程对第一待处理数据实施的处理为数据存储时,从第一线程的共享参数中获取染色标识;
处理模块,用于将第一待处理数据发送至染色标识对应的数据库实例;数据库实例对应的数据库为只存储第一租户的数据的数据库。
在一些可能的实施例中,
确定模块,用于:
接收第二服务请求;第二服务请求包括第一租户的标识;
在存在第一租户的标识对应的染色标识的情况下,将染色标识设置在第二服务请求的请求头中,得到第一服务请求;
当第一服务请求传输至服务中间件时,响应于第一服务请求,对第一服务请求进行解析,得到染色标识和第一待处理数据。
在一些可能的实施例中,
确定模块,用于:
在预设时刻触发生成定时任务的第一服务请求;第一服务请求中包括定时任务的任务参数;
对任务参数进行解析,得到染色标识;
基于第一服务请求确定定时任务对应的第一待处理数据。
在一些可能的实施例中,
第一线程对第一待处理数据实施的处理包括两个步骤;
标识获取模块,用于:
在运行的第一线程对第一待处理数据进行第一步骤处理时,调用第一步骤对应的函数对第一待处理数据进行处理,得到第一数据;
在运行的第一线程对第一数据进行第二步骤处理时,若调用第二步骤对应的函数对第一数据进行的处理为数据存储时,从第一线程的共享参数中获取染色标识。
在一些可能的实施例中,
装置还包括投递消息投递模块和投递消息检测模块:
投递消息投递模块,用于在第一服务请求指示请求的服务为消息队列服务的情况下,将染色标识设置在第一待处理数据中,得到投递消息;向共享消息队列服务器发送投递消息;
投递消息检测模块,用于在检测到共享消息队列服务器存在投递消息,从共享消息队列服务器获取投递消息;
确定模块,用于对投递消息进行解析,得到染色标识和第一待处理数据;
标识设置模块,用于将染色标识设置在第一线程的共享参数中;
标识获取模块,用于在运行的第一线程对第一待处理数据实施的处理为数据存储时,从第一线程的共享参数中获取染色标识;
处理模块,用于将第一待处理数据发送至染色标识对应的数据库实例。
在一些可能的实施例中,
装置还包括跨应用服务模块,用于:
在对第一待处理数据的处理为跨应用处理时,基于第一待处理数据生成第三服务请求;
将染色标识设置在第三服务请求的请求头中,得到第四服务请求;
向跨应用处理对应的设备发送第四服务请求。
在一些可能的实施例中,
装置还包括跨线程服务模块,用于:
将染色标识由第一线程的共享参数复制至第二线程的共享参数中;第二线程为在第一线程运行过程中,被运行对第一待处理数据进行处理的线程;第一线程为主线程,第二线程为主线程里面的子线程;
基于第二线程的共享参数中的染色标识,运行第二线程对第一待处理数据进行处理。在一些可能的实施例中,
该装置还包括子线程处理模块,用于:
将染色标识由第一线程的共享参数缓存至目标线程池的执行单元的共享参数中;目标线程池中包括在第一线程运行过程中,将被运行对第一待处理数据进行处理的线程;目标线程池包括多个第二线程;
确定目标线程池中将要运行的第二线程;
将执行单元的共享参数中的染色标识设置在第二线程的共享参数中;
基于第二线程的共享参数中的染色标识,运行第二线程对第一待处理数据进行处理;
在第二线程运行完成后,将第二线程的共享参数中的染色标识设置在执行单元的共享参数中。
在一些可能的实施例中,
确定模块,用于接收第五服务请求,第五服务请求包括第二租户的标识;在存在第二租户的标识对应的染色标识的情况下,将第五服务请求传输至服务中间件;第二租户的标识对应的染色标识为公共染色标识;响应于第五服务请求,对第五服务请求进行解析,得到第二待处理数据;
处理模块,用于在运行的第三线程对对第二待处理数据实施的处理为数据存储时,将第二待处理数据发送至共享数据库实例;共享数据库实例对应的共享数据库是为多个租户提供数据存储的数据库;多个租户包括第二租户。
在一些可能的实施例中,
第一租户的标识对应的染色标识关联的数据库和共享数据库为多个数据库集群中的一个数据库集群中,存在物理隔离的数据库。
另一方面,提供了一种电子设备,包括处理器和存储器,存储器中存储有至少一条指令或至少一段程序,至少一条指令或至少一段程序由处理器加载并执行以实现上述的多租户数据处理方法。
另一方面,提供了一种计算机可读存储介质,计算机可读存储介质中存储有至少一条指令或至少一段程序,至少一条指令或至少一段程序由处理器加载并执行以实现如上述的多租户数据处理方法。
另一方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述的多租户数据处理方法。
本发明实施例通过响应于第一租户对应的第一服务请求,确定染色标识和第一待处理数据,染色标识用于唯一标识第一租户,将染色标识设置在第一线程的共享参数中,第一线程为将被运行以对第一待处理数据进行处理的线程,在运行的第一线程对第一待处理数据实施的处理为数据存储时,从第一线程的共享参数中获取染色标识,将第一待处理数据发送至染色标识对应的数据库实例,数据库实例对应的数据库为只存储第一租户的数据的数据库。本申请实施例可以基于共享服务将有数据隔离需求的租户的数据通过全链路染色标识在服务之间进行传递,在减少租户成本的基础上,实现数据存储的物理隔离。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种实施环境的示意图;
图2是本发明实施例提供的一种多租户数据处理方法的流程示意图;
图3是本发明实施例提供的一种多租户数据处理方法的流程示意图;
图4是本发明实施例提供的一种多租户数据处理方法的流程结构示意图;
图5是本发明实施例提供的一种多租户数据处理方法的流程示意图;
图6是本发明实施例提供的一种多租户数据处理方法的流程示意图;
图7是本发明实施例提供的一种多租户数据处理方法的流程示意图;
图8是本发明实施例提供的一种多租户数据处理方法的流程结构示意图;
图9是本发明实施例提供的一种多租户数据处理方法的流程示意图;
图10是本发明实施例提供的一种多租户数据处理装置的结构框图;
图11是本发明实施例提供的一种电子设备的硬件结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
可以理解的是,在本申请的具体实施方式中,涉及到用户数据等相关的数据,当本申请以上实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
为了便于理解本公开实施例上述的技术方案及其产生的技术效果,针对本公开实施例中涉及的名词进行简单介绍:
其中,云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术(Cloudtechnology)基于云计算商业模式应用的网络技术、数据技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络***的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台***进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的***后盾支撑,只能通过云计算来实现。
云存储(cloud storage)是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储***(以下简称存储***)是指通过集群应用、网格技术以及分布存储文件***等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和服务访问功能的一个存储***。目前,存储***的存储方法为:创建逻辑卷,在创建逻辑卷时,就为每个逻辑卷分配物理存储空间,该物理存储空间可能是某个存储设备或者某几个存储设备的磁盘组成。客户端在某一逻辑卷上存储数据,也就是将数据存储在文件***上,文件***将数据分成许多部分,每一部分是一个对象,对象不仅包含数据而且还包含数据标识(ID,IDentity)等额外的数据,文件***将每个对象分别写入该逻辑卷的物理存储空间,且文件***会记录每个对象的存储位置数据,从而当客户端请求访问数据时,文件***能够根据每个对象的存储位置数据让客户端对数据进行访问。存储***为逻辑卷分配物理存储空间的过程,具体为:按照对存储于逻辑卷的对象的容量估量(该估量往往相对于实际要存储的对象的容量有很大余量)和独立冗余磁盘阵列(RAID,Redundant array of Independent Disk)的组别,预先将物理存储空间划分成分条,一个逻辑卷可以理解为一个分条,从而为逻辑卷分配了物理存储空间。
数据库(Database),简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。所谓“数据库”是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。
请参阅图1,其所示为本发明实施例提供的一种实施环境示意图,该实施环境可以包括客户端110、服务器120和数据库130。
其中,客户端110与服务器120之间以及服务器120与数据库130之间可以通过网络进行连接通信。
其中,客户端110包括但不限于手机、电脑、智能语音交互设备、智能家电、车载客户端、飞行器等。客户端110中运行有具有人机交互功能的应用程序,
服务器120可以响应于第一租户对应的第一服务请求,确定染色标识和第一待处理数据,染色标识用于唯一标识第一租户,将染色标识设置在第一线程的共享参数中,第一线程为将被运行以对第一待处理数据进行处理的线程,在运行的第一线程对第一待处理数据实施的处理为数据存储时,从第一线程的共享参数中获取染色标识,将第一待处理数据发送至染色标识对应的数据库实例,数据库实例对应的数据库为只存储第一租户的数据的数据库。本申请实施例可以基于共享服务将有数据隔离需求的租户的数据通过全链路染色标识在服务之间进行传递,在减少租户成本的基础上,实现数据存储的物理隔离。
数据库130可以包括内存数据库和基于关系型数据库,需要说明的是,本发明实施例的服务器、数据库、节点等均可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。
在一个示例性的实施方式,客户端110、服务器120和数据库130均可以是区块链***中的节点设备,能够将获取到以及生成的数据共享给区块链***中的其他节点设备,实现多个节点设备之间的数据共享。区块链***中的多个节点设备可以配置有同一条区块链,该区块链由多个区块组成,并且前后相邻的区块具有关联关系,使得任一区块中的数据被篡改时都能通过下一区块检测到,从而能够避免区块链中的数据被篡改,保证区块链中数据的安全性和可靠性。
请参阅图2,其所示为本发明实施例提供的一种多租户数据处理方法的流程示意图,该方法可以应用于图1所示的实施环境,该方法的执行主体可以是图1中的执行多租户数据处理的服务器或者服务器集群,还可以在执行多租户数据处理的客户端或者其他服务器节点。需要说明的是,本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的***或产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。具体的如图2所示,所述方法可以包括:
S201,响应于第一租户对应的第一服务请求,确定染色标识和第一待处理数据;染色标识用于唯一标识第一租户。
本申请实施例要达到的目标是:有数据隔离需求的租户可以通过较少的成本实现租户数据隔离的目标。基于此,本申请提供了基于染色标识,进行数据库的路由分发,进而使得不同租户的数据可以存储在不同的,存在物理隔离的数据库中。
本申请实施例中,服务器在响应于第一租户对应的第一服务请求,确定染色标识和第一待处理数据之前,还可以为有数据隔离需求的租户设置唯一的染色标识,并保存租户和租户对应的染色标识的映射表。
为了对本申请实施例进行清晰明了的阐述,本申请实施例假设第一租户为有数据隔离需求的租户,第二租户为没有数据隔离需求的租户。基于此,服务器可以在租户和租户对应的染色标识的映射表中增加第一租户和第一租户对应的染色标识的映射关系,比如第一租户可以用“000001”表示,第一租户对应的染色标识可以用“A”表示。
可选的,第二租户在租户和租户对应的染色标识的映射表不存在对应的染色标识。可选的,第二租户可以在租户和租户对应的染色标识的映射表存在对应的染色标识,但是多个第二租户可以共享一个染色标识。举个例子,第一个第二租户用“100001”表示,第一个第二租户对应的染色标识可以用“N”表示;第二个第二租户用“100002”表示,第二个第二租户对应的染色标识可以用“N”表示;第三个第二租户用“100003”表示,第三个第二租户对应的染色标识可以用“N”表示……也就是说,染色标识“N”是一个公共染色标识,对应的是一个共享数据库实例对应的共享数据库。
本申请实施例中,为租户提供数据存储可以是服务器可以提供的其中一个服务,服务器可以通过不同的服务中间件为租户的数据提供不同的服务,比如对数据进行存储、传输、修改、传输、分发以及按照某个排列规则进行排序等等。
可选的,在不同租户的不同服务需求下,数据存储可以是服务器为一个租户的数据提供的最后一个服务。可选的,数据存储可以是服务器为一个租户的数据提供的中间服务,该数据存储之后,服务器还可以为该数据提供其他服务。
可选的,对于一个租户的数据的服务可以是以租户的终端作为源头的,比如,租户的终端向服务器发送一个服务请求,服务器基于该服务请求对租户的数据进行处理。可选的,对于一个租户的数据的服务可以是以服务器为源头的,比如服务器自己触发的定时任务。
在一个响应于第一租户对应的第一服务请求,确定染色标识和第一待处理数据的实施例中,租户的终端可以是租户的数据的来源。请参阅图3,其所示为本发明实施例提供的一种多租户数据处理方法的流程示意图,包括:
S301中,接收第二服务请求;第二服务请求包括第一租户的标识。
可选的,服务器接收来自租户的终端的第二服务请求,其中,第二服务请求包括第一租户的标识,比如“000001”。
S303中,在存在第一租户的标识对应的染色标识的情况下,将染色标识设置在第二服务请求的请求头中,得到第一服务请求。
基于上文继续阐述,由于服务器在租户和租户对应的染色标识的映射表中增加第一租户和第一租户对应的染色标识的映射关系,因此,存在第一租户的标识对应的染色标识,且该第一租户的标识对应的染色标识用于唯一标识该第一租户。
在一种可选的实施例中,在存在第一租户的标识对应的染色标识的情况下,服务器可以将染色标识设置在第二服务请求的请求体中,得到第一服务请求。
然而,虽然在请求的请求体中设置染色标识,作为通用协议在服务器中进行传递,实现起来较为简单。但是,第一,数据处理行业应用服务很多,由于需要统一请求体的规范,可能涉及的改造面比较广,对业务侵入也比较大。第二,有些请求中请求体比较大,在服务器中进行请求传递时,频繁的解析请求体获取染色标识,对于服务器性能的损耗也比较大。第三,由于同一个线程的不同方法之间,或者不同线程之间的请求参数是不一样的,这就导致设置在请求体中的染色标识很难传递,适用范围较小。
基于此,在另一种可选的实施例中,基于服务器性能、适用范围、业务侵入性的考量,在存在第一租户的标识对应的染色标识的情况下,服务器可以将染色标识设置在第二服务请求的请求头中,得到第一服务请求。
S305中,当第一服务请求传输至服务中间件时,响应于第一服务请求,对第一服务请求进行解析,得到染色标识和第一待处理数据。
本申请实施例中,当第一服务请求传输至服务中间件时,服务器可以响应于第一服务请求,对第一服务请求进行解析,得到染色标识和第一待处理数据。
具体的,服务器可以包括服务中间件模块,该服务中间件模块包括不同的服务中间件。在业务定制层将染色标识设置在第二服务请求的请求头中,得到第一服务请求后,可以将第一服务请求发送至服务中间件模块,以使得服务器可以利用服务中间件模块对第一服务请求进行解析,得到染色标识和第一待处理数据。
请参阅图4,其所示为本发明实施例提供的一种多租户数据处理方法的流程结构示意图。可选的,服务器接收第二服务请求,将第二服务请求传输至服务器的业务定制层中,通过业务定制层的定制层确定第二服务请求携带的租户的标识为第一租户的标识。随后,业务定制层可以从存储在配置中心的租户和租户对应的染色标识的映射表中获取第一租户的标识对应的染色标识,将染色标识设置在第二服务请求的请求头中,得到第一服务请求。
可选的,上述的配置中心可以位于该业务定制层。
若服务器所在的框架为远程过程调用协议(Remote Procedure Call Protocol,RPC)框架,业务定制层在从存储在配置中心的租户和租户对应的染色标识的映射表中获取第一租户的标识对应的染色标识后,可以将第二服务请求和染色标识发送给服务中间件模块(也可以被称为中台)。在发送给服务中间件模块的过程中,在业务定制层的RPC***可以将第二服务请求和染色标识拦截下来,并将染色标识设置在第二服务请求的请求头中,得到第一服务请求。随后,将第一服务请求发送至服务中间件模块,以使得服务器可以利用服务中间件模块对第一服务请求进行解析,得到染色标识和第一待处理数据。
在另一个响应于第一租户对应的第一服务请求,确定染色标识和第一待处理数据的实施例中,服务器是数据的来源。请参阅图5,其所示为本发明实施例提供的一种多租户数据处理方法的流程示意图,包括:
S501中,在预设时刻触发生成定时任务的第一服务请求;第一服务请求中包括定时任务的任务参数。
本申请实施例中,定时任务是服务器在服务器中提前设置好的。以为第一租户设置定时任务为例,若服务器中存在3个服务容器pod,在启动定时任务的时候,服务器可以将第一租户的标识对应的染色标识注入到定时任务的任务参数中。可选的,定时任务的任务参数可以包括任务名称参数,比如Job=test_A,其中,“A”为第一租户的标识对应的染色标签。
在预设时刻,服务器执行定时任务的时候,可以触发生成定时任务的第一服务请求,该第一服务请求中包括定时任务的任务名称参数。
S503中,对任务参数进行解析,得到染色标识。
随后,服务器可以对该任务参数,比如任务名称参数进行解析,得到第一租户的标识对应的染色标识,为后续进行跨线程或者跨进程的染色标识的传递做好准备。
S505中,基于第一服务请求确定定时任务对应的第一待处理数据。
可选的,服务器可以基于第一服务请求确定该定时任务对应的第一待处理数据,比如从第一租户的数据库中取出上一周的数据。
本申请通过上述的两个例子,可以说明无论请求的源头在终端还是在服务器,为了能够对特定租户(比如第一租户)的数据进行逻辑隔离,进行全链路染色的前提就是在服务器的第一步要为数据设置染色标签。
S203,将染色标识设置在第一线程的共享参数中;第一线程为将被运行以对第一待处理数据进行处理的线程。
基于上述的图4继续阐述,本申请实施例中,基于RPC框架继续阐述,在将第一服务请求从服务器的业务定制层发送至服务中间件模块后,可以由服务中间件模块中的RPC***对第一服务请求进行拦截,从第一服务请求的请求头中提取染色标识。此时,第一服务请求由于没有了染色标识,恢复为原来的第二服务请求。接着,服务器通过服务中间件模块中的RPC***将染色标识设置在第一线程的共享参数threadlocal中,并将第二服务请求发送至处理第二服务请求的服务中间件。
S205,在运行的第一线程对第一待处理数据实施的处理为数据存储时,从第一线程的共享参数中获取染色标识。
基于上述的图4继续阐述,本申请实施例中,在处理第二服务请求的服务中间件运行第一线程对第一待处理数据的处理时,若对第一待处理数据实施的处理为数据存储,可以向分发数据的数据路由插件发送该第二服务请求,以使服务器通过该数据路由插件在获得第二服务请求(比如数据存储请求)时,可以从第一线程的共享参数中获取染色标识,为后续存储数据做好准备。
S207,将第一待处理数据发送至染色标识对应的数据库实例;数据库实例对应的数据库为只存储第一租户的数据的数据库。
本申请实施例中,服务器可以将第一待处理数据发送至染色标识对应的数据库实例;数据库实例对应的数据库为只存储第一租户的数据的数据库。
其中,数据库实例是指操作***中一系列的进程以及为这些进程所分配的内存块。数据库实例是程序,是位于用户和操作***之间的一层数据管理软件。数据库实例是访问数据库的通道。用户对数据库中的数据做任何的操作,包括数据定义、数据查询、数据维护、数据库运行控制等等都是在数据库实例下进行的,应用程序只有通过数据库实例才能和数据库打交道。通常来说一个数据库实例对应一个数据库。
数据库是指物理操作***文件或磁盘数据块的集合,比如数据文件,索引文件,结构文件。
基于上述的图4继续阐述,在服务器中的数据路由插件在获得第二服务请求(比如数据存储请求)后,可以基于第一线程的共享参数中获取的染色标识进行数据库的判断,比如,确定第一待处理数据存储的数据库为A数据库。随后,数据路由插件可以将第二服务请求发送至A数据库对应的数据库实例,由数据库实例获取第二服务请求中的第一待处理数据,并将该第一待处理数据存储至第一租户单独对应的A数据库中。其中,A数据库只能存储第一租户的数据,由此实现了服务器提供的服务共享,但是存储在单独对应的数据库中,进而保障了第一租户的数据安全。
本申请实施例中,业务定制层中的定制层除了从第二服务请求中确定第一租户的标识以及将第二服务请求和第一租户的标识对应的染色标识传输给服务中间件模块之外,还可以利用线程提供为第二服务请求中的第一待处理数据提供某些服务。在利用线程提供某些服务的时候,定制层可以将第一租户的标识对应的染色标识设置在该线程的共享参数中,使得该线程在处理第一待处理数据时,可以从共享参数中获取该第一租户的标识对应的染色标识。
在一种可选的实施例中,第一线程对第一待处理数据的处理可以包括多个步骤,即在某个颇为复杂的功能上,功能拆分时可以把该功能拆分成了数十个步骤,每个步骤用一个方法来实现。下面通过第一线程对第一待处理数据的处理包括两个步骤来说明,第一线程对第一待处理数据的处理包括更多步骤可以参考两个步骤来实施,这里赘述。
请参阅图6,其所示为本发明实施例提供的一种多租户数据处理方法的流程示意图,包括:
S2051中,在运行的第一线程对第一待处理数据进行第一步骤处理时,调用第一步骤对应的函数对第一待处理数据进行处理,得到第一数据。
本申请实施例中,在服务器中,处理第二服务请求的服务中间件在运行第一线程对第一待处理数据进行第一步骤处理时,可以调用第一步骤对应的函数(方法)对第一待处理数据进行处理,得到第一数据。其中,第一步骤处理可以是删除,修改,增加,排列等数据处理中的一项或者多项。
S2053中,在运行的第一线程对第一数据进行第二步骤处理时,若调用第二步骤对应的函数对第一数据进行的处理为数据存储时,从第一线程的共享参数中获取染色标识。
本申请实施例中,在服务器中,处理第二服务请求的服务中间件在运行第一线程对第一数据进行第二步骤处理时,若调用第二步骤对应的函数(方法)对第一数据进行的处理为数据存储时,处理第二服务请求的服务中间件从第一线程的共享参数中获取染色标识。
上述包含两个方法的第一线程为本申请的一个可选的实施方式,在实际应用过程中,可以包括包含更多方法的第一线程,且多个方法可能都需要利用到染色标识。基于此,本申请实施例可以将染色标识设置在第一线程的共享参数中,便于其中的每个方法去获取,可以提高服务执行效率。
上文提到,租户的数据存储可以是服务器提供的其中一个服务,服务器可以通过服务中间件模块中的不同的服务中间件为租户的数据提供不同的服务。本申请还提供一种消息队列服务。可选的,消息队列服务可以设置在数据存储服务前面。请参阅图7,其所示为本发明实施例提供的一种多租户数据处理方法的流程示意图,包括:
S701中,在第一服务请求指示请求的服务为消息队列服务的情况下,将染色标识设置在第一待处理数据中,得到投递消息。
本申请实施例中,在第一服务请求指示请求的服务为消息队列服务的情况下,服务器可以通过服务中间件模块中的消息队列服务中间件将染色标识设置在第一待处理数据中,该第一待处理数据也可以被称为消息,进而得到投递消息。
请参阅图8,其所示为本发明实施例提供的一种多租户数据处理方法的流程结构示意图,具体的,服务器可以在服务中间件模块中的消息队列服务中间件(图8中的服务中间件1)将第一待处理数据发送给共享消息队列服务器的过程中,通过列队***拦截下第一待处理数据,并将染色标识设置在第一待处理数据中,进而得到投递消息。
S703中,向共享消息队列服务器发送投递消息。
本申请实施例中,服务器可以通过消息队列服务中间件向共享消息队列服务器发送投递消息。结合图8阐述,在列队***拦截下第一待处理数据,并将染色标识设置在第一待处理数据中,进而得到投递消息后,可以将投递消息发送至共享消息队列服务器。
S705中,在检测到共享消息队列服务器存在投递消息,从共享消息队列服务器获取投递消息。
本申请实施例中,服务器通过消费组件(图8中的服务中间件2)在检测到共享消息队列服务器存在投递消息,可以从共享消息队列服务器获取该投递消息。
S707中,对投递消息进行解析,得到染色标识和第一待处理数据。
在一种可选的实施例中,基于业务的需求,服务器可以通过消费组件将投递消息存储至预设的数据库中。
本申请实施例中,服务器可以通过消费组件可以对投递消息进行解析,得到染色标识和第一待处理数据。
S709中,将染色标识设置在第一线程的共享参数中。
本申请实施例中,服务器可以通过消费组件将染色标识设置在第一线程的共享参数threadlocal中。结合图8具体阐述,若在消费组件获取投递信息之后,需要对投递消息中的第一待处理数据进行基于第一租户的数据的独立的存储,可以将投递信息发送至处理该服务的服务中间件(比如存储中间件)。在将投递信息发送至处理该服务的存储中间件的过程中,可以由队列***对投递消息进行拦截,从投递消息中提取染色标识。此时,投递消息由于没有了染色标识,恢复为原来的第一待处理数据。接着,服务器通过队列***将染色标识设置在第一线程的共享参数threadlocal中,并将第一待处理数据发送至处理该服务的服务中间件(存储中间件)。
S711中,在运行的第一线程对第一待处理数据实施的处理为数据存储时,从第一线程的共享参数中获取染色标识。
结合图8具体阐述,本申请实施例中,服务器在通过存储中间件运行第一线程对第一待处理数据的处理时,若对第一待处理数据的处理为数据存储,可以向分发数据的数据路由插件发送该第一待处理数据,以使服务器通过该数据路由插件在获得第一待处理数据时,可以从第一线程的共享参数中获取染色标识,为后续存储数据做好准备。
S713中,将第一待处理数据发送至染色标识对应的数据库实例。
本申请实施例中,服务器可以将第一待处理数据发送至染色标识对应的数据库实例;数据库实例对应的数据库为只存储第一租户的数据的数据库。
具体的,在服务器中的数据路由插件在获得第一待处理数据后,可以基于第一线程的共享参数中获取的染色标识确定第一待处理数据存储的数据库为A数据库。随后,数据路由插件可以将第一待处理数据发送至A数据库对应的数据库实例,由数据库实例将该第一待处理数据存储至第一租户单独对应的A数据库中。其中,A数据库只能存储第一租户的数据,由此实现了服务器提供的服务共享,但是存储在单独对应的数据库中,保障了第一租户的数据安全。
如此,服务器通过在发送消息的时候,通过生产者消息队列的***把染色标设置到消息实体里面,然后消费的时候通过消费者消息队列***把染色标设置到线程的共享参数里面,这样就完成了消息队列的染色标识的传递,保证了全链路的数据染色。
上文中消息列队服务和数据存储服务可以是一个应用中的服务。在一种的实施例中,对投递消息进行解析,得到染色标识和第一待处理数据之后,在对第一待处理数据的处理为跨应用处理时,基于第一待处理数据生成第三服务请求。将染色标识设置在第三服务请求的请求头中,得到第四服务请求,向跨应用处理对应的设备发送第四服务请求。
具体的,服务器中的消费组件可以基于第一待处理数据生成第三服务请求,该第三服务器请求包括请求头。在将第三服务请求由服务器发送至跨应用处理对应的设备时,跨应用处理对应的设备中的RPC***可以将第三服务请求拦截下来,并将染色标识设置到第三服务器的请求头中,得到第四服务请求。随后,由应用处理对应的设备中的服务中间件基于第四服务请求对第一待处理数据进行处理。
如此,服务器通过在发送消息的时候,通过生产者消息队列的***把染色标设置到消息实体里面,然后消费的时候通过消费者消息队列***把染色标设置到请求头中,实现了跨应用中间的染色标识传递,保证了全链路的数据染色。
在一种可选的实施例中,若在第一线程进行任务的过程中,比如将大量的第一待处理数据发送至染色标识对应的数据库实例的过程中,还存在其他的任务(该任务比较耗时),可以在第一线程中创建第二线程完成其他的任务,且可以将染色标识由第一线程的共享参数复制至第二线程的共享参数中,并基于第二线程的共享参数中的染色标识,运行第二线程对第一待处理数据进行处理。
其中,第一线程可以是主线程,第二线程可以是主线程里面的子线程,第二线程为在第一线程运行过程中,被运行对第一待处理数据进行处理的线程。
如此,本申请实施例可以实现染色标识的跨线程(主线程和子线程)调用,保证了全链路的数据染色。
在另一种可选的实施例中,若在第一线程进行任务的过程中,比如将大量的第一待处理数据发送至染色标识对应的数据库实例的过程中,想要异步执行其他任务,比如在几秒之后,要对第一待处理数据进行整合处理,为了避免如上一个实施例中,通过创建主线程的子线程来执行任务,造成服务器开销增大,可以使用线程池来执行任务。基于此,请参阅图7,其所示为本发明实施例提供的一种多租户数据处理方法的流程示意图,包括:
S901中,将染色标识由第一线程的共享参数缓存至目标线程池的执行单元的共享参数中;目标线程池中包括在第一线程运行过程中,将被运行对第一待处理数据进行处理的线程;目标线程池包括多个第二线程。
服务器可以将染色标识由第一线程的共享参数缓存至目标线程池的执行单元Runnable的共享参数TransmittableThreadLocal中。其中,为了更好的进行染色标识的传递,不丢失,该目标线程池为有传递功能的线程池,该执行单元Runnable为有传递功能的执行单元。
其中,目标线程池中包括在第一线程运行过程中,将被运行对第一待处理数据进行处理的线程。
可选的,该目标线程池可以包括多个第二线程。
S903中,确定目标线程池中将要运行的第二线程。
可选的,服务器可以确定目标线程池中将要运行的第二线程,该第二子线程可以是当前没有去执行任务的线程,也可以是目标线程池中,执行完之前的任务后,空闲出来的线程。
S905中,将执行单元的共享参数中的染色标识设置在第二线程的共享参数中。
可选的,服务器可以将执行单元的共享参数中的染色标识设置在该第二线程的共享参数中。
S907中,基于第二线程的共享参数中的染色标识,运行第二线程对第一待处理数据进行处理。
可选的,服务器可以基于第二线程的共享参数中的染色标识,运行第二线程对第一待处理数据进行处理。
S909中,在第二线程运行完成后,将第二线程的共享参数中的染色标识设置在执行单元的共享参数中。
可选的,服务器可以在第二线程运行完成后,将第二线程的共享参数中的染色标识设置在执行单元的共享参数中。
上文说到,第二租户为没有数据隔离需求的租户,因此,服务器可以接收第五服务请求,第五服务请求包括第二租户的标识,在不存在第二租户的标识对应的染色标识的情况下,可以将第五服务请求传输至服务中间件,响应于第五服务请求,对第五服务请求进行解析,得到第二待处理数据,在运行的第三线程对第二待处理数据实施的处理为数据存储时,将第二待处理数据发送至共享数据库实例,共享数据库实例对应的共享数据库是为多个租户提供数据存储的数据库,多个租户包括第二租户。
服务器可以接收第五服务请求,第五服务请求包括第二租户的标识,在存在第二租户的标识对应的染色标识的情况下,且第二租户的标识对应的染色标识为上文的公共染色标识的时候,服务器可以将第五服务请求传输至服务中间件。响应于第五服务请求,服务器可以对第五服务请求进行解析,得到第二待处理数据。在运行的第三线程对第二待处理数据实施的处理为数据存储时,将第二待处理数据发送至共享数据库实例,共享数据库实例对应的共享数据库是为多个租户提供数据存储的数据库,多个租户包括第二租户。
如此,本申请通过同一个服务器可以对不同类型的租户进行服务,将不同租户的数据存储在独立的数据库中或者共享的数据中,完成了服务共享但存储数据库不共享,减少了数据存储成本。
本申请实施例中,第一租户的标识对应的染色标识关联的数据库和共享数据库为多个数据库集群中的一个数据库集群中,存在物理隔离的数据库。
可选的,第一租户的标识对应的染色标识关联的数据库和共享数据库为一个服务器对应的一个数据库集群中的两个数据库。然而,随着租户的数量越来越多,可以拆分另一个数据库集群出来,另一个数据库集群中也可以包括独立数据库和共享数据库,该数据库集群也可以有另一个服务器提供共享服务。
请参阅图10,其所示为本发明实施例提供的一种多租户数据处理装置的结构示意图,该装置具有实现上述方法实施例中多租户数据处理方法的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。如图10所示,该多租户数据处理装置1000可以包括:
确定模块1001,用于响应于第一租户对应的第一服务请求,确定染色标识和第一待处理数据;染色标识用于唯一标识第一租户;
标识设置模块1002,用于将染色标识设置在第一线程的共享参数中;第一线程为将被运行以对第一待处理数据进行处理的线程;
标识获取模块1003,用于在运行的第一线程对第一待处理数据实施的处理为数据存储时,从第一线程的共享参数中获取染色标识;
处理模块1004,用于将第一待处理数据发送至染色标识对应的数据库实例;数据库实例对应的数据库为只存储第一租户的数据的数据库。
在一些可能的实施例中,
确定模块,用于:
接收第二服务请求;第二服务请求包括第一租户的标识;
在存在第一租户的标识对应的染色标识的情况下,将染色标识设置在第二服务请求的请求头中,得到第一服务请求;
当第一服务请求传输至服务中间件时,响应于第一服务请求,对第一服务请求进行解析,得到染色标识和第一待处理数据。
在一些可能的实施例中,
确定模块,用于:
在预设时刻触发生成定时任务的第一服务请求;第一服务请求中包括定时任务的任务参数;
对任务参数进行解析,得到染色标识;
基于第一服务请求确定定时任务对应的第一待处理数据。
在一些可能的实施例中,
第一线程对第一待处理数据实施的处理包括两个步骤;
标识获取模块,用于:
在运行的第一线程对第一待处理数据进行第一步骤处理时,调用第一步骤对应的函数对第一待处理数据进行处理,得到第一数据;
在运行的第一线程对第一数据进行第二步骤处理时,若调用第二步骤对应的函数对第一数据进行的处理为数据存储时,从第一线程的共享参数中获取染色标识。
在一些可能的实施例中,
装置还包括投递消息投递模块和投递消息检测模块:
投递消息投递模块,用于在第一服务请求指示请求的服务为消息队列服务的情况下,将染色标识设置在第一待处理数据中,得到投递消息;向共享消息队列服务器发送投递消息;
投递消息检测模块,用于在检测到共享消息队列服务器存在投递消息,从共享消息队列服务器获取投递消息;
确定模块,用于对投递消息进行解析,得到染色标识和第一待处理数据;
标识设置模块,用于将染色标识设置在第一线程的共享参数中;
标识获取模块,用于在运行的第一线程对第一待处理数据实施的处理为数据存储时,从第一线程的共享参数中获取染色标识;
处理模块,用于将第一待处理数据发送至染色标识对应的数据库实例。
在一些可能的实施例中,
装置还包括跨应用服务模块,用于:
在对第一待处理数据的处理为跨应用处理时,基于第一待处理数据生成第三服务请求;
将染色标识设置在第三服务请求的请求头中,得到第四服务请求;
向跨应用处理对应的设备发送第四服务请求。
在一些可能的实施例中,
装置还包括跨线程服务模块,用于:
将染色标识由第一线程的共享参数复制至第二线程的共享参数中;第二线程为在第一线程运行过程中,被运行对第一待处理数据进行处理的线程;第一线程为主线程,第二线程为主线程里面的子线程;
基于第二线程的共享参数中的染色标识,运行第二线程对第一待处理数据进行处理。在一些可能的实施例中,
该装置还包括子线程处理模块,用于:
将染色标识由第一线程的共享参数缓存至目标线程池的执行单元的共享参数中;目标线程池中包括在第一线程运行过程中,将被运行对第一待处理数据进行处理的线程;目标线程池包括多个第二线程;
确定目标线程池中将要运行的第二线程;
将执行单元的共享参数中的染色标识设置在第二线程的共享参数中;
基于第二线程的共享参数中的染色标识,运行第二线程对第一待处理数据进行处理;
在第二线程运行完成后,将第二线程的共享参数中的染色标识设置在执行单元的共享参数中。
在一些可能的实施例中,
确定模块,用于接收第五服务请求,第五服务请求包括第二租户的标识;在存在第二租户的标识对应的染色标识的情况下,将第五服务请求传输至服务中间件;第二租户的标识对应的染色标识为公共染色标识;响应于第五服务请求,对第五服务请求进行解析,得到第二待处理数据;
处理模块,用于在运行的第三线程对对第二待处理数据实施的处理为数据存储时,将第二待处理数据发送至共享数据库实例;共享数据库实例对应的共享数据库是为多个租户提供数据存储的数据库;多个租户包括第二租户。
在一些可能的实施例中,
第一租户的标识对应的染色标识关联的数据库和共享数据库为多个数据库集群中的一个数据库集群中,存在物理隔离的数据库。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本发明实施例提供了一种电子设备,该电子设备包括处理器和存储器,该存储器中存储有至少一条指令或至少一段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现如上述方法实施例所提供的多租户数据处理方法。
存储器可用于存储软件程序以及模块,处理器通过运行存储在存储器的软件程序以及模块,从而执行各种功能应用以及多租户数据处理。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、功能所需的应用程序等;存储数据区可存储根据所述设备的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器还可以包括存储器控制器,以提供处理器对存储器的访问。
本发明实施例所提供的方法实施例可以在计算机终端、服务器或者类似的运算装置中执行。以运行在服务器上为例,图11是本发明实施例提供的运行一种多租户数据处理方法的服务器的硬件结构框图,如图11所示,该服务器2000可因配置或性能不同而产生比较大的差异,可以包括一个或一个以***处理器(Central Processing Units,CPU)2010(处理器2010可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器2030,一个或一个以上存储应用程序2023或数据2022的存储介质2020(例如一个或一个以上海量存储设备)。其中,存储器2030和存储介质2020可以是短暂存储或持久存储。存储在存储介质2020的程序可以包括一个或一个以上模块,每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器2010可以设置为与存储介质2020通信,在服务器2000上执行存储介质2020中的一系列指令操作。服务器2000还可以包括一个或一个以上电源2060,一个或一个以上有线或无线网络接口2050,一个或一个以上输入输出接口2040,和/或,一个或一个以上操作***2021,例如Windows ServerTM,Mac OSXTM,UnixTM,LinuxTM,FreeBSDTM等等。
输入输出接口2040可以用于经由一个网络接收或者发送数据。上述的网络具体实例可包括服务器2000的通信供应商提供的无线网络。在一个实例中,输入输出接口2040包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,输入输出接口2040可以为射频(RadioFrequency,RF)模块,其用于通过无线方式与互联网进行通讯。
本领域普通技术人员可以理解,图11所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,服务器2000还可包括比图11中所示更多或者更少的组件,或者具有与图11所示不同的配置。
本发明的实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质可设置于电子设备之中以保存用于实现一种多租户数据处理方法相关的至少一条指令或至少一段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现上述方法实施例提供的多租户数据处理方法。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是:上述本发明实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多服务处理和并行处理也是可以的或者可能是有利的。
本发明的实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述的多租户数据处理方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (14)
1.一种多租户数据处理方法,其特征在于,所述方法包括:
响应于第一租户对应的第一服务请求,确定染色标识和第一待处理数据;所述染色标识用于唯一标识所述第一租户;
将所述染色标识设置在第一线程的共享参数中;所述第一线程为将被运行以对所述第一待处理数据进行处理的线程;
在运行的所述第一线程对所述第一待处理数据实施的处理为数据存储时,从所述第一线程的共享参数中获取所述染色标识;
将所述第一待处理数据发送至所述染色标识对应的数据库实例;所述数据库实例对应的数据库为只存储所述第一租户的数据的数据库。
2.根据权利要求1所述的多租户数据处理方法,其特征在于,所述响应于第一租户对应的第一服务请求,确定染色标识和第一待处理数据,包括:
接收第二服务请求;所述第二服务请求包括所述第一租户的标识;
在存在所述第一租户的标识对应的染色标识的情况下,将所述染色标识设置在所述第二服务请求的请求头中,得到所述第一服务请求;
当所述第一服务请求传输至服务中间件时,响应于所述第一服务请求,对所述第一服务请求进行解析,得到所述染色标识和所述第一待处理数据。
3.根据权利要求1所述的多租户数据处理方法,其特征在于,所述响应于第一租户对应的第一服务请求,确定染色标识和第一待处理数据,包括:
在预设时刻触发生成定时任务的第一服务请求;所述第一服务请求中包括所述定时任务的任务参数;
对所述任务参数进行解析,得到所述染色标识;
基于所述第一服务请求确定所述定时任务对应的第一待处理数据。
4.根据权利要求1-3任一所述的多租户数据处理方法,其特征在于,所述第一线程对所述第一待处理数据实施的处理包括两个步骤;
所述在运行的所述第一线程对所述第一待处理数据实施的处理为数据存储时,从所述第一线程的共享参数中获取所述染色标识,包括:
在运行的所述第一线程对所述第一待处理数据进行第一步骤处理时,调用所述第一步骤对应的函数对所述第一待处理数据进行处理,得到第一数据;
在运行的所述第一线程对所述第一数据进行第二步骤处理时,若调用所述第二步骤对应的函数对所述第一数据进行的处理为数据存储时,从所述第一线程的共享参数中获取所述染色标识。
5.根据权利要求1-3任一所述的多租户数据处理方法,其特征在于,所述将所述染色标识设置在第一线程的共享参数中,在运行的所述第一线程对所述第一待处理数据实施的处理为数据存储时,从所述第一线程的共享参数中获取所述染色标识,将所述第一待处理数据发送至所述染色标识对应的数据库实例,包括:
在所述第一服务请求指示请求的服务为消息队列服务的情况下,将所述染色标识设置在所述第一待处理数据中,得到投递消息;
向共享消息队列服务器发送所述投递消息;
在检测到所述共享消息队列服务器存在所述投递消息,从所述共享消息队列服务器获取所述投递消息;
对所述投递消息进行解析,得到所述染色标识和所述第一待处理数据;
将所述染色标识设置在所述第一线程的共享参数中;
在运行的所述第一线程对所述第一待处理数据实施的处理为数据存储时,从所述第一线程的共享参数中获取所述染色标识;
将所述第一待处理数据发送至所述染色标识对应的数据库实例。
6.根据权利要求5所述的多租户数据处理方法,其特征在于,所述对所述投递消息进行解析,得到所述染色标识和所述第一待处理数据之后,还包括:
在对所述第一待处理数据的处理为跨应用处理时,基于所述第一待处理数据生成第三服务请求;
将所述染色标识设置在所述第三服务请求的请求头中,得到第四服务请求;
向跨应用处理对应的设备发送所述第四服务请求。
7.根据权利要求1所述的多租户数据处理方法,其特征在于,所述将所述第一待处理数据发送至所述染色标识对应的数据库实例之后,还包括:
将所述染色标识由所述第一线程的共享参数复制至第二线程的共享参数中;所述第二线程为在所述第一线程运行过程中,被运行对所述第一待处理数据进行处理的线程;所述第一线程为主线程,所述第二线程为所述主线程里面的子线程;
基于所述第二线程的共享参数中的所述染色标识,运行所述第二线程对所述第一待处理数据进行处理。
8.根据权利要求2所述的多租户数据处理方法,其特征在于,所述将所述第一待处理数据发送至所述染色标识对应的数据库实例之后,还包括:
将所述染色标识由所述第一线程的共享参数缓存至目标线程池的执行单元的共享参数中;所述目标线程池中包括在所述第一线程运行过程中,将被运行对所述第一待处理数据进行处理的线程;所述目标线程池包括多个第二线程;
确定所述目标线程池中将要运行的第二线程;
将所述执行单元的共享参数中的所述染色标识设置在所述第二线程的共享参数中;
基于所述第二线程的共享参数中的所述染色标识,运行所述第二线程对所述第一待处理数据进行处理;
在所述第二线程运行完成后,将所述第二线程的共享参数中的所述染色标识设置在所述执行单元的共享参数中。
9.根据权利要求1-8任一所述的多租户数据处理方法,其特征在于,所述方法还包括:
接收第五服务请求,所述第五服务请求包括第二租户的标识;
在存在所述第二租户的标识对应的染色标识的情况下,将所述第五服务请求传输至服务中间件;所述第二租户的标识对应的染色标识为公共染色标识;
响应于所述第五服务请求,对所述第五服务请求进行解析,得到第二待处理数据;
在运行的第三线程对所述第二待处理数据实施的处理为数据存储时,将所述第二待处理数据发送至共享数据库实例;所述共享数据库实例对应的共享数据库是为多个租户提供数据存储的数据库;所述多个租户包括所述第二租户。
10.根据权利要求9所述的多租户数据处理方法,其特征在于,
所述第一租户的标识对应的染色标识关联的数据库和所述共享数据库为多个数据库集群中的一个数据库集群中,存在物理隔离的数据库。
11.一种多租户数据处理装置,其特征在于,所述装置包括:
确定模块,用于响应于第一租户对应的第一服务请求,确定染色标识和第一待处理数据;所述染色标识用于唯一标识所述第一租户;
标识设置模块,用于将所述染色标识设置在第一线程的共享参数中;所述第一线程为将被运行以对所述第一待处理数据进行处理的线程;
标识获取模块,用于在运行的所述第一线程对所述第一待处理数据实施的处理为数据存储时,从所述第一线程的共享参数中获取所述染色标识;
处理模块,用于将所述第一待处理数据发送至所述染色标识对应的数据库实例;所述数据库实例对应的数据库为只存储所述第一租户的数据的数据库。
12.一种电子设备,其特征在于,包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如权利要求1~10中任一项所述的多租户数据处理方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如权利要求1~10中任一项所述的多租户数据处理方法。
14.一种计算机程序产品,其特征在于,所述计算机程序产品包括至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如权利要求1-10任一项所述的多租户数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211203236.6A CN117827940A (zh) | 2022-09-29 | 2022-09-29 | 一种多租户数据处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211203236.6A CN117827940A (zh) | 2022-09-29 | 2022-09-29 | 一种多租户数据处理方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117827940A true CN117827940A (zh) | 2024-04-05 |
Family
ID=90512038
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211203236.6A Pending CN117827940A (zh) | 2022-09-29 | 2022-09-29 | 一种多租户数据处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117827940A (zh) |
-
2022
- 2022-09-29 CN CN202211203236.6A patent/CN117827940A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10999353B2 (en) | Beacon-based distributed data processing platform | |
US9465641B2 (en) | Selecting cloud computing resource based on fault tolerance and network efficiency | |
US11646939B2 (en) | Network function NF management method and NF management device | |
CN111258627B (zh) | 一种接口文档生成方法和装置 | |
CN114244717B (zh) | 虚拟网卡资源的配置方法、装置、计算机设备及介质 | |
US11297105B2 (en) | Dynamically determining a trust level of an end-to-end link | |
CN113037891B (zh) | 边缘计算***中有状态应用的访问方法、装置及电子设备 | |
WO2022267175A1 (zh) | 信息处理方法、装置、计算机设备及存储介质 | |
CN112698952A (zh) | 计算资源统一管理方法、装置、计算机设备及存储介质 | |
CN112995273A (zh) | 网络打通方案生成方法、装置、计算机设备和存储介质 | |
CN106547790B (zh) | 一种关系型数据库服务*** | |
CN115086330A (zh) | 跨集群负载均衡*** | |
CN111984505A (zh) | 一种运维数据采集引擎及采集方法 | |
CN116805946A (zh) | 一种消息请求处理方法、装置、电子设备及存储介质 | |
CN111435329A (zh) | 一种自动化测试方法和装置 | |
CN108347465B (zh) | 一种选择网络数据中心的方法及装置 | |
CN106936643B (zh) | 一种设备联动方法以及终端设备 | |
CN117827940A (zh) | 一种多租户数据处理方法、装置、电子设备及存储介质 | |
CN110347718A (zh) | 一种redis分片方法、装置、计算机设备和存储介质 | |
CN112910796B (zh) | 流量管理方法、装置、设备、存储介质以及程序产品 | |
CN112799849B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN114745377A (zh) | 边缘云集群服务***及实现方法 | |
CN115150811A (zh) | 多租户运维管理方法、装置及*** | |
DE112022000347T5 (de) | Edge-time-sharing über cluster hinweg durch dynamische aufgabenmigration | |
KR102382884B1 (ko) | 엣지 단말의 클러스터 구성 및 운용 시스템 및 방법 |
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 |