本技术涉及数据中心,更具体的说,是涉及一种多数据中心的请求处理方法、装置、设备及系统。
背景技术:
1、在由多个数据中心构成的分布式系统中,存在着需要多个数据中心执行相同操作的情况。但是,受不可抗力因素的影响,可能会发生某个数据中心未接收到操作执行请求、未执行该操作或未成功执行该操作等情况,从而导致各个数据中心不一致。
2、例如,在银行金融领域所采用的异地多活架构中,需要保证机构信息、汇率、交易菜单、交易信息、柜员信息等数据在多个数据中心上保持一致,以保证数据的高度可用。在上述的基础上,可以采用多数据中心多写的方式进行数据的存储和维护,也就是令各数据中心分别对其数据库执行相同的操作。但是,受网络波动、内存异常、数据库响应异常等因素的影响,各数据中心对其数据库执行的操作可能不同,从而导致各数据中心存储的数据不一致,影响数据的可用性。
3、因此,如何保证多数据中心的一致性,成为本领域技术人员亟需解决的问题。
技术实现思路
1、鉴于上述问题,提出了本技术以便提供一种多数据中心的请求处理方法、装置、设备及系统,以在一定程度上提高各数据中心间的一致性。
2、具体方案如下:
3、第一方面,提供了一种多数据中心的请求处理方法,应用于多数据中心,所述多数据中心包括一个主数据中心和多个从数据中心,所述请求处理方法应用于所述主数据中心,所述请求处理方法包括:
4、获取所述主数据中心的多发消息队列中的第一条处理请求,得到目标处理请求;所述多发消息队列中的处理请求是所述多数据中心中的任一个数据中心发起的,且需要所述多数据中心中的各个数据中心处理的多发请求;
5、对所述目标处理请求进行处理,所述处理包括:执行所述目标处理请求对应的操作,确定所述主数据中心对所述目标处理请求的执行结果,以及,将所述目标处理请求分别发往各个所述从数据中心,以使各个所述从数据中心执行所述目标处理请求对应的操作,并向所述主数据中心反馈对所述目标处理请求的执行结果;
6、判断对所述目标处理请求进行处理的结果是否满足所述目标处理请求的处理完成条件,所述处理完成条件包括:所述多数据中心各自的执行结果均一致;
7、若是,删除所述多发消息队列中的所述目标处理请求,并返回执行获取所述主数据中心的多发消息队列中的第一条处理请求的步骤;
8、若否,依据预设的重处理流程执行规则,对所述目标处理请求执行重处理流程,得到重处理流程执行结果;
9、在所述重处理流程执行结果表征重处理完成的情况下,执行删除所述多发消息队列中的所述目标处理请求的步骤;
10、在所述重处理流程执行结果表征重处理失败的情况下,停止处理所述多发消息队列中的各个处理请求,并输出报警信号,所述报警信号用于表征所述多数据中心在处理多发请求的过程中发生异常。
11、第二方面,提供了一种多数据中心的请求处理装置,应用于多数据中心,所述多数据中心包括一个主数据中心和多个从数据中心,所述请求处理装置应用于所述主数据中心,所述请求处理装置包括:
12、目标处理请求获取单元,用于获取所述主数据中心的多发消息队列中的第一条处理请求,得到目标处理请求;所述多发消息队列中的处理请求是所述多数据中心中的任一个数据中心发起的,且需要所述多数据中心中的各个数据中心处理的多发请求;
13、目标处理请求处理单元,用于对所述目标处理请求进行处理,所述处理包括:执行所述目标处理请求对应的操作,确定所述主数据中心对所述目标处理请求的执行结果,以及,将所述目标处理请求分别发往各个所述从数据中心,以使各个所述从数据中心执行所述目标处理请求对应的操作,并向所述主数据中心反馈对所述目标处理请求的执行结果;判断对所述目标处理请求进行处理的结果是否满足所述目标处理请求的处理完成条件,所述处理完成条件包括:所述多数据中心各自的执行结果均一致;在满足所述处理完成条件的情况下,删除所述多发消息队列中的所述目标处理请求,并返回执行获取所述主数据中心的多发消息队列中的第一条处理请求的步骤;
14、目标处理请求重处理单元,用于在不满足所述处理完成条件的情况下,依据预设的重处理流程执行规则,对所述目标处理请求执行重处理流程,得到重处理流程执行结果;在所述重处理流程执行结果表征重处理完成的情况下,执行删除所述多发消息队列中的所述目标处理请求的步骤;在所述重处理流程执行结果表征重处理失败的情况下,停止处理所述多发消息队列中的各个处理请求,并输出报警信号,所述报警信号用于表征所述多数据中心在处理多发请求的过程中发生异常。
15、第三方面,提供了一种多数据中心的请求处理设备,应用于多数据中心,所述多数据中心包括一个主数据中心和多个从数据中心,所述请求处理设备应用于所述主数据中心,所述请求处理设备包括:存储器和处理器;
16、所述存储器,用于存储程序;
17、所述处理器,用于执行所述程序,实现上述的多数据中心的请求处理方法的各个步骤。
18、第四方面,提供了一种多数据中心的请求处理系统,包括一个主数据中心和多个从数据中心;
19、所述主数据中心获取所述主数据中心的多发消息队列中的第一条处理请求,得到目标处理请求;所述多发消息队列中的处理请求是所述主数据中心和所述多个从数据中心中的任一个数据中心发起的,且需要所述主数据中心和所述多个从数据中心中的各个数据中心处理的多发请求;
20、所述主数据中心对所述目标处理请求进行处理,所述处理包括:执行所述目标处理请求对应的操作,确定所述主数据中心对所述目标处理请求的执行结果,以及,将所述目标处理请求分别发往各个所述从数据中心;
21、所述从数据中心执行所述目标处理请求对应的操作,确定并向所述主数据中心反馈该从数据中心对所述目标处理请求的执行结果;
22、所述主数据中心判断对所述目标处理请求进行处理的结果是否满足所述目标处理请求的处理完成条件,所述处理完成条件包括:所述主数据中心和所述多个从数据中心各自的执行结果均一致;若是,删除所述多发消息队列中的所述目标处理请求,并返回执行获取所述主数据中心的多发消息队列中的第一条处理请求的步骤;若否,依据预设的重处理流程执行规则,对所述目标处理请求执行重处理流程,得到重处理流程执行结果;在所述重处理流程执行结果表征重处理完成的情况下,执行删除所述多发消息队列中的所述目标处理请求的步骤;在所述重处理流程执行结果表征重处理失败的情况下,停止处理所述多发消息队列中的各个处理请求,并输出报警信号,所述报警信号用于表征所述主数据中心和所述多个从数据中心在处理多发请求的过程中发生异常。
23、借由上述技术方案,本技术借由多数据中心中预先设置的主数据中心,对任一个数据中心发起的需要各个数据中心处理的处理请求进行处理,具体包括:分别令各个数据中心执行该处理请求对应的操作,并依据各个数据中心的执行结果,确定主数据中心对该处理请求进行处理的结果,在各个数据中心的执行结果不一致,即对该处理请求进行处理的结果不满足处理完成条件的情况下,按照预设的重处理流程执行规则,对该处理请求执行重处理流程,以使各数据中心重新执行该处理请求对应的操作,借由重处理流程,能够在一定程度上减少网络波动等偶然因素对多数据中心的多发请求处理过程的干扰,从而在一定程度上提高了多数据中心的一致性。