CN110489392B - 多租户间的数据访问方法、装置、系统、存储介质及设备 - Google Patents
多租户间的数据访问方法、装置、系统、存储介质及设备 Download PDFInfo
- Publication number
- CN110489392B CN110489392B CN201910777902.9A CN201910777902A CN110489392B CN 110489392 B CN110489392 B CN 110489392B CN 201910777902 A CN201910777902 A CN 201910777902A CN 110489392 B CN110489392 B CN 110489392B
- Authority
- CN
- China
- Prior art keywords
- transaction
- tenant
- data
- root
- branch
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1865—Transactional file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施方式公开了多租户间的数据访问方法、装置、系统、存储介质及设备。在所述方法中,租户用于保存分布式事务中相关联的子事务的事务数据,子事务分为根事务以及被根事务调用的分支事务,所述方法包括:在相关联的子事务为分支事务的情况下,获取分支事务的事务数据,以及与所述根事务相关联的第一租户的租户信息;根据第一租户的租户信息,将分支事务的事务数据保存至第一租户的数据库中。本申请能够在各个租户间的数据完全隔离的情况下,使不同租户间进行数据访问。
Description
技术领域
本申请涉及数据处理技术领域,特别涉及多租户间的数据访问方法、装置、系统、存储介质及设备。
背景技术
随着信息化的发展,企业要处理的数据呈现爆炸式的增长,将所有数据都存储在一个数据库显然已经无法满足当前的业务需求,因此,需要将业务拆分,并将各个业务模块的数据分别保存到多个数据库,这就要用到分布式事务。在分布式事务中,可以利用多租户(multi-tenancy)技术,将分布式事务中的各个子事务的事务数据分别保存至不同租户的数据库中。目前,为了保证租户的数据安全,租户间的数据隔离通常采用如下的三种方案:
第一种是独立数据库方案,即一个租户一个数据库,这种方案的用户数据隔离级别最高,安全性最好,但是不同租户间数据完全隔离,无法进行租户间的事务交易。
第二种是共享数据库,隔离数据架构方案,即多个或所有租户共享数据库,但一个租户一个Schema。这种方案的优点是为安全性要求较高的租户提供了一定程度的逻辑数据隔离,并不是完全隔离,每个数据库可以支持更多的租户数量;缺点是如果出现故障,数据恢复比较困难,因为恢复数据库将牵涉到其他租户的数据。
第三种是共享数据库,共享数据结构方案,及租户共享同一个数据库、同一个Schema,但在数据表中通过租户字段区分各个租户的数据。这是共享程度最高、隔离级别最低的模式,虽然满足了多租户间的互访,但是隔离级别最低,安全性最低,需要在设计开发时加大对安全的开发量。
因此,亟需一种多租户间的数据访问方法,以解决现有技术中,不同租户的数据库相互独立,即租户间的数据完全隔离的情况下,不同租户间无法进行数据访问的问题。
发明内容
本申请实施例的目的是提供多租户间的数据访问方法、装置、系统、存储介质及设备,以解决在租户间的数据完全隔离的情况下,不同租户间无法进行数据访问的问题。
为达到上述目的,本申请实施例提供多租户间的数据访问方法,租户用于保存分布式事务中相关联的子事务的事务数据,所述子事务分为根事务以及被所述根事务调用的分支事务,所述方法包括:
在相关联的子事务为分支事务的情况下,获取所述分支事务的事务数据,以及与所述根事务相关联的第一租户的租户信息;
根据所述第一租户的租户信息,将所述分支事务的事务数据保存至所述第一租户的数据库中。
在一个实施例中,所述方法还包括:
在相关联的子事务为根事务的情况下,获取所述根事务的事务数据,并将本租户的租户信息发送至第二租户,所述第二租户为与所述根事务调用的分支事务相关联的租户;
接收所述第二租户发来的事务数据,将所述根事务的事务数据和所述第二租户发来的事务数据保存至数据库中。
在一个实施例中,所述根据所述第一租户的租户信息,将所述分支事务的事务数据保存至所述第一租户的数据库中,包括:
根据所述第一租户的租户信息,确定所述第一租户的数据库的地址信息;
根据所述第一租户的数据库的地址信息,将所述相关联的分支事务的事务数据保存至所述第一租户的数据库。
在一个实施例中,所述方法还包括:
监测所保存的分布式事务的事务数据,所述事务数据包括事务的开始执行时间、结束执行时间及执行结果;
识别执行失败的子事务,并将执行失败的子事务进行回滚
本申请实施例还提供一种租户装置,所述租户用于保存分布式事务中相关联的子事务的事务数据,所述子事务分为根事务以及被所述根事务调用的分支事务,所述装置包括:
监听模块,用于在相关联的子事务为分支事务的情况下,获取所述分支事务的事务数据,以及与所述根事务相关联的第一租户的租户信息;
数据发送模块,用于根据所述第一租户的租户信息,将所述分支事务的事务数据保存至所述第一租户的数据库中。
在一个实施例中,所述装置还包括:
持久化模块,用于将事务数据进行持久化。
在一个实施例中,所述装置还包括:
扫描模块,用于对数据库中保存的事务数据进行扫描,以识别执行失败的事务;
回调模块,用于将执行失败的事务进行回滚。
本申请实施例还提供一种多租户系统,所述多租户系统中的租户用于保存分布式事务中相关联的子事务的事务数据,所述子事务分为根事务以及被所述根事务调用的分支事务,所述多租户系统包括第一租户及第二租户,其中;
所述第一租户与所述根事务相关联,用于获取所述根事务的事务数据,并将所述第一租户的租户信息发送至所述第二租户,所述第二租户为与所述根事务调用的分支事务相关联的租户;接收所述第二租户发来的事务数据,并将所述根事务的事务数据和所述第二租户发来的事务数据保存至数据库中;
所述第二租户用于获取所述分支事务的事务数据,以及所述第一租户的租户信息;根据所述第一租户的租户信息,将所述分支事务的事务数据保存至所述第一租户的数据库中。
本申请实施例还提供一种计算机设备,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现上述任意实施例中所述动态扩容方法的步骤。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现上述任意实施例中所述动态扩容方法的步骤。
由以上本申请实施例提供的技术方案可见,本申请实施例中,将与分布式事务的根事务相关联的第一租户的租户信息,发送至与该分布式事务的分支事务相关联的第二租户,使得第二租户所关联的分支事务的事务数据保存到第一租户的数据库中,使得一个分布式事务的事务数据保存至同一个数据库中,从而解决了租户间的数据完全隔离的情况下,不同租户间无法进行数据访问的问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的多租户间的数据访问方法的流程图;
图2是本申请实施例提供的一种租户装置的模块结构图;
图3是本申请实施例提供的一个具体的多租户的系统架构图;
图4是本申请实施例提供的计算机设备的示意图。
具体实施方式
本申请实施例提供多租户间的数据访问方法、装置、系统、存储介质及设备。
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施方式中的附图,对本申请实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式仅仅是本申请一部分实施方式,而不是全部的实施方式。基于本申请中的实施方式,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都应当属于本申请保护的范围。
多租户(multi-tenancy)技术作为一种近年来日益引起浓厚兴趣的技术,是指在服务提供商的服务器上运行软件的实例,由该实例为多个租户提供服务。在大规模的多租户应用场景中,可能有大量的租户的数据,物理上分布在不同的数据库中。但现有的多租户技术中,在各个租户的数据库相互独立的情况下,各个租户之间无法进行数据访问。因此,如果想让各个租户之间进行数据访问,目前只能采用共享数据库的方式,但是该方式又存在安全性不高的缺陷。可以看出,如何在各个租户的数据库相互独立的情况下,使得各个租户之间仍能进行数据访问,已经成为多租户技术中亟需解决的技术问题。
本申请实施例提供一种多租户系统,所述多租户系统中的租户用于保存分布式事务中相关联的子事务的事务数据,所述子事务分为根事务以及被所述根事务调用的分支事务,所述多租户系统包括第一租户及第二租户,其中;
所述第一租户与所述根事务相关联,用于获取所述根事务的事务数据,并将所述第一租户的租户信息发送至所述第二租户,所述第二租户为与所述根事务调用的分支事务相关联的租户;接收所述第二租户发来的事务数据,并将所述根事务的事务数据和所述第二租户发来的事务数据保存至数据库中;
所述第二租户用于获取所述分支事务的事务数据,以及所述第一租户的租户信息;根据所述第一租户的租户信息,将所述分支事务的事务数据保存至所述第一租户的数据库中。
参考图1所示,为本申请实施例提供的多租户间的数据访问方法,租户用于保存分布式事务中相关联的子事务的事务数据,所述子事务分为根事务以及被所述根事务调用的分支事务,所述方法可以包括如下步骤:
S101:在相关联的子事务为分支事务的情况下,获取所述分支事务的事务数据,以及与所述根事务相关联的第一租户的租户信息。
在一些实施方式中,租户可以分别通过监控模块上的客户端程序来监听分布式事务处理系统,并根据事务的标识来识别和捕捉相关联的子事务的事务数据。租户在获取到事务数据后,可以由客户端程序生成数据存储请求,并将数据存储请求发送给租户中的数据接收模块,以将事务数据存储至租户的数据库中。
在一些实施方式中,所述分布式事务可以由所述根事务发起,分支事务可以是被所述根事务调用的子事务。具体的,根事务与分支事务可以由分布式事务处理系统预先设定,并将设定结果以及分支事务所关联的租户信息,发送至与该根事务相关联的第一租户的客户端程序,以使第一租户的客户端程序预先存储有所述设定结果,在第一租户捕捉到根事务的事务数据后,除了向第一租户的数据接收模块发送事务数据,还需要向其他租户发送第一租户的租户信息,从而告知其他租户将相关联的子事务的事务数据都发送至第一租户。当然,也可以不将设定结果预先存储在第一租户的客户端程序,而是将该根事务所调用的分支事务相关联的租户的租户信息携带在根事务的事务数据中,对此,本申请不作限定。
需要说明的是,对于不同的分布式事务,根事务和分支事务可以是不同的。
例如,某个多租户系统中共有三个租户,其中,租户1与订单应用相关联,租户2与账户应用以及优惠券应用相关联,租户3与积分应用相关联。一个分布式事务包括:订单应用、账户应用以及优惠券应用,在该分布式事务中,将订单应用预先设定为根事务,账户应用以及优惠券应用被设定为分支事务,此时,租户1就为与根事务相关联的第一租户。但是,另一个分布式事务包括:积分应用与优惠券应用,在该分布式事务中,将优惠券应用预先设定为根事务,积分应用被设定为分支事务,此时,租户2就为与根事务相关联的第一租户。
在一些实施方式中,所述第一租户的租户信息可以包括第一租户的租户ID等标识。
S102:根据所述第一租户的租户信息,将所述分支事务的事务数据保存至所述第一租户的数据库中。
在一些实施方式中,预先将租户ID信息和各个租户的数据库的IP地址信息对应保存在数据接收装置。接收到第一租户的租户信息后,就可以确定第一租户的数据库的IP地址信息;根据所述第一租户的数据库的IP地址信息,将所述相关联的分支事务的事务数据保存至所述第一租户的数据库。
在一些实施方式中,所述事务数据可以包括事务的开始执行时间、结束执行时间及执行结果等数据。具体的,执行结果可以为正交易的执行结果。
例如,在订单支付的分布式事务中,正交易可以是在用户付款后,将订单状态更改为“已支付”以及扣减账户余额等交易;当执行结果设置为0时,该正交易为执行失败,当执行结果设置为1时,该正交易为执行成功。
在一些实施方式中,租户中还保存有与上述各个正交易相对的反交易的标识。当租户扫描数据库中保存的各个事务的执行结果,并发现有执行失败的正交易时,可以将该执行失败的正交易所在的分布式事务的其他事务进行回滚。具体的,可以由租户中的回调模块将其他事务对应的反交易的标识返回至客户端程序,并由客户端程序将反交易的标识发送至分布式事务处理系统,以使分布式事务处理系统执行相应的反交易,实现事务的回滚。
例如,在订单支付的分布式事务中,在用户付款后,订单状态已经更改为“已支付”,但是扣减账户余额执行失败,则需要调用将订单状态更改为“已支付”的反交易,即将订单状态更改为“未支付”,从而实现事务的回滚,以保证分布式事务的一致性。
由上面事务回滚的过程可以看出,本申请将一个分布式事务的各个子事务保存至一个数据库中,从而可以从一个数据库中就获取到该分布式事务所有的事务数据,不需要跨库操作。在不同租户间的数据库相互独立,数据隔离的情况下,仍能实现不同租户间的事务交易。
参考图2所示,本申请实施例还提供一种租户装置,所述租户用于保存分布式事务中相关联的子事务的事务数据,所述子事务分为根事务以及被所述根事务调用的分支事务,所述装置包括:
监听模块100,用于在相关联的子事务为分支事务的情况下,获取所述分支事务的事务数据,以及与所述根事务相关联的第一租户的租户信息;
数据发送模块200,用于根据所述第一租户的租户信息,将所述分支事务的事务数据保存至所述第一租户的数据库中。
所述租户装置还可以包括:
持久化模块300,用于将事务数据进行持久化。
所述租户装置还可以包括:
扫描模块400,用于对数据库中保存的事务数据进行扫描,以识别执行失败的事务;
回调模块500,用于将执行失败的事务进行回滚。
如图4所示,本申请实施例还提供一种计算机设备,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现上述任意实施例中所述动态扩容方法的步骤。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现上述任意实施例中所述动态扩容方法的步骤。
下面结合图3,通过一个具体的应用场景对本申请进行详细的说明:
在电商系统的订单支付场景中,在对一个订单进行支付之后,需要依次做下面几个步骤:将订单状态更改为“已支付”、扣减账户余额、给账户下发优惠券,这三个步骤分别属于订单应用、账户应用、优惠券应用,这三个应用作为三个子事务,构成了一个分布式事务。
在现有技术中,通过划分租户来分别保存各个子事务的事务数据。例如,将订单应用划分至租户1、将账户应用及优惠券应用划分至租户2,从而将订单应用的数据保存至租户1的数据库中,并将账户应用及优惠券应用的数据保存至租户2的数据库中。但是在租户1和租户2的数据库相互独立的情况下,这种方式使得两个租户间的数据无法互访,导致订单应用无法与账户应用及优惠券应用进行事务交易。
而利用本申请的提供的方法,预先将订单应用作为根事务,将账户应用及优惠券应用作为分支事务,同样将订单应用划分至租户1、将账户应用及优惠券应用划分至租户2。在这种情况下,租户1的客户端程序向租户2的客户端程序发送租户1的租户信息,使得租户2的客户端程序获取到对应的事务数据后,调用租户1的数据接收模块的接口,将事务数据发送至租户1的数据接收模块,而不是将账户应用以及优惠券应用的数据保存在租户2的数据库中,从而将账户应用以及优惠券应用的数据也都保存到订单应用对应的租户1的数据库中,使得不同租户间可以进行事务交易。
在一些实施方式中,本申请为不同租户提供独立的数据库,可以使各个租户的数据完全隔离,安全性较高。
在一些实施方式中,由于将一个分布式事务的所有子事务(包括根事务及被该根事务调用的分支事务)的事务数据保存至根事务的数据库中,从而可以使不同租户间进行事务交易,实现了多租户间的互访。
在一些实施方式中,通过利用根事务的客户端程序,向各个分支事务发送与根事务相关联租户信息,无扩展瓶颈,该方法可以扩展至任意数量的租户。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的装置、模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。该计算机软件产品可以包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。该计算机软件产品可以存储在内存中,内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括短暂电脑可读媒体(transitory media),如调制的数据信号和载波。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
虽然通过实施例描绘了本申请,本领域普通技术人员知道,本申请有许多变形和变化而不脱离本申请的精神,希望所附的权利要求包括这些变形和变化而不脱离本申请的精神。
Claims (9)
1.一种多租户间的数据访问方法,其特征在于,租户用于保存分布式事务中相关联的子事务的事务数据,所述子事务分为根事务以及被所述根事务调用的分支事务,所述方法包括:
获取所述根事务的事务数据,将所述根事务的事务数据保存至数据库,其中,所述数据库为第一租户的数据库;
将租户信息发送至与所述根事务调用的分支事务相关联的第二租户,其中,所述租户信息为所述第一租户的租户信息;
所述第二租户获取被所述根事务调用的所述分支事务的事务数据,以及所述租户信息;
所述第二租户根据所述租户信息,将所述分支事务的事务数据保存至所述数据库中。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一租户的租户信息,将所述分支事务的事务数据保存至所述数据库中,包括:
根据所述租户信息,确定所述数据库的地址信息;
根据所述地址信息,将所述相关联的分支事务的事务数据保存至所述数据库。
3.根据权利要求1所述的方法,其特征在于,还包括:
监测所保存的分布式事务的事务数据,所述事务数据包括事务的开始执行时间、结束执行时间及执行结果;
识别执行失败的子事务,并将执行失败的子事务进行回滚。
4.一种租户装置,其特征在于,所述租户用于保存分布式事务中相关联的子事务的事务数据,所述子事务分为根事务以及被所述根事务调用的分支事务,所述装置包括:
监听模块,用于获取所述根事务的事务数据,将所述根事务的事务数据保存至数据库,其中,所述数据库为第一租户的数据库;
还用于将租户信息发送至与所述根事务调用的分支事务相关联的第二租户,其中,所述租户信息为所述第一租户的租户信息;
数据发送模块,用于当所述第二租户获取被所述根事务调用的所述分支事务的事务数据,以及所述租户信息时,根据所述租户信息,将所述分支事务的事务数据保存至所述数据库中。
5.根据权利要求4所述的装置,其特征在于,还包括:
持久化模块,用于将事务数据进行持久化。
6.根据权利要求4所述的装置,其特征在于,还包括:
扫描模块,用于对数据库中保存的事务数据进行扫描,以识别执行失败的事务;
回调模块,用于将执行失败的事务进行回滚。
7.一种多租户系统,其特征在于,所述多租户系统中的租户用于保存分布式事务中相关联的子事务的事务数据,所述子事务分为根事务以及被所述根事务调用的分支事务,所述多租户系统包括第一租户及第二租户,其中;
所述第一租户与所述根事务相关联,用于获取所述根事务的事务数据,并将所述第一租户的租户信息发送至所述第二租户,所述第二租户为与所述根事务调用的分支事务相关联的租户;接收所述第二租户发来的事务数据,并将所述根事务的事务数据和所述第二租户发来的事务数据保存至数据库中;
所述第二租户用于获取所述分支事务的事务数据,以及所述第一租户的租户信息;根据所述第一租户的租户信息,将所述分支事务的事务数据保存至所述第一租户的数据库中。
8.一种计算机设备,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现权利要求1-3中任意一项所述方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现权利要求1-3中任意一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910777902.9A CN110489392B (zh) | 2019-08-22 | 2019-08-22 | 多租户间的数据访问方法、装置、系统、存储介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910777902.9A CN110489392B (zh) | 2019-08-22 | 2019-08-22 | 多租户间的数据访问方法、装置、系统、存储介质及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110489392A CN110489392A (zh) | 2019-11-22 |
CN110489392B true CN110489392B (zh) | 2022-03-29 |
Family
ID=68552897
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910777902.9A Active CN110489392B (zh) | 2019-08-22 | 2019-08-22 | 多租户间的数据访问方法、装置、系统、存储介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110489392B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111522803B (zh) * | 2020-04-14 | 2023-05-19 | 北京仁科互动网络技术有限公司 | 软件服务化平台的租户交互方法、装置及电子设备 |
CN117057891A (zh) * | 2023-10-11 | 2023-11-14 | 大唐融合通信股份有限公司 | 一种多租户体系的运营方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102346460A (zh) * | 2011-05-27 | 2012-02-08 | 运软网络科技(上海)有限公司 | 一种基于事务的服务控制系统及其控制方法 |
CN103577457A (zh) * | 2012-07-31 | 2014-02-12 | 国际商业机器公司 | 用于对多租户数据库进行操控的方法和系统 |
CN107077382A (zh) * | 2014-09-26 | 2017-08-18 | 甲骨文国际公司 | 在多租户应用服务器环境中进行事务恢复的系统和方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9420035B2 (en) * | 2014-02-20 | 2016-08-16 | International Business Machines Corporation | Transaction isolation during multi-tenant transaction requests |
-
2019
- 2019-08-22 CN CN201910777902.9A patent/CN110489392B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102346460A (zh) * | 2011-05-27 | 2012-02-08 | 运软网络科技(上海)有限公司 | 一种基于事务的服务控制系统及其控制方法 |
CN103577457A (zh) * | 2012-07-31 | 2014-02-12 | 国际商业机器公司 | 用于对多租户数据库进行操控的方法和系统 |
CN107077382A (zh) * | 2014-09-26 | 2017-08-18 | 甲骨文国际公司 | 在多租户应用服务器环境中进行事务恢复的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110489392A (zh) | 2019-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107239324B (zh) | 业务流转处理方法、装置及系统 | |
CN111756550A (zh) | 一种区块链共识方法及装置 | |
CN107016029B (zh) | 一种业务数据的处理方法、装置及系统 | |
CN110162512B (zh) | 一种日志检索方法、装置及存储介质 | |
CN110134503B (zh) | 一种集群环境下的定时任务处理方法、装置及存储介质 | |
CN107016016B (zh) | 一种数据处理的方法及装置 | |
CN110008018A (zh) | 一种批量任务处理方法、装置及设备 | |
CN110489392B (zh) | 多租户间的数据访问方法、装置、系统、存储介质及设备 | |
CN110389989B (zh) | 一种数据处理方法、装置及设备 | |
CN110992188B (zh) | 交易处理方法、装置及设备 | |
KR20040074627A (ko) | 복제 명령 분배 시스템 및 방법 | |
CN112035230B (zh) | 一种任务调度文件生成方法、装置及存储介质 | |
CN112181378A (zh) | 业务流程的实现方法及装置 | |
CN108776670B (zh) | 一种异地容灾方法、系统和电子设备 | |
US9250977B2 (en) | Tiered locking of resources | |
CN110992039A (zh) | 交易处理方法、装置及设备 | |
CN116680270A (zh) | 数据表转换方法、装置和存储介质 | |
CN111459474B (zh) | 一种模板化的数据处理方法及装置 | |
EP3082050A1 (en) | Mass data fusion storage method and system | |
CN105868370A (zh) | 读写分离的HBase入库装置及方法 | |
CN113342270A (zh) | 卷卸载方法、装置和电子设备 | |
CN115114258A (zh) | 数据复制方法、装置、电子设备及计算机存储介质 | |
CN111580938A (zh) | 一种工作单元的事务处理方法、装置、设备及介质 | |
US12001450B2 (en) | Distributed table storage processing method, device and system | |
US9317546B2 (en) | Storing changes made toward a limit |
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 |