CN105573996A - 数据库处理方法、装置及系统 - Google Patents
数据库处理方法、装置及系统 Download PDFInfo
- Publication number
- CN105573996A CN105573996A CN201410526587.XA CN201410526587A CN105573996A CN 105573996 A CN105573996 A CN 105573996A CN 201410526587 A CN201410526587 A CN 201410526587A CN 105573996 A CN105573996 A CN 105573996A
- Authority
- CN
- China
- Prior art keywords
- database
- processing request
- application system
- availability
- availability 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.)
- Pending
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据库处理方法、装置及系统,其中,该方法包括:第一应用系统生成待发送的第一数据库处理请求;第一应用系统根据第一数据库处理请求的标识从多个可用数据库中获取与第一数据库处理请求对应的第一可用数据库,其中,多个可用数据库位于第二应用系统中;第一应用系统将第一数据库处理请求发送到获取的第一可用数据库。本发明解决了由于采用现有的固定选择待处理数据库的所导致的在上述数据库不可用时,无法调整待处理数据库进而降低数据处理效率的技术问题。
Description
技术领域
本发明涉及计算机领域,具体而言,涉及一种数据库处理方法、装置及系统。
背景技术
如今,随着网上业务的增加,所要存储的数据也在大量增加,比如,电子相册、电子购物、电子词典等等都需要存储数据,这对数据库就提出了很大的挑战。当业务量增长到超越单个数据库容量时,就需要使用多个数据库;或者,根据业务需要建立并使用多个不同的数据库,这样就出现某一应用系统使用多数据库集群的情况。对于上述多数据库集群的情况,在每一次请求处理该应用系统的数据库时,如图1所示,应用系统A向应用系统B发起处理请求R1时,会根据负载均衡、容量平均分布或者集群可用性等因素进行决策,以得到所要使用的数据库(例如,DB02)。
然而,由于数据库系统通常提供的是单个数据库服务器上进行唯一性约束校验,其中,唯一性约束校验指的是保证在一个字段或者一组字段里或一个数据库中的数据与表中其它行或数据库中其他数据相比是唯一的。因而,当动态地选择不同数据库时,则无法直接利用数据库的唯一约束对数据进行幂等校验,其中,幂等校验,以函数为例,指的是被自己重复运算的结果仍等于它自己的函数,在数据库处理过程中指的就是对于重复的请求应处理相同的数据库。如图2所示,当处理请求为R2时,其中,R2=R1,处理的数据库却由DB02变成了DB03,而使得幂等校验失败,从而导致系统重复处理相同的处理请求,进而影响了数据库的处理效率。
进一步,为了解决上述问题,目前现有技术中提供了一种可能的解决方案:选择固定数据库,通过为处理请求所对应的唯一ID设置固定的算法以实现固定选择对应的数据库,以便于进行唯一性约束校验。然而,如图3所示,选择固定数据库的方案存在不能根据数据库的可用情况进行灵活选择,从而当固定选择的数据库不可用时,处理请求无法处理进而造成大量的损失。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种数据库处理方法、装置及系统,以至少解决由于采用现有的固定选择待处理数据库的所导致的在上述数据库不可用时,无法调整待处理数据库进而降低数据处理效率的技术问题。
根据本发明实施例的一个方面,提供了一种数据库处理方法,包括:第一应用系统生成待发送的第一数据库处理请求;上述第一应用系统根据上述第一数据库处理请求的标识从多个可用数据库中获取与上述第一数据库处理请求对应的第一可用数据库,其中,上述多个可用数据库位于第二应用系统中;上述第一应用系统将上述第一数据库处理请求发送到获取的上述第一可用数据库。
根据本发明实施例的另一方面,还提供了一种数据库处理装置,位于第一应用系统中,包括:第一生成单元,用于生成待发送的第一数据库处理请求;第一获取单元,用于根据上述第一数据库处理请求的标识从多个可用数据库中获取与上述第一数据库处理请求对应的第一可用数据库,其中,上述多个可用数据库位于第二应用系统中;第一发送单元,用于将上述第一数据库处理请求发送到获取的上述第一可用数据库。
根据本发明实施例的又一方面,还提供了一种数据库处理系统,包括:第一应用系统,用于生成待发送的第一数据库处理请求,并根据上述第一数据库处理请求的标识从多个可用数据库中获取与上述第一数据库处理请求对应的第一可用数据库,将上述第一数据库处理请求发送到获取的上述第一可用数据库,其中,上述多个可用数据库位于第二应用系统中;上述第二应用系统,用于检测上述多个可用数据库中是否至少有一个上述数据库出故障,并在检测到上述多个可用数据库中至少一个上述数据库出故障时,更新上述多个可用数据库后得到的更新后的多个可用数据库,发送上述更新后的多个可用数据库到上述第一应用系统。
在本发明实施例中,通过根据第一应用系统生成的第一数据库处理请求的标识从多个可用数据库中获取与上述第一数据库处理请求相对应的第一可用数据库,其中,上述多个可用数据库位于第二应用系统,而且上述多个可用数据库中并不包含不可用数据库,从而避免了上述不可用数据库所造成的数据处理效率低的问题,进一步,由第一应用系统直接获取与上述第一数据库处理请求相对应的第一可用数据库,避免了由于数据库出故障而无法及时调整可用数据库的问题,从而实现在发送数据库处理请求的系统上直接获取相应的可用数据库,达到了提高调整可用数据库的灵活度的目的,从而实现了提高数据处理效率的技术效果,进而解决了由于采用现有的固定选择待处理数据库的所导致的在上述数据库不可用时,无法调整待处理数据库进而降低数据处理效率的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据现有技术的一种数据库处理方法的示意图;
图2是根据现有技术的另一种数据库处理方法的示意图;
图3是根据现有技术的又一种数据库处理方法的示意图;
图4是根据本发明实施例的一种可选地数据库处理方法的应用场景示意图;
图5是根据本发明实施例的一种可选地数据库处理方法的流程示意图;
图6是根据本发明实施例的一种可选地数据库处理方法的示意图;
图7是根据本发明实施例的另一种可选地数据库处理方法的示意图;
图8是根据本发明实施例的另一种可选地数据库处理方法的流程示意图;
图9是根据本发明实施例的一种可选地数据库处理装置的示意图;以及
图10是根据本发明实施例的另一种可选地数据库处理装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本发明实施例,提供了一种数据库处理方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
可选地,在本实施例中,上述数据库处理可以但不限于应用于如图4所示的网络环境中,其中,用于发送数据库处理请求的第一应用系统可以但不限于位于终端402中,包括上述待处理的数据库的第二应用系统可以但不限于位于终端404中,其中,上述终端404可以但不限于用服务器替换。可选地,在本实施例中,上述待处理的数据库可以包括但不限于一个或多个可用数据库,进一步,上述待处理的数据库可以集中保存在一个终端404(例如,图4所示的终端404-1)中,也可以分别保存在不同的终端404(例如,图4所示的终端404-1和终端404-2)中。可选地,在本实施例中,上述数据库处理可以但不限于集成在一个终端中实现。可选地,在本实施例中,上述网络可以包括但不限于:广域网、城域网、局域网。上述终端可以包括但不限于:手机、平板电脑、笔记本电脑、PC机。上述只是一种示例,本实施例对此不做任何限定。
在上述运行环境下,本申请提供了如图5所示的数据库处理。图5是根据本发明实施例一的数据库处理的流程图,包括:
S502,第一应用系统生成待发送的第一数据库处理请求;
S504,第一应用系统根据第一数据库处理请求的标识从多个可用数据库中获取与第一数据库处理请求对应的第一可用数据库,其中,多个可用数据库位于第二应用系统中;
S506,第一应用系统将第一数据库处理请求发送到获取的第一可用数据库。
可选地,在本实施例中,上述数据库处理可以但不限于应用于对多个数据库的幂等校验控制过程中,以防止在数据库处理过程中第一应用系统生成的重复的数据库处理请求对数据进行重复的处理。例如,以电子支付为例,假设电子购物应用系统A生成购买商品a的支付订单,请求对该订单进行支付,为了防止用户的重复支付,银行支付系统B将可以但不限于采用本实施例中的数据库处理,以实现根据上述请求从系统中的多个可用的数据库中获取第一可用数据库以执行支付操作,且在第一可用数据库中对上述支付操作执行幂等校验,从而达到避免用户因重复支付同一订单而造成经济损失。上述举例只是一种示例,本实施例对此不做任何限定。
可选地,在本实施例中,第一应用系统可以但不限于根据第一数据库处理请求的标识从多个可用数据库中获取与上述第一数据库处理请求相对应的第一可用数据库,以构成第一应用系统生成的数据库处理请求与第二应用系统中的可用数据库相对应的映射关系,并将上述映射关系保存到第一应用系统中,从而达到根据上述映射关系直接发送数据库处理请求到相应可用数据库的目的。
可选地,在本实施例中,在第一应用系统生成待发送的第一数据库处理请求之前还包括:
S1,检测是否接收到第二应用系统更新后的多个可用数据库,其中,更新后的多个可用数据库包括:第二应用系统在检测到多个可用数据库中至少一个数据库出故障时,更新多个可用数据库后得到的更新后的多个可用数据库。
可选地,在本实施例中,上述第二应用系统中的数据库出故障可以包括但不限于:数据库本身故障,还未响应上述数据库处理请求执行相应处理操作。
具体结合以下示例进行说明,上述第一应用系统是在第二应用系统反馈的可用数据库中获取与第一数据库处理请求相对应的第一可用数据库,从而实现了灵活调整上述第一应用系统生成的数据库处理请求所对应的可用数据库,而不会受不可用数据库的影响,进一步,实现在可用数据库的幂等校验,避免对数据的重复处理。
例如,结合图6所示,假设第二应用系统B反馈可用数据库包括:DB01、DB02、DB03、DB04,第一应用系统A获取到与生成的第一数据库处理请求R1对应可用数据库为DB01,则将上述映射关系保存到第一应用系统A中的数据库DB中,并发送上述第一数据库处理请求到上述可用数据库DB01。进一步,当执行完上述第一次数据处理之后,假设第二应用系统B再次反馈可用数据库包括:DB02、DB03、DB04,则第一应用系统A将从更新后的多个可用数据库(不包括数据库DB01)中重新获取可用数据库,例如,获取可用数据库DB02,则第一应用系统A将发送上述第一数据库处理请求到上述可用数据库DB02。进一步,在可用数据库DB02中可以做幂等校验,判断上述第一数据库处理请求所要请求处理的数据是否被重复处理,若重复则拒绝处理。
通过本申请提供的实施例,第一应用系统通过根据生成的第一数据库处理请求的标识从多个可用数据库中获取与第一数据库处理请求对应的第一可用数据库,其中,上述多个可用数据库位于第二应用系统中,从而在第一应用系统侧直接从可用数据库中获取上述数据库处理请求所对应的可用数据库,实现了提高数据处理过程中灵活选择可用数据库,进而调高了数据的处理效率。
作为一种可选的方案,在第一应用系统将第一数据库处理请求发送到获取的第一可用数据库之后,还包括:
S1,第一应用系统生成待发送的第二数据库处理请求;
S2,第一应用系统根据第二数据库处理请求的标识判断第二数据库处理请求的标识是否与第一数据库处理请求的标识相同;
S3,若第一应用系统判断出第二数据库处理请求的标识与第一数据库处理请求的标识相同,则第一应用系统将发送第二数据库处理请求到第二应用系统的预定可用数据库,以使第二应用系统的预定可用数据库判断第二数据库处理请求所要请求处理的数据是否被重复处理。
可选地,在本实施例中,在第一应用系统判断出第二数据库处理请求的标识与第一数据库处理请求的标识相同时,用于接收上述第一应用系统发送的第二数据库处理请求的预定可用数据库可以包括但不限于以下至少之一:
1)在第一应用系统接收到更新后的多个可用数据库,且出故障的数据库是第一可用数据库时,上述预定可用数据可以包括但不限于上述多个可用数据库中不含第一可用数据库的其他可用数据库。
2)在第一应用系统未接收到更新后的多个可用数据库时,或者,在第一应用系统接收到更新后的多个可用数据库,且出故障的数据库不是第一可用数据库时,上述预定可用数据可以包括但不限于上述第一可用数据库。
例如,结合图6所示,假设第二应用系统B反馈可用数据库为DB01、DB02、DB03、DB04,第一应用系统A将第一数据库处理请求R1发送到对应的第一可用数据库DB01,假设第一应用系统生成的第二数据库处理请求R2与第一数据库处理请求R1相同,即R1=R2,且第二应用系统B反馈可用数据库包括:DB02、DB03、DB04,上述第一应用系统A将从可用数据库DB02、DB03、DB04中择一(例如,可用数据库DB03)作为与第二数据库处理请求对应的第二可用数据库,并将上述第二数据库处理请求发送到上述第二可用数据库DB03。
又例如,上述第二应用系统A反馈可用数据库包括:DB01、DB03、DB04,上述第一应用系统A将还是根据之前已建立的映射关系,将第二数据库处理请求R2发送到第一可用数据库DB01,上述第一可用数据库DB01在接收到上述第二数据库处理请求R2后,将对其进行唯一性校验以实现对数据处理的幂等控制,若得到上述第二数据库处理请求R2所要请求处理的数据已经处理过,则上述第一可用数据库将拒绝重复操作,从而保证避免对相同的数据库处理请求执行重复操作,提高了数据处理的效率。
通过本申请提供的实施例,通过判断第一应用系统根据第二数据库处理请求的标识判断第二数据库处理请求的标识是否与第一数据库处理请求的标识相同,从而实现将不同的数据库处理请求发送到不同的可用数据库中,以保证数据可以得到及时处理,而不会造成在数据库不可用时,因无法调整待处理数据库进而降低数据处理效率的问题。
作为一种可选的方案,在第一应用系统生成待发送的第二数据库处理请求之前,还包括:
S1,检测是否接收到第二应用系统更新后的多个可用数据库,其中,更新后的多个可用数据库包括:第二应用系统在检测到多个可用数据库中至少一个数据库出故障时,更新多个可用数据库后得到的更新后的多个可用数据库。
可选地,在本实施例中,在第二应用系统中可以包括但不限于数据库监控扫描组件,其中,上述数据库监控扫描组件可以但不限于用于实时获取可用数据库的信息,从而保证及时排除不可用数据库的干扰。、
可选地,在本实施例中,在第二应用系统中的数据库监控扫描组件监测到不可用数据库时,第二应用系统将及时对可用数据库信息进行更新,并将更新后的多个可用数据库发送给第一应用系统。可选地,在本实施例中,上述第一应用系统中可以但不限于通过第二应用系统的数据库选择组件检测是否接收到第二应用系统更新后的多个可用数据库,其中,上述数据库选择组件用于对第二应用系统发送的更新后的可用数据库进行保存,以便于上述第一应用系统根据第一数据库处理请求的标识从已保存的多个可用数据库中获取与第一数据库处理请求对应的第一可用数据库。
具体结合以下示例进行说明,如图7所示,第二应用系统B中的数据库监控扫描组件监测到数据库DB01出故障,则通知第一应用系统A中的数据库选择组件不再选择数据库DB01,并更新可用数据库的信息,生成不包含数据库DB01的更新后的多个可用数据库。
通过本申请提供的实施例,第一应用系统通过检测是否接收到第二应用系统更新后的多个可用数据库,从而实现实时调整多个可用数据库的信息,进而调整数据库处理请求与可用数据库相应的映射关系,以达到解决在第二应用系统中的数据库不可用时,无法调整待处理数据库进而降低数据处理效率的技术问题。
作为一种可选的方案,在第一应用系统接收到更新后的多个可用数据库,且出故障的数据库是第一可用数据库时,第一应用系统将发送第二数据库处理请求到第二应用系统的预定可用数据库包括:
S1,第一应用系统根据第二数据库处理请求的标识从更新后的多个可用数据库中获取与第二数据库处理请求对应的第二可用数据库;
S2,第一应用系统将第二数据库处理请求发送到获取的第二可用数据库。
具体结合以下示例进行描述,例如,以电子支付为例,假设电子购物应用系统A生成购买商品a的支付订单,请求对该订单进行支付,在发送支付订单的支付请求R1之前,银行支付系统B已经反馈可用数据库包括:DB01、DB02、DB03、DB04,电子购物应用系统A将支付请求R1发送到对应的第一可用数据库DB01。然而,电子购物应用系统A长时间未接收到该请求的响应,即请求超时,则电子购物应用系统A再次发送对该订单进行支付的请求R2,即R1=R2,在再次发送对该订单进行支付的支付请求R2之前,银行支付系统B反馈可用数据库包括:DB02、DB03、DB04,即第一可用数据库DB01已出故障,则电子购物应用系统A将从可用数据库DB02、DB03、DB04中择一(例如,可用数据库DB03)作为再次发送的支付请求R2对应的第二可用数据库,并将上述支付请求R2发送到上述第二可用数据库DB03。
通过本申请提供的实施例,在第一应用系统接收到更新后的多个可用数据库,且出故障的数据库是第一可用数据库时,通过从不包含出故障的第一可用数据的其他可用数据库中选择与数据库处理请求相对应可用数据库,实现了及时调整更新后的可用数据库,避免了不可用数据库对数据处理效率的影响。
作为一种可选的方案,在第一应用系统未接收到更新后的多个可用数据库时,或者,在第一应用系统接收到更新后的多个可用数据库,且出故障的数据库不是第一可用数据库时,第一应用系统将发送第二数据库处理请求到第二应用系统的预定可用数据库包括:
S1,第一应用系统将第二数据库处理请求直接发送到第一可用数据库。
具体结合以下示例进行描述,例如,以电子支付为例,假设电子购物应用系统A生成购买商品a的支付订单,请求对该订单进行支付,在发送支付订单的支付请求R1之前,银行支付系统B已经反馈可用数据库包括:DB01、DB02、DB03、DB04,电子购物应用系统A将支付请求R1发送到对应的第一可用数据库DB01。然而,电子购物应用系统A长时间未接收到该请求的响应,即请求超时,则电子购物应用系统A再次发送对该订单进行支付的请求R2,即R1=R2,在再次发送对该订单进行支付的支付请求R2之前,银行支付系统B反馈可用数据库包括:DB01、DB03、DB04,即数据库DB02出故障,则电子购物应用系统A将再次发送的支付请求R2对应的第一可用数据库DB01。进一步,第一可用数据库DB01将对接收到的支付请求R2进行唯一性校验以实现对数据处理的幂等控制,若得到上述支付请求R2所要请求处理的数据已经处理过,则上述第一可用数据库DB01将拒绝重复操作,从而保证避免对相同的数据库处理请求执行重复操作,提高了数据处理的效率。
通过本申请提供的实施例,在第一应用系统未接收到更新后的多个可用数据库时,或者,在第一应用系统接收到更新后的多个可用数据库,且出故障的数据库不是第一可用数据库时,通过直接选择第一可用数据库,而无需重复计算上述数据库处理请求所对应的可用数据库,从而实现了提高数据库处理效率的效果。
作为一种可选的方案,上述还包括:
S1,若第一应用系统判断出第二数据库处理请求的标识与第一数据库处理请求的标识不同,则第一应用系统将根据第二数据库处理请求的标识从多个可用数据库中获取与第二数据库处理请求对应的第三可用数据库;
S2,第一应用系统将第二数据库处理请求发送到获取的第三可用数据库。
可选地,在本实施例中,根据不同的应用场景上述第三可用数据可以为第一可用数据库,也可以是上述多个可用数据库中的其他可用数据库,本实施例对此不做任何限定。
具体结合以下示例进行描述,例如,以电子支付为例,假设电子购物应用系统A生成购买商品a的支付订单,请求对该订单进行支付,在发送支付订单的支付请求R1之前,银行支付系统B已经反馈可用数据库包括:DB01、DB02、DB03、DB04,电子购物应用系统A将支付请求R1发送到对应的第一可用数据库DB01。进一步,电子购物应用系统A生成购买商品b的支付订单,请求对该订单进行支付,则电子购物应用系统A再次发送对该订单进行支付的请求R2,即R1≠R2,在再次发送对该订单进行支付的支付请求R2之前,银行支付系统B反馈可用数据库包括:DB01、DB02、DB03、DB04,则电子购物应用系统A将从上述可用数据库中获取与上述支付请求对应的第三可用数据库(例如,数据库DB01)。进一步,第三可用数据库DB01将对接收到的支付请求R2进行唯一性校验以实现对数据处理的幂等控制,若得到上述支付请求R2所要请求处理的数据已经处理过,则上述第三可用数据库DB01将拒绝重复操作,从而保证避免对相同的数据库处理请求执行重复操作,提高了数据处理的效率。
通过本申请提供的实施例,在第一应用系统判断出第二数据库处理请求的标识与第一数据库处理请求的标识不同时,通过从多个可用数据库中选择与数据库处理请求相对应可用数据库,实现了及时调整更新后的可用数据库,避免了不可用数据库对数据处理效率的影响,进而实现了提高数据库处理效率的效果。
作为一种可选的方案,第一应用系统根据第一数据库处理请求的标识从多个可用数据库中获取与第一数据库处理请求对应的第一可用数据库包括:
S1,将第一数据库处理请求的标识中的预定位与多个可用数据库的总量相除取余;
S2,根据取余的结果从多个可用数据库中选择与第一数据库处理请求相对应的第一可用数据库。
具体结合以下示例进行描述,例如,假设第二应用系统反馈可用数据库包括:DB01、DB02、DB03、DB04,第一数据库处理请求的标识ID的末两位为13,多个可用数据库的总量为4,则根据上述计算方式13%4=1,与上述第一数据库处理请求相对应的第一可用数据库为多个可用数据库中的第一个数据库DB01。进一步,假设第二应用系统反馈数据库DB01出故障,即更新后的多个可用数据库包括:DB02、DB03、DB04,总量为3,则根据计算公式13%3=1,与上述第一数据库处理请求相对应的第一可用数据库为更新后的多个可用数据中的第一个数据库DB02。
通过本申请提供的实施例,通过上述方式从多个可用数据库中获取与数据库处理请求对应的可用数据库,避免了数据库不可用时所造成的数据处理效率低的问题,进一步,通过根据可用数据库及时调整数据库处理请求与可用数据库的映射关系,实现了提高数据库处理的灵活度。
具体结合图8中步骤S802-S822所示进行描述,如步骤S802,第一应用系统A生成数据库处理请求,如步骤S804,先判断是否存在与上述数据库处理请求相同的请求记录,若存在相同请求,则执行步骤S806,获取与上述请求相对应的第二应用系统B中可用数据库的选择信息,将上述业务请求按照上述选择信息发送给第二应用系统B中相应的数据库;若不存在相同请求,则执行步骤S810,生成与该数据库处理请求相对应的数据库的选择信息,接着执行S812,将上述业务请求与数据库的选择信息绑定并保存。
进一步,如步骤S814,第二应用系统B接收到上述数据库处理请求,如步骤S816,将识别上述绑定的数据库的选择信息,将上述业务请求发送到对应的数据库,如步骤S818,上述数据库将对上述数据库处理请求进行幂等判断,若幂等判断失败,也就是说,上述数据库处理请求所请求的内容已被执行过,则执行步骤S820,上述与数据库处理请求对应的数据库将拒绝重复处理;若幂等成功,则执行步骤S822,对上述数据库执行相应的处理。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
根据本发明实施例,还提供了一种数据库处理装置,上述数据库处理装置可以但不限于位于如图4所示的网络环境中的一个终端中,其中,用于发送数据库处理请求的第一应用系统可以但不限于位于终端402中,包括上述待处理的数据库的第二应用系统可以但不限于位于终端404中,其中,上述终端404可以但不限于用服务器替换。可选地,在本实施例中,上述待处理的数据库可以包括但不限于一个或多个可用数据库,进一步,上述待处理的数据库可以集中保存在一个终端404(例如,图4所示的终端404-1)中,也可以分别保存在不同的终端404(例如,图4所示的终端404-1和终端404-2)中。可选地,在本实施例中,上述数据库处理可以但不限于集成在一个终端中实现。可选地,在本实施例中,上述网络可以包括但不限于:广域网、城域网、局域网。上述终端可以包括但不限于:手机、平板电脑、笔记本电脑、PC机。上述只是一种示例,本实施例对此不做任何限定。
在上述网络环境下,本申请提供了如图9所示的数据库处理装置,其中,上述装置位于第一应用系统中。图9是根据本发明实施例一的数据库处理装置的示意图,包括:
1)第一生成单元902,用于生成待发送的第一数据库处理请求;
2)第一获取单元904,用于根据第一数据库处理请求的标识从多个可用数据库中获取与第一数据库处理请求对应的第一可用数据库,其中,多个可用数据库位于第二应用系统中;
3)第一发送单元906,用于将第一数据库处理请求发送到获取的第一可用数据库。
可选地,在本实施例中,上述数据库处理装置可以但不限于应用于对多个数据库的幂等校验控制过程中,以防止在数据库处理过程中第一应用系统生成的重复的数据库处理请求对数据进行重复的处理。例如,以电子支付为例,假设电子购物应用系统A生成购买商品a的支付订单,请求对该订单进行支付,为了防止用户的重复支付,银行支付系统B将可以但不限于采用本实施例中的数据库处理装置,以实现根据上述请求从系统中的多个可用的数据库中获取第一可用数据库以执行支付操作,且在第一可用数据库中对上述支付操作执行幂等校验,从而达到避免用户因重复支付同一订单而造成经济损失。上述举例只是一种示例,本实施例对此不做任何限定。
可选地,在本实施例中,第一应用系统可以但不限于根据第一数据库处理请求的标识从多个可用数据库中获取与上述第一数据库处理请求相对应的第一可用数据库,以构成第一应用系统生成的数据库处理请求与第二应用系统中的可用数据库相对应的映射关系,并将上述映射关系保存到第一应用系统中,从而达到根据上述映射关系直接发送数据库处理请求到相应可用数据库的目的。
可选地,在本实施例中,在第一应用系统生成待发送的第一数据库处理请求之前还包括:
S1,检测是否接收到第二应用系统更新后的多个可用数据库,其中,更新后的多个可用数据库包括:第二应用系统在检测到多个可用数据库中至少一个数据库出故障时,更新多个可用数据库后得到的更新后的多个可用数据库。
可选地,在本实施例中,上述第二应用系统中的数据库出故障可以包括但不限于:数据库本身故障,还未响应上述数据库处理请求执行相应处理操作。
具体结合以下示例进行说明,上述第一应用系统是在第二应用系统反馈的可用数据库中获取与第一数据库处理请求相对应的第一可用数据库,从而实现了灵活调整上述第一应用系统生成的数据库处理请求所对应的可用数据库,而不会受不可用数据库的影响,进一步,实现在可用数据库的幂等校验,避免对数据的重复处理。
例如,结合图6所示,假设第二应用系统B反馈可用数据库包括:DB01、DB02、DB03、DB04,第一应用系统A获取到与生成的第一数据库处理请求R1对应可用数据库为DB01,则将上述映射关系保存到第一应用系统A中的数据库DB中,并发送上述第一数据库处理请求到上述可用数据库DB01。进一步,当执行完上述第一次数据处理之后,假设第二应用系统B再次反馈可用数据库包括:DB02、DB03、DB04,则第一应用系统A将从更新后的多个可用数据库(不包括数据库DB01)中重新获取可用数据库,例如,获取可用数据库DB02,则第一应用系统A将发送上述第一数据库处理请求到上述可用数据库DB02。进一步,在可用数据库DB02中可以做幂等校验,判断上述第一数据库处理请求所要请求处理的数据是否被重复处理,若重复则拒绝处理。
通过本申请提供的实施例,第一应用系统通过根据生成的第一数据库处理请求的标识从多个可用数据库中获取与第一数据库处理请求对应的第一可用数据库,其中,上述多个可用数据库位于第二应用系统中,从而在第一应用系统侧直接从可用数据库中获取上述数据库处理请求所对应的可用数据库,实现了提高数据处理过程中灵活选择可用数据库,进而调高了数据的处理效率。
作为一种可选的方案,如图10所示,上述装置还包括:
1)第二生成单元1002,用于在将第一数据库处理请求发送到获取的第一可用数据库之后,生成待发送的第二数据库处理请求;
2)判断单元1004,用于根据第二数据库处理请求的标识判断第二数据库处理请求的标识是否与第一数据库处理请求的标识相同;
3)第二发送单元1006,用于在判断出第二数据库处理请求的标识与第一数据库处理请求的标识相同时,发送第二数据库处理请求到第二应用系统的预定可用数据库,以使第二应用系统的预定可用数据库判断第二数据库处理请求所要请求处理的数据是否被重复处理。
可选地,在本实施例中,在第一应用系统判断出第二数据库处理请求的标识与第一数据库处理请求的标识相同时,用于接收上述第一应用系统发送的第二数据库处理请求的预定可用数据库可以包括但不限于以下至少之一:
1)在第一应用系统接收到更新后的多个可用数据库,且出故障的数据库是第一可用数据库时,上述预定可用数据可以包括但不限于上述多个可用数据库中不含第一可用数据库的其他可用数据库。
2)在第一应用系统未接收到更新后的多个可用数据库时,或者,在第一应用系统接收到更新后的多个可用数据库,且出故障的数据库不是第一可用数据库时,上述预定可用数据可以包括但不限于上述第一可用数据库。
例如,结合图6所示,假设第二应用系统B反馈可用数据库为DB01、DB02、DB03、DB04,第一应用系统A将第一数据库处理请求R1发送到对应的第一可用数据库DB01,假设第一应用系统生成的第二数据库处理请求R2与第一数据库处理请求R1相同,即R1=R2,且第二应用系统B反馈可用数据库包括:DB02、DB03、DB04,上述第一应用系统A将从可用数据库DB02、DB03、DB04中择一(例如,可用数据库DB03)作为与第二数据库处理请求对应的第二可用数据库,并将上述第二数据库处理请求发送到上述第二可用数据库DB03。
又例如,上述第二应用系统A反馈可用数据库包括:DB01、DB03、DB04,上述第一应用系统A将还是根据之前已建立的映射关系,将第二数据库处理请求R2发送到第一可用数据库DB01,上述第一可用数据库DB01在接收到上述第二数据库处理请求R2后,将对其进行唯一性校验以实现对数据处理的幂等控制,若得到上述第二数据库处理请求R2所要请求处理的数据已经处理过,则上述第一可用数据库将拒绝重复操作,从而保证避免对相同的数据库处理请求执行重复操作,提高了数据处理的效率。
通过本申请提供的实施例,通过判断第一应用系统根据第二数据库处理请求的标识判断第二数据库处理请求的标识是否与第一数据库处理请求的标识相同,从而实现将不同的数据库处理请求发送到不同的可用数据库中,以保证数据可以得到及时处理,而不会造成在数据库不可用时,因无法调整待处理数据库进而降低数据处理效率的问题。
作为一种可选的方案,上述装置还包括:
1)检测单元,用于在生成待发送的第二数据库处理请求之前,检测是否接收到第二应用系统更新后的多个可用数据库,其中,更新后的多个可用数据库包括:第二应用系统在检测到多个可用数据库中至少一个数据库出故障时,更新所述多个可用数据库后得到的所述更新后的多个可用数据库。
可选地,在本实施例中,在第二应用系统中可以包括但不限于数据库监控扫描组件,其中,上述数据库监控扫描组件可以但不限于用于实时获取可用数据库的信息,从而保证及时排除不可用数据库的干扰。、
可选地,在本实施例中,在第二应用系统中的数据库监控扫描组件监测到不可用数据库时,第二应用系统将及时对可用数据库信息进行更新,并将更新后的多个可用数据库发送给第一应用系统。可选地,在本实施例中,上述第一应用系统中可以但不限于通过第二应用系统的数据库选择组件检测是否接收到第二应用系统更新后的多个可用数据库,其中,上述数据库选择组件用于对第二应用系统发送的更新后的可用数据库进行保存,以便于上述第一应用系统根据第一数据库处理请求的标识从已保存的多个可用数据库中获取与第一数据库处理请求对应的第一可用数据库。
具体结合以下示例进行说明,如图7所示,第二应用系统B中的数据库监控扫描组件监测到数据库DB01出故障,则通知第一应用系统A中的数据库选择组件不再选择数据库DB01,并更新可用数据库的信息,生成不包含数据库DB01的更新后的多个可用数据库。
通过本申请提供的实施例,第一应用系统通过检测是否接收到第二应用系统更新后的多个可用数据库,从而实现实时调整多个可用数据库的信息,进而调整数据库处理请求与可用数据库相应的映射关系,以达到解决在第二应用系统中的数据库不可用时,无法调整待处理数据库进而降低数据处理效率的技术问题。
作为一种可选的方案,上述第二发送单元包括:
1)第一获取模块,用于在第一应用系统接收到更新后的多个可用数据库,且出故障的数据库是第一可用数据库时,根据第二数据库处理请求的标识从更新后的多个可用数据库中获取与第二数据库处理请求对应的第二可用数据库;
2)第一发送模块,用于将第二数据库处理请求发送到获取的第二可用数据库。
具体结合以下示例进行描述,例如,以电子支付为例,假设电子购物应用系统A生成购买商品a的支付订单,请求对该订单进行支付,在发送支付订单的支付请求R1之前,银行支付系统B已经反馈可用数据库包括:DB01、DB02、DB03、DB04,电子购物应用系统A将支付请求R1发送到对应的第一可用数据库DB01。然而,电子购物应用系统A长时间未接收到该请求的响应,即请求超时,则电子购物应用系统A再次发送对该订单进行支付的请求R2,即R1=R2,在再次发送对该订单进行支付的支付请求R2之前,银行支付系统B反馈可用数据库包括:DB02、DB03、DB04,即第一可用数据库DB01已出故障,则电子购物应用系统A将从可用数据库DB02、DB03、DB04中择一(例如,可用数据库DB03)作为再次发送的支付请求R2对应的第二可用数据库,并将上述支付请求R2发送到上述第二可用数据库DB03。
通过本申请提供的实施例,在第一应用系统接收到更新后的多个可用数据库,且出故障的数据库是第一可用数据库时,通过从不包含出故障的第一可用数据的其他可用数据库中选择与数据库处理请求相对应可用数据库,实现了及时调整更新后的可用数据库,避免了不可用数据库对数据处理效率的影响。
作为一种可选的方案,上述第二发送单元包括:
1)第二发送模块,用于在第一应用系统未接收到更新后的多个可用数据库时,或者,在第一应用系统接收到更新后的多个可用数据库,且出故障的数据库不是第一可用数据库时,将第二数据库处理请求直接发送到第一可用数据库。
具体结合以下示例进行描述,例如,以电子支付为例,假设电子购物应用系统A生成购买商品a的支付订单,请求对该订单进行支付,在发送支付订单的支付请求R1之前,银行支付系统B已经反馈可用数据库包括:DB01、DB02、DB03、DB04,电子购物应用系统A将支付请求R1发送到对应的第一可用数据库DB01。然而,电子购物应用系统A长时间未接收到该请求的响应,即请求超时,则电子购物应用系统A再次发送对该订单进行支付的请求R2,即R1=R2,在再次发送对该订单进行支付的支付请求R2之前,银行支付系统B反馈可用数据库包括:DB01、DB03、DB04,即数据库DB02出故障,则电子购物应用系统A将再次发送的支付请求R2对应的第一可用数据库DB01。进一步,第一可用数据库DB01将对接收到的支付请求R2进行唯一性校验以实现对数据处理的幂等控制,若得到上述支付请求R2所要请求处理的数据已经处理过,则上述第一可用数据库DB01将拒绝重复操作,从而保证避免对相同的数据库处理请求执行重复操作,提高了数据处理的效率。
通过本申请提供的实施例,在第一应用系统未接收到更新后的多个可用数据库时,或者,在第一应用系统接收到更新后的多个可用数据库,且出故障的数据库不是第一可用数据库时,通过直接选择第一可用数据库,而无需重复计算上述数据库处理请求所对应的可用数据库,从而实现了提高数据库处理效率的效果。
作为一种可选的方案,上述装置还包括:
1)第三发送单元,用于在判断出第二数据库处理请求的标识与第一数据库处理请求的标识不同时,根据第二数据库处理请求的标识从多个可用数据库中获取与第二数据库处理请求对应的第三可用数据库;将第二数据库处理请求发送到获取的第三可用数据库。
可选地,在本实施例中,根据不同的应用场景上述第三可用数据可以为第一可用数据库,也可以是上述多个可用数据库中的其他可用数据库,本实施例对此不做任何限定。
具体结合以下示例进行描述,例如,以电子支付为例,假设电子购物应用系统A生成购买商品a的支付订单,请求对该订单进行支付,在发送支付订单的支付请求R1之前,银行支付系统B已经反馈可用数据库包括:DB01、DB02、DB03、DB04,电子购物应用系统A将支付请求R1发送到对应的第一可用数据库DB01。进一步,电子购物应用系统A生成购买商品b的支付订单,请求对该订单进行支付,则电子购物应用系统A再次发送对该订单进行支付的请求R2,即R1≠R2,在再次发送对该订单进行支付的支付请求R2之前,银行支付系统B反馈可用数据库包括:DB01、DB02、DB03、DB04,则电子购物应用系统A将从上述可用数据库中获取与上述支付请求对应的第三可用数据库(例如,数据库DB01)。进一步,第三可用数据库DB01将对接收到的支付请求R2进行唯一性校验以实现对数据处理的幂等控制,若得到上述支付请求R2所要请求处理的数据已经处理过,则上述第三可用数据库DB01将拒绝重复操作,从而保证避免对相同的数据库处理请求执行重复操作,提高了数据处理的效率。
通过本申请提供的实施例,在第一应用系统判断出第二数据库处理请求的标识与第一数据库处理请求的标识不同时,通过从多个可用数据库中选择与数据库处理请求相对应可用数据库,实现了及时调整更新后的可用数据库,避免了不可用数据库对数据处理效率的影响,进而实现了提高数据库处理效率的效果。
作为一种可选的方案,上述第一获取单元包括:
1)计算模块,用于将第一数据库处理请求的标识中的预定位与多个可用数据库的总量相除取余;
2)选择模块,用于根据取余的结果从多个可用数据库中选择与第一数据库处理请求相对应的第一可用数据库。
具体结合以下示例进行描述,例如,假设第二应用系统反馈可用数据库包括:DB01、DB02、DB03、DB04,第一数据库处理请求的标识ID的末两位为13,多个可用数据库的总量为4,则根据上述计算方式13%4=1,与上述第一数据库处理请求相对应的第一可用数据库为多个可用数据库中的第一个数据库DB01。进一步,假设第二应用系统反馈数据库DB01出故障,即更新后的多个可用数据库包括:DB02、DB03、DB04,总量为3,则根据计算公式13%3=1,与上述第一数据库处理请求相对应的第一可用数据库为更新后的多个可用数据中的第一个数据库DB02。
通过本申请提供的实施例,通过上述方式从多个可用数据库中获取与数据库处理请求对应的可用数据库,避免了数据库不可用时所造成的数据处理效率低的问题,进一步,通过根据可用数据库及时调整数据库处理请求与可用数据库的映射关系,实现了提高数据库处理的灵活度。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
实施例3
根据本发明实施例,还提供了一种数据库处理系统,上述数据库处理系统可以但不限于位于如图4所示的网络环境,其中,用于发送数据库处理请求的第一应用系统可以但不限于位于终端402中,包括上述待处理的数据库的第二应用系统可以但不限于位于终端404中,其中,上述终端404可以但不限于用服务器替换。可选地,在本实施例中,上述待处理的数据库可以包括但不限于一个或多个可用数据库,进一步,上述待处理的数据库可以集中保存在一个终端404中,也可以分别保存在不同的终端404中。可选地,在本实施例中,上述数据库处理可以但不限于集成在一个终端中实现。可选地,在本实施例中,上述网络可以包括但不限于:广域网、城域网、局域网。上述终端可以包括但不限于:手机、平板电脑、笔记本电脑、PC机。上述只是一种示例,本实施例对此不做任何限定。
在上述网络环境下,本申请提供了数据库处理系统,包括:
1)第一应用系统,用于生成待发送的第一数据库处理请求,并根据第一数据库处理请求的标识从多个可用数据库中获取与第一数据库处理请求对应的第一可用数据库,将第一数据库处理请求发送到获取的第一可用数据库,其中,多个可用数据库位于第二应用系统中;
2)第二应用系统,用于检测多个可用数据库中是否至少有一个数据库出故障,并在检测到多个可用数据库中至少一个数据库出故障时,更新多个可用数据库后得到的更新后的多个可用数据库,发送更新后的多个可用数据库到第一应用系统。
可选地,在本实施例中,上述数据库处理系统可以但不限于应用于对多个数据库的幂等校验控制过程中,以防止在数据库处理过程中第一应用系统生成的重复的数据库处理请求对数据进行重复的处理。例如,以电子支付为例,假设电子购物应用系统A生成购买商品a的支付订单,请求对该订单进行支付,为了防止用户的重复支付,银行支付系统B将可以但不限于采用本实施例中的数据库处理装置,以实现根据上述请求从系统中的多个可用的数据库中获取第一可用数据库以执行支付操作,且在第一可用数据库中对上述支付操作执行幂等校验,从而达到避免用户因重复支付同一订单而造成经济损失。上述举例只是一种示例,本实施例对此不做任何限定。
可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
实施例4
根据本发明实施例,还提供了一种用于执行数据库处理方法的终端,上述终端可以但不限于如图4所示的网络环境中的一个终端,其中,用于发送数据库处理请求的第一应用系统可以但不限于位于终端402中,包括上述待处理的数据库的第二应用系统可以但不限于位于终端404中,其中,上述终端404可以但不限于用服务器替换。可选地,在本实施例中,上述待处理的数据库可以包括但不限于一个或多个可用数据库,进一步,上述待处理的数据库可以集中保存在一个终端404中,也可以分别保存在不同的终端404中。可选地,在本实施例中,上述数据库处理可以但不限于集成在一个终端中实现。可选地,在本实施例中,上述网络可以包括但不限于:广域网、城域网、局域网。上述终端可以包括但不限于:手机、平板电脑、笔记本电脑、PC机。上述只是一种示例,本实施例对此不做任何限定。
在上述网络环境下,本申请提供了一种用于执行数据库处理方法的终端,包括:
1)存储器,被设置为存储根据第一数据库处理请求的标识从多个可用数据库中获取到的与第一可用数据库处理请求对应的第一可用数据库;
2)处理器,被设置为生成待发送的第一数据库处理请求,并根据第一数据库处理请求的标识从多个可用数据库中获取第一可用数据库;
3)通讯接口,被设置为将第一数据库处理请求发送到获取的第一可用数据库。
可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-OnlyMemory,ROM)、随机存取器(RandomAccessMemory,RAM)、磁盘或光盘等。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
实施例5
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一所提供的数据库处理方法所执行的程序代码。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
S1,第一应用系统生成待发送的第一数据库处理请求;
S2,第一应用系统根据第一数据库处理请求的标识从多个可用数据库中获取与第一数据库处理请求对应的第一可用数据库,其中,多个可用数据库位于第二应用系统中;
S3,第一应用系统将第一数据库处理请求发送到获取的第一可用数据库。
可选地,在本实施例中,存储介质还被设置为存储用于执行以下步骤的程序代码:
S1,在第一应用系统将第一数据库处理请求发送到获取的第一可用数据库之后,第一应用系统生成待发送的第二数据库处理请求;
S2,第一应用系统根据第二数据库处理请求的标识判断第二数据库处理请求的标识是否与第一数据库处理请求的标识相同;
S3,若第一应用系统判断出第二数据库处理请求的标识与第一数据库处理请求的标识相同,则第一应用系统将发送第二数据库处理请求到第二应用系统的预定可用数据库,以使第二应用系统的预定可用数据库判断第二数据库处理请求所要请求处理的数据是否被重复处理。
可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (15)
1.一种数据库处理方法,其特征在于,包括:
第一应用系统生成待发送的第一数据库处理请求;
所述第一应用系统根据所述第一数据库处理请求的标识从多个可用数据库中获取与所述第一数据库处理请求对应的第一可用数据库,其中,所述多个可用数据库位于第二应用系统中;
所述第一应用系统将所述第一数据库处理请求发送到获取的所述第一可用数据库。
2.根据权利要求1所述的方法,其特征在于,在所述第一应用系统将所述第一数据库处理请求发送到获取的所述第一可用数据库之后,还包括:
所述第一应用系统生成待发送的第二数据库处理请求;
所述第一应用系统根据所述第二数据库处理请求的标识判断所述第二数据库处理请求的标识是否与所述第一数据库处理请求的标识相同;
若所述第一应用系统判断出所述第二数据库处理请求的标识与所述第一数据库处理请求的标识相同,则所述第一应用系统将发送所述第二数据库处理请求到所述第二应用系统的预定可用数据库,以使所述第二应用系统的所述预定可用数据库判断所述第二数据库处理请求所要请求处理的数据是否被重复处理。
3.根据权利要求2所述的方法,其特征在于,在所述第一应用系统生成待发送的第二数据库处理请求之前,还包括:
检测是否接收到所述第二应用系统更新后的多个可用数据库,其中,所述更新后的多个可用数据库包括:所述第二应用系统在检测到所述多个可用数据库中至少一个所述数据库出故障时,更新所述多个可用数据库后得到的所述更新后的多个可用数据库。
4.根据权利要求3所述的方法,其特征在于,在所述第一应用系统接收到所述更新后的多个可用数据库,且出故障的所述数据库是所述第一可用数据库时,所述第一应用系统将发送所述第二数据库处理请求到所述第二应用系统的预定可用数据库包括:
所述第一应用系统根据所述第二数据库处理请求的标识从所述更新后的多个可用数据库中获取与所述第二数据库处理请求对应的第二可用数据库;
所述第一应用系统将所述第二数据库处理请求发送到获取的所述第二可用数据库。
5.根据权利要求3所述的方法,其特征在于,在所述第一应用系统未接收到所述更新后的多个可用数据库时,或者,在所述第一应用系统接收到所述更新后的多个可用数据库,且出故障的所述数据库不是所述第一可用数据库时,所述第一应用系统将发送所述第二数据库处理请求到所述第二应用系统的预定可用数据库包括:
所述第一应用系统将所述第二数据库处理请求直接发送到所述第一可用数据库。
6.根据权利要求2所述的方法,其特征在于,还包括:
若所述第一应用系统判断出所述第二数据库处理请求的标识与所述第一数据库处理请求的标识不同,则所述第一应用系统将根据所述第二数据库处理请求的标识从多个可用数据库中获取与所述第二数据库处理请求对应的第三可用数据库;
所述第一应用系统将所述第二数据库处理请求发送到获取的所述第三可用数据库。
7.根据权利要求1所述的方法,其特征在于,所述第一应用系统根据所述第一数据库处理请求的标识从多个可用数据库中获取与所述第一数据库处理请求对应的第一可用数据库包括:
将所述第一数据库处理请求的标识中的预定位与所述多个可用数据库的总量相除取余;
根据所述取余的结果从所述多个可用数据库中选择与所述第一数据库处理请求相对应的所述第一可用数据库。
8.一种数据库处理装置,其特征在于,位于第一应用系统中,所述装置包括:
第一生成单元,用于生成待发送的第一数据库处理请求;
第一获取单元,用于根据所述第一数据库处理请求的标识从多个可用数据库中获取与所述第一数据库处理请求对应的第一可用数据库,其中,所述多个可用数据库位于第二应用系统中;
第一发送单元,用于将所述第一数据库处理请求发送到获取的所述第一可用数据库。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
第二生成单元,用于在将所述第一数据库处理请求发送到获取的所述第一可用数据库之后,生成待发送的第二数据库处理请求;
判断单元,用于根据所述第二数据库处理请求的标识判断所述第二数据库处理请求的标识是否与所述第一数据库处理请求的标识相同;
第二发送单元,用于在判断出所述第二数据库处理请求的标识与所述第一数据库处理请求的标识相同时,发送所述第二数据库处理请求到所述第二应用系统的预定可用数据库,以使所述第二应用系统的所述预定可用数据库判断所述第二数据库处理请求所要请求处理的数据是否被重复处理。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
检测单元,用于在生成待发送的第二数据库处理请求之前,检测是否接收到所述第二应用系统更新后的多个可用数据库,其中,所述更新后的多个可用数据库包括:所述第二应用系统在检测到所述多个可用数据库中至少一个所述数据库出故障时,更新所述多个可用数据库后得到的所述更新后的多个可用数据库。
11.根据权利要求10所述的装置,其特征在于,所述第二发送单元包括:
第一获取模块,用于在所述第一应用系统接收到所述更新后的多个可用数据库,且出故障的所述数据库是所述第一可用数据库时,根据所述第二数据库处理请求的标识从所述更新后的多个可用数据库中获取与所述第二数据库处理请求对应的第二可用数据库;
第一发送模块,用于将所述第二数据库处理请求发送到获取的所述第二可用数据库。
12.根据权利要求10所述的装置,其特征在于,所述第二发送单元包括:
第二发送模块,用于在所述第一应用系统未接收到所述更新后的多个可用数据库时,或者,在所述第一应用系统接收到所述更新后的多个可用数据库,且出故障的所述数据库不是所述第一可用数据库时,将所述第二数据库处理请求直接发送到所述第一可用数据库。
13.根据权利要求9所述的装置,其特征在于,还包括:
第三发送单元,用于在判断出所述第二数据库处理请求的标识与所述第一数据库处理请求的标识不同时,根据所述第二数据库处理请求的标识从多个可用数据库中获取与所述第二数据库处理请求对应的第三可用数据库;将所述第二数据库处理请求发送到获取的所述第三可用数据库。
14.根据权利要求8所述的装置,其特征在于,所述第一获取单元包括:
计算模块,用于将所述第一数据库处理请求的标识中的预定位与所述多个可用数据库的总量相除取余;
选择模块,用于根据所述取余的结果从所述多个可用数据库中选择与所述第一数据库处理请求相对应的所述第一可用数据库。
15.一种数据库处理系统,其特征在于,包括:
第一应用系统,用于生成待发送的第一数据库处理请求,并根据所述第一数据库处理请求的标识从多个可用数据库中获取与所述第一数据库处理请求对应的第一可用数据库,将所述第一数据库处理请求发送到获取的所述第一可用数据库,其中,所述多个可用数据库位于第二应用系统中;
所述第二应用系统,用于检测所述多个可用数据库中是否至少有一个所述数据库出故障,并在检测到所述多个可用数据库中至少一个所述数据库出故障时,更新所述多个可用数据库后得到的更新后的多个可用数据库,发送所述更新后的多个可用数据库到所述第一应用系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410526587.XA CN105573996A (zh) | 2014-10-09 | 2014-10-09 | 数据库处理方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410526587.XA CN105573996A (zh) | 2014-10-09 | 2014-10-09 | 数据库处理方法、装置及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105573996A true CN105573996A (zh) | 2016-05-11 |
Family
ID=55884146
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410526587.XA Pending CN105573996A (zh) | 2014-10-09 | 2014-10-09 | 数据库处理方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105573996A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105915627A (zh) * | 2016-05-30 | 2016-08-31 | 北京小米移动软件有限公司 | 业务请求处理方法及装置 |
CN107392762A (zh) * | 2017-04-14 | 2017-11-24 | 阿里巴巴集团控股有限公司 | 清算文件处理的方法、装置及设备 |
CN108874654A (zh) * | 2017-05-15 | 2018-11-23 | 阿里巴巴集团控股有限公司 | 幂等有效性测试方法、装置及设备、可读介质 |
CN109376174A (zh) * | 2018-12-30 | 2019-02-22 | 北京奇艺世纪科技有限公司 | 一种选择数据库的方法和装置 |
CN109981459A (zh) * | 2019-02-28 | 2019-07-05 | 联想(北京)有限公司 | 一种信息发送方法、客户端和计算机可读存储介质 |
CN110297578A (zh) * | 2019-06-27 | 2019-10-01 | 北京金山安全软件有限公司 | 批量处理海量数据中部分数据的方法、装置及电子设备 |
CN111708802A (zh) * | 2020-06-02 | 2020-09-25 | 拉卡拉支付股份有限公司 | 网络请求防重处理方法及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101166176A (zh) * | 2006-10-19 | 2008-04-23 | 中兴通讯股份有限公司 | 实现会话发起协议分布式系统中动态负载均衡的方法 |
CN102262626A (zh) * | 2010-05-24 | 2011-11-30 | 阿里巴巴集团控股有限公司 | 一种数据库存储数据的方法及装置 |
CN102594912A (zh) * | 2012-03-15 | 2012-07-18 | 北京昆仑万维科技股份有限公司 | 服务器架构下的数据处理方法、服务器及服务器架构 |
CN102929698A (zh) * | 2012-09-29 | 2013-02-13 | 北京百度网讯科技有限公司 | 一种任务判重方法及系统 |
CN103067439A (zh) * | 2012-10-17 | 2013-04-24 | 北京奇虎科技有限公司 | 负载均衡方法和系统 |
CN103246659A (zh) * | 2012-02-06 | 2013-08-14 | 阿里巴巴集团控股有限公司 | 键值数据查询的方法和装置 |
CN103581273A (zh) * | 2012-08-08 | 2014-02-12 | 阿里巴巴集团控股有限公司 | 一种分布式系统执行业务的方法、装置及系统 |
CN103685583A (zh) * | 2012-09-05 | 2014-03-26 | 阿里巴巴集团控股有限公司 | 一种域名解析的方法和系统 |
-
2014
- 2014-10-09 CN CN201410526587.XA patent/CN105573996A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101166176A (zh) * | 2006-10-19 | 2008-04-23 | 中兴通讯股份有限公司 | 实现会话发起协议分布式系统中动态负载均衡的方法 |
CN102262626A (zh) * | 2010-05-24 | 2011-11-30 | 阿里巴巴集团控股有限公司 | 一种数据库存储数据的方法及装置 |
CN103246659A (zh) * | 2012-02-06 | 2013-08-14 | 阿里巴巴集团控股有限公司 | 键值数据查询的方法和装置 |
CN102594912A (zh) * | 2012-03-15 | 2012-07-18 | 北京昆仑万维科技股份有限公司 | 服务器架构下的数据处理方法、服务器及服务器架构 |
CN103581273A (zh) * | 2012-08-08 | 2014-02-12 | 阿里巴巴集团控股有限公司 | 一种分布式系统执行业务的方法、装置及系统 |
CN103685583A (zh) * | 2012-09-05 | 2014-03-26 | 阿里巴巴集团控股有限公司 | 一种域名解析的方法和系统 |
CN102929698A (zh) * | 2012-09-29 | 2013-02-13 | 北京百度网讯科技有限公司 | 一种任务判重方法及系统 |
CN103067439A (zh) * | 2012-10-17 | 2013-04-24 | 北京奇虎科技有限公司 | 负载均衡方法和系统 |
Non-Patent Citations (2)
Title |
---|
宁涛: ""UMTS系统接入安全机制的研究"", 《中国优秀硕士学位论文亲亲我数据库 信息科技辑》 * |
徐志云: ""无线传感网虚拟IPv6网关设计与实现"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105915627A (zh) * | 2016-05-30 | 2016-08-31 | 北京小米移动软件有限公司 | 业务请求处理方法及装置 |
CN107392762A (zh) * | 2017-04-14 | 2017-11-24 | 阿里巴巴集团控股有限公司 | 清算文件处理的方法、装置及设备 |
CN108874654A (zh) * | 2017-05-15 | 2018-11-23 | 阿里巴巴集团控股有限公司 | 幂等有效性测试方法、装置及设备、可读介质 |
CN108874654B (zh) * | 2017-05-15 | 2022-08-16 | 创新先进技术有限公司 | 幂等有效性测试方法、装置及设备、可读介质 |
CN109376174A (zh) * | 2018-12-30 | 2019-02-22 | 北京奇艺世纪科技有限公司 | 一种选择数据库的方法和装置 |
CN109376174B (zh) * | 2018-12-30 | 2021-04-27 | 北京奇艺世纪科技有限公司 | 一种选择数据库的方法和装置 |
CN109981459A (zh) * | 2019-02-28 | 2019-07-05 | 联想(北京)有限公司 | 一种信息发送方法、客户端和计算机可读存储介质 |
CN110297578A (zh) * | 2019-06-27 | 2019-10-01 | 北京金山安全软件有限公司 | 批量处理海量数据中部分数据的方法、装置及电子设备 |
CN111708802A (zh) * | 2020-06-02 | 2020-09-25 | 拉卡拉支付股份有限公司 | 网络请求防重处理方法及装置 |
CN111708802B (zh) * | 2020-06-02 | 2024-05-07 | 拉卡拉支付股份有限公司 | 网络请求防重处理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105573996A (zh) | 数据库处理方法、装置及系统 | |
US10268841B1 (en) | Data anonymity and separation for user computation | |
CN108446974B (zh) | 数据处理装置、方法及计算机可读存储介质 | |
CN108520454A (zh) | 实时回调订单的方法和系统 | |
US20170249606A1 (en) | System and method for electronic currency mining | |
CN106911780A (zh) | 业务id生成方法、装置及系统 | |
CN102932472B (zh) | 一种数据处理方法以及通信系统 | |
CN104751266A (zh) | 数据处理方法、增值服务器及系统 | |
CN104599121A (zh) | 一种信息传输方法、装置和系统 | |
CN105787077A (zh) | 数据同步方法和装置 | |
CN105591743A (zh) | 通过用户终端的设备运行特征进行身份鉴权的方法及装置 | |
CN105205595A (zh) | 投资项目的管理方法及装置 | |
CN105354745A (zh) | 数据信息的处理方法、数据信息处理平台和管理平台 | |
CN104881767A (zh) | 一种基于多库存系统进行库存管理的方法和系统 | |
CN105978938A (zh) | 一种业务处理设备的业务状态确定方法及调度设备 | |
CN110781134A (zh) | 数据处理方法及装置、计算机存储介质、电子设备 | |
US20190139098A1 (en) | Systems and methods for real-time data processing analytics engine with artificial intelligence for transaction handling | |
US8856376B1 (en) | Stabilization tool for a high-capacity network infrastructure | |
CN106933873A (zh) | 一种跨平台数据查询方法和设备 | |
CN103580951B (zh) | 多个信息系统的输出比较方法、测试迁移辅助方法及系统 | |
CN111443962A (zh) | 一种交易限制方法及装置 | |
CN106095886A (zh) | 一种数据处理方法及其装置 | |
CN105225153A (zh) | 数据处理方法及装置 | |
CN115619486A (zh) | 订单处理方法、装置、电子设备和存储介质 | |
CN108805540A (zh) | 一种支付处理系统、方法和数字对象标识 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160511 |
|
RJ01 | Rejection of invention patent application after publication |