发明内容
基于此,有必要针对上述技术问题,提供一种能够提高响应速度的业务请求处理方法、装置、计算机设备和存储介质。
一种业务请求处理方法,所述方法包括:
当接收到客户系统发送的业务请求时,主副本对所述业务请求进行复制,并将复制的业务请求发送至多个成员副本;所述主副本和所述成员副本是对目标计算机程序进行复制所得的副本,并分别部署在分布式集群的不同节点上;
所述主副本在向所述成员副本发送所述复制的业务请求时,对所述业务请求进行业务处理,得到业务处理后的第一响应结果;
若收到所述成员副本中的至少一部分副本响应于所述复制的业务请求而返回的确认信息,所述主副本将所述第一响应结果反馈至所述客户系统。
在一个实施例中,所述业务请求为多个,所述主副本和所述成员副本均收到所述业务请求,所述方法还包括:
所述主副本对所述业务请求进行排序,得到业务请求顺序号,并将所述业务请求顺序号发送至所述成员副本;
所述主副本在向所述成员副本发送所述业务请求顺序号时,对各所述业务请求进行业务处理,得到业务处理后的第一响应结果;
若收到所述成员副本中的至少一部分副本响应于所述业务请求顺序号而返回的确认信息,所述主副本将所述第一响应结果反馈至所述客户系统。
在一个实施例中,所述方法还包括:
若在得到所述第一响应结果时未收到各所述成员副本响应于所述复制的业务请求返回的确认信息,所述主副本持续监听各所述成员副本返回的确认信息,直至达到预设截止时间。
在一个实施例中,所述方法还包括:
所述成员副本在接收到所述复制的业务请求时,生成所述确认信息;
所述成员副本将所述确认信息发送至所述主副本,以使所述主副本在收到所述成员副本中的至少一部分副本发送的所述确认信息时,将所述第一响应结果反馈至所述客户系统。
在一个实施例中,所述方法还包括:
所述主副本在接收到所述成员副本返回的所述确认信息时,向所述成员副本发送执行指令;
响应于所述执行指令,所述成员副本对所述复制的业务请求进行业务处理,生成第二响应结果。
在一个实施例中,所述生成第二响应结果之后,所述方法还包括:
若所述成员副本接收到结果发送指令,则所述成员副本将所述第二响应结果发送至所述客户系统;所述结果发送指令是在所述主副本发生故障时所触发的指令,用于指示所述成员副本向所述客户系统发送所述第二响应结果。
在一个实施例中,所述业务请求为订单业务请求;所述对所述业务请求进行业务处理,得到业务处理后的第一响应结果包括:
响应于所述订单业务请求,生成订单确认信息,并将所述订单确认信息作为所述第一响应结果;
所述方法还包括:
根据从所述订单业务请求中提取的订单数量调整存储数量;
当再次接收到订单业务请求时,根据调整后的存储数量生成新的订单确认信息,并将所述新的订单确认信息作为所述第一响应结果。
一种业务请求处理系统,所述系统包括:
主副本,当接收到客户系统发送的业务请求时,用于对所述业务请求进行复制,并将复制的业务请求发送至多个成员副本;所述主副本和所述成员副本是对目标计算机程序进行复制所得的副本,并分别部署在分布式集群的不同节点上;
所述主副本,还用于在向所述成员副本发送所述复制的业务请求时,对所述业务请求进行业务处理,得到业务处理后的第一响应结果;
所述主副本,若收到所述成员副本中的至少一部分副本响应于所述复制的业务请求而返回的确认信息,还用于将所述第一响应结果反馈至所述客户系统。
在一个实施例中,所述业务请求为多个,所述主副本和所述成员副本均收到所述业务请求,所述系统还包括:
所述主副本对所述业务请求进行排序,得到业务请求顺序号,并将所述业务请求顺序号发送至所述成员副本;
所述主副本在向所述成员副本发送所述业务请求顺序号时,对各所述业务请求进行业务处理,得到业务处理后的第一响应结果;
若收到所述成员副本中的至少一部分副本响应于所述业务请求顺序号而返回的确认信息,所述主副本将所述第一响应结果反馈至所述客户系统。
在一个实施例中,所述系统还包括:
所述主副本,若在得到所述第一响应结果时未收到各所述成员副本响应于所述复制的业务请求返回的确认信息,还用于持续监听各所述成员副本返回的确认信息,直至达到预设截止时间。
在一个实施例中,所述系统还包括:
所述成员副本,用于在接收到所述复制的业务请求时,生成所述确认信息;
所述成员副本,还用于将所述确认信息发送至所述主副本,以使所述主副本在收到所述成员副本中的至少一部分副本发送的所述确认信息时,将所述第一响应结果反馈至所述客户系统。
在一个实施例中,所述系统还包括:
所述主副本,还用于在接收到所述成员副本返回的所述确认信息时,向所述成员副本发送执行指令;
所述成员副本,还用于响应于所述执行指令,对所述复制的业务请求进行业务处理,生成第二响应结果。
在一个实施例中,所述系统还包括:
所述成员副本,若接收到结果发送指令,则用于将所述第二响应结果发送至所述客户系统;所述结果发送指令是在所述主副本发生故障时所触发的指令,用于指示所述成员副本向所述客户系统发送所述第二响应结果。
在一个实施例中,所述业务请求为订单业务请求;所述主副本还用于:
响应于所述订单业务请求,生成订单确认信息,并将所述订单确认信息作为所述第一响应结果;
根据从所述订单业务请求中提取的订单数量调整存储数量;
当再次接收到订单业务请求时,根据调整后的存储数量生成新的订单确认信息,并将所述新的订单确认信息作为所述第一响应结果。
一种计算机设备,包括存储器和处理器,所述存储器存储有对计算机程序进行复制所得的主副本和成员副本,其特征在于,所述处理器执行所述主副本和/或所述成员副本时实现所述业务请求处理方法的步骤。
一种计算机可读存储介质,其上存储有对计算机程序进行复制所得的主副本和成员副本,其特征在于,所述主副本和/或所述成员副本被处理器执行时实现所述业务请求处理方法的步骤。
上述实施例中,当接收到客户系统发送的业务请求时,主副本对业务请求进行复制,并将复制的业务请求发送至多个成员副本;主副本在向成员副本发送复制的业务请求时,对业务请求进行业务处理,得到业务处理后的第一响应结果;若收到成员副本中的至少一部分副本响应于复制的业务请求而返回的确认信息,主副本将第一响应结果反馈至客户系统。所以,主副本在向成员副本发送复制的业务请求时,即开始对业务请求进行业务处理,相比于在收到确认信息后才开始进行业务处理,缩短了等待时间,降低了处理时延。并且主副本在生成第一响应结果后,并不是立即将第一响应结果发送至客户系统,而是在收到至少一部分副本返回的确认信息后才将第一响应结果发送至客户系统,所以,主副本是在确保至少一部分成员副本已经和其保持同步的基础上才对客户系统进行响应,从而保证了主副本和成员副本间具有相同的状态机转换。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的业务请求处理方法,可以应用于如图1所示的应用环境中。其中,分布式集群102通过网络与客户系统104进行通信。当部署在分布式集群102的节点上的主副本1020接收到客户系统104发送的业务请求时,对业务请求进行复制,并将复制的业务请求发送至多个成员副本1022;主副本1020在向成员副本1022发送复制的业务请求时,对业务请求进行业务处理,得到业务处理后的第一响应结果;若收到成员副本1022中的至少一部分副本响应于复制的业务请求而返回的确认信息,主副本1020将第一响应结果反馈至客户系统104。其中,主副本1020和成员副本1022是部署在分布式集群102的不同节点上的计算机程序。分布式集群102的不同节点部署在组成分布式集群的计算机设备上,每个计算机设备上可以存在一个节点,也可以存在多个节点。计算机设备可以是终端,也可以是服务器,终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。其中,客户系统是向分布式集群请求获取服务的系统,可以是终端,终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。
在一个实施例中,如图2所示,提供了一种业务请求处理方法,应用于分布式集群,分布式集群包括主节点和成员节点,主节点上部署了主副本,成员节点上部署了成员副本,包括以下步骤:
S202,当接收到客户系统发送的业务请求时,主副本对业务请求进行复制,并将复制的业务请求发送至多个成员副本;主副本和成员副本是对目标计算机程序进行复制所得的副本,并分别部署在分布式集群的不同节点上。
其中,业务请求用于向主副本请求获取业务服务。例如,业务请求是计算业务请求,用于向主副本请求获取计算服务;或者是交易请求,用于向主副本请求完成一定的商品交易;或者是存储业务请求,用于向主副本请求获取数据存储服务;或者是数据传输请求,用于向主副本请求获取数据传输服务。
其中,分布式集群是由相互独立的、通过高速网络互联的计算机设备组成的系统。分布式集群作为统一的主体向客户系统提供服务。为了提高分布式集群的可用性,以确保在任意时刻、任意副本发生故障时,整个分布式集群的业务处理能力不受影响,分布式集群对能够完成一定的业务处理任务,并向客户系统提供业务服务的计算机程序进行复制,并将复制所得的副本部署在不同节点上。其中,节点是计算机设备的硬件和软件的组合,用于对分布式集群中的资源进行调度,并将调度的资源提供给副本进行业务处理。在一个实施例中,组成分布式集群的每个计算机设备上部署多个节点,每个节点上可以部署一个副本。
在一个实施例中,如图3所示,主副本在收到业务请求后,对业务请求进行复制,并将复制的业务请求发送至成员副本。从主副本开始向成员副本发送复制的业务请求至成员副本收到复制的业务请求的时间间隔为复制时延。主副本通过网络向成员副本发送复制的业务请求,复制时延的大小主要受网络设备性能以及传输距离的影响。
S204,主副本在向成员副本发送复制的业务请求时,对业务请求进行业务处理,得到业务处理后的第一响应结果。
其中,业务处理是主副本根据业务请求执行相应的任务,以向客户系统提供业务服务的处理过程。第一响应结果是主副本根据业务请求进行业务处理的结果。例如,当业务请求是计算业务请求时,业务处理是主副本完成计算任务的过程,第一响应结果是计算结果;当业务请求是交易请求时,业务处理是主副本执行交易的过程,第一响应结果可以是交易成功信息;当业务请求是数据存储业务请求时,业务处理是主副本完成数据存储任务的过程,第一响应结果是确认数据已存储的信息;当业务请求是数据传输请求时,业务处理是主副本完成数据传输任务的过程,第一响应结果是确认数据传输完成的信息。如图3所示,主副本在向成员副本发送业务请求时,开始进行业务处理,在完成业务处理时,得到第一响应结果。所以,主副本在等待成员副本反馈确认信息的过程中进行业务处理,节省了时间。
S206,若收到成员副本中的至少一部分副本响应于复制的业务请求而返回的确认信息,主副本将第一响应结果反馈至客户系统。
对于分布式集群,如果要满足任意时刻、任意副本无法正常工作均对整个集群的业务处理能力没有影响,则在主副本无法正常工作时,可以通过任一成员副本进行业务处理,并且在任一时刻成员副本与主副本对相同的业务请求的处理结果相同。也即,在任一时刻成员副本与主副本处理相同的业务请求时所依赖的数据必须相同。所以,主副本在对业务请求进行处理,并使其进行业务处理所依赖的数据发生改变后,需要确认大部分成员副本都收到了复制的业务请求,从而确认大部分成员副本也都可以根据复制的业务请求对其进行业务处理所依赖的数据进行改变。也即,集群内大部分副本都收到了相同的业务请求,并对业务请求的处理过程达成了共识,并转换到了相同的数据状态。如图4所示,在开始时刻,主副本和成员副本进行业务处理所依赖的数据相同,也即具有相同的数据状态
。当主副本接收到业务请求时,将业务请求复制到成员副本,然后进行业务处理,在业务处理过程中,对业务处理所依赖的数据进行了改变,例如,改变了内存、硬盘或者文件中存储的数据,这些数据发生改变后,转换到数据状态
。成员副本在收到业务请求后,进行同样的业务处理,数据状态也从
转换到
。为了保证主副本和成员副本具有相同的状态机转换,主副本必须确认成员副本收到了业务请求。
主副本在将第一响应结果反馈至客户系统之前,需要保证集群中大部分成员副本收到了业务请求,也就是说主副本只有在收到大部分成员副本响应于复制的业务请求而返回的确认信息时,才将第一响应结果发送至客户系统,从而可以保证集群中的大部分副本具有相同的状态机转换,从而在任一副本发生故障时,都不影响其他副本向客户系统反馈响应结果,保证了分布式集群具有较高的可用性。在一个实施例中,主副本预先设置数量阈值,当收到成员副本反馈的确认信息的数量大于数量阈值时,将第一响应结果反馈至客户系统。
在主副本在向成员副本发送复制的业务请求时,即开始对业务请求进行业务处理的情况下,如果业务处理所用的时间小于复制时延与确认时延之和,主副本从接收到业务请求到将第一响应结果发送至客户系统的响应时延为复制时延、确认时延以及系统的其他处理带来的调度时延之和;而如果业务处理所用的时间大于复制时延与确认时延之和,主副本从接收到业务请求到将第一响应结果发送至客户系统的响应时延为处理时延与调度时延之和。而如果主副本在收到确认信息之后才开始进行业务处理,则响应时延为复制时延、确认时延、业务处理时延和调度时延之和。所以,主副本在向成员副本发送复制的业务请求时,开始对业务请求进行业务处理,可以大大降低响应时延。
上述实施例中,当接收到客户系统发送的业务请求时,主副本对业务请求进行复制,并将复制的业务请求发送至多个成员副本;主副本在向成员副本发送复制的业务请求时,对业务请求进行业务处理,得到业务处理后的第一响应结果;若收到成员副本中的至少一部分副本响应于复制的业务请求而返回的确认信息,主副本将第一响应结果反馈至客户系统。所以,主副本在向成员副本发送复制的业务请求时,即开始对业务请求进行业务处理,相比于在收到确认信息后才开始进行业务处理,缩短了等待时间,降低了处理时延。并且主副本在生成第一响应结果后,并不是立即将第一响应结果发送至客户系统,而是在收到至少一部分副本返回的确认信息后才将第一响应结果发送至客户系统,所以,主副本是在确保至少一部分成员副本已经和其保持同步的基础上才对客户系统进行响应,从而保证了主副本和至少一部分成员副本间具有相同的状态机转换。
在一个实施例中,业务请求为多个,主副本和成员副本均收到业务请求,方法还包括:主副本对业务请求进行排序,得到业务请求顺序号,并将业务请求顺序号发送至成员副本;主副本在向成员副本发送业务请求顺序号时,对各业务请求进行业务处理,得到业务处理后的第一响应结果;若收到成员副本中的至少一部分副本响应于业务请求顺序号而返回的确认信息,主副本将第一响应结果反馈至客户系统。
为了降低分布式集群中主节点进行数据处理和数据传输的压力,使分别部署在分布式集群中的主节点和成员节点上的主副本和成员副本均可以接收客户系统发送的业务请求。但是,当主副本和成员副本接收到的业务请求有多个时,由于网络传输过程中的差异,主副本和成员副本接收到的业务请求的顺序可能不同。例如,主副本先后接收到业务请求1、2、3、4;成员副本A先后接收到业务请求1、3、4、2;成员副本B先后接收到业务请求1、2、4、3。如果主副本和成员副本按照各自接收业务请求的顺序对业务请求进行处理,会造成各副本间具有不同的状态机转换。所以,主副本对收到的业务请求进行排序,并将业务请求顺序号发送至各成员副本,使各成员副本按照业务请求顺序号的顺序对业务请求进行处理,并且主副本也按照业务请求顺序号的顺序对收到的业务请求进行处理,保证了主副本和成员副本间具有相同的状态机转换。
主副本在向成员副本发送业务请求顺序号时,即开始对各业务请求进行业务处理,相比于在收到成员副本发送的确认信息后才开始进行业务处理,缩短了等待时间,降低了处理时延。并且主副本在生成第一响应结果后,并不是立即将第一响应结果发送至客户系统,而是在收到至少一部分副本返回的确认信息后才将第一响应结果发送至客户系统,所以,主副本是在确保至少一部分成员副本已经和其保持同步的基础上才对客户系统进行响应,从而保证了主副本和成员副本间具有相同的状态机转换。
在一个实施例中,如果主副本在得到第一响应结果时未收到各成员副本响应于业务请求顺序号返回的确认信息,主副本持续监听各成员副本返回的确认信息,直至达到预设截止时间。主副本在接收到成员副本返回的确认信息时,向成员副本发送执行指令;响应于执行指令,成员副本按照业务请求顺序号指示的顺序对接收到的业务请求进行业务处理,生成第二响应结果。如果主副本发生故障,则成员副本向客户系统发送第二响应结果。
在一个实施例中,若在得到第一响应结果时未收到各成员副本响应于复制的业务请求返回的确认信息,主副本持续监听各成员副本返回的确认信息,直至达到预设截止时间。
如果主副本在得到第一响应结果时未收到各成员副本响应于复制的业务请求返回的确认信息,则为保证主副本和成员副本间具有相同的状态机转换,主副本不能将第一响应结果发送至客户系统,所以,主副本持续监听各成员副本返回的确认信息。在一个实施例中,主副本持续监听各成员副本进行数据传输的端口,以监听成员副本是否返回了确认信息。
在一个实施例中,如果在预设截至时间到达时,主副本尚未收到至少一部分成员副本返回的确认信息,则主副本重新向未返回确认信息的成员副本发送复制的业务请求。在一个实施例中,当重复发送的次数达到次数阈值时,主副本确定发送失败,无法连接上成员副本。
在一个实施例中,成员副本在接收到复制的业务请求时,生成确认信息;成员副本将确认信息发送至主副本,以使主副本在收到成员副本中的至少一部分副本发送的确认信息时,将第一响应结果反馈至客户系统。
其中,确认信息是成员副本向主副本反馈的确认收到复制的业务请求的信息。主副本在收到成员副本中的至少一部分发送的确认信息后才将第一响应结果反馈至客户系统,保证了主副本和至少一部分成员副本具有相同的状态机转换,并且任意时刻、任意副本发生故障时可以通过其他具有相同状态机转换的成员副本进行业务处理,得到相同的响应结果。
如图3所示,受到网络设备的设备性能和传输距离的影响,从成员副本开始发送确认信息至主副本收到确认信息具有一定的确认时延。并且,由于各副本部署在不同的节点上,每个节点的部署环境和部署距离都不相同,确认时延的长度受制于距离最远以及网络性能最差的节点,所以很难降低。但是,由于主副本在收到确认信息之前已经开始进行业务处理,不需要等待确认后再进行业务处理,所以,降低了整体的响应时延。
在一个实施例中,主副本在接收到成员副本返回的确认信息时,向成员副本发送执行指令;响应于执行指令,成员副本对复制的业务请求进行业务处理,生成第二响应结果。
其中,执行指令是主副本指示成员副本开始进行业务处理的指令。主副本在收到成员副本发送的确认信息后,指示成员副本开始进行业务处理,以使成员副本能够基于业务请求对进行业务处理所依赖的数据进行改变,发生和主副本相同的状态机转换,从而保证了主副本和成员副本间的同步。
其中,第二响应结果是成员副本对复制的业务请求进行业务处理得到的处理结果。如图4所示,由于复制的业务请求与业务请求相同,并且成员副本在进行业务处理前的数据状态与主副本的数据状态相同,所以成员副本对复制的业务请求进行业务处理后得到的第二响应结果与第一响应结果相同。
由于,成员副本对复制的业务请求进行了业务处理,所得到的第二响应结果与第一响应结果相同,所以,在主副本或者任一成员副本发生故障时,其他副本均可将得到的响应结果发送至客户系统,提高了分布式集群系统的可用性。
在一个实施例中,生成第二响应结果之后,方法还包括:若成员副本接收到结果发送指令,则成员副本将第二响应结果发送至客户系统;结果发送指令是在主副本发生故障时所触发的指令,用于指示成员副本向客户系统发送第二响应结果。
当分布式集群中的主副本无法正常工作时,触发结果发送指令,成员副本在收到结果发送指令时,将第二响应结果发送给客户系统,以对客户系统的业务请求进行响应。当任一成员副本无法正常工作时,其他成员副本也可向客户系统反馈响应结果。也即,分布式集群中任一成员副本均可代替主副本将产生的响应结果发送至客户系统,使分布式集群具有较高的可用性,任意时刻、任意副本发生故障均对整个集群的业务处理能力没有影响。
在一个实施例中,业务请求为订单业务请求;对业务请求进行业务处理,得到业务处理后的第一响应结果包括:响应于订单业务请求,生成订单确认信息,并将订单确认信息作为第一响应结果;方法还包括:根据从订单业务请求中提取的订单数量调整存储数量;当再次接收到订单业务请求时,根据调整后的存储数量生成新的订单确认信息,并将新的订单确认信息作为第一响应结果。
其中,订单业务请求是客户系统申请根据订单进行交易业务的请求。订单业务请求中可以包括请求进行交易的标的物数量、类别、价格等。例如订单业务请求可以是商品购买请求、商品出售请求等。主副本在接收到订单业务请求后,对订单业务请求进行复制,并将复制的订单业务请求发送给客户系统。主副本在向客户系统发送复制的订单业务请求时,开始对订单业务请求进行业务处理,得到第一响应结果。例如,如果订单业务请求是商品购买请求,主副本的业务处理过程包括从商品购买请求中提取商品购买数量,并判断库存中的商品数量是否大于或等于商品购买数量,若是,则确认可以进行交易,并生成确认交易的响应结果。主副本在收到至少一部分成员副本反馈的收到订单业务请求的确认信息后,将响应结果发送至客户系统。
其中,存储数量可以是所交易的标的物的库存数量。主副本在对订单业务请求进行处理后,根据从订单业务请求中提取的订单数量调整存储数量。例如,订单业务请求是商品购买请求,主副本根据商品购买数量减少库存数量。当主副本再次接收到商品购买请求时,根据减少后的库存数量对商品购买请求进行处理。
主副本在接收到订单业务请求后,将订单业务请求发送至成员副本,使成员副本可以根据订单业务请求对存储数量进行调整,以使成员副本对应的存储数量与主副本对应的存储数量保持一致。在再次接收到订单业务请求时,成员副本可以基于与主副本一致的存储数量对订单业务请求进行业务处理,得到相同的响应结果,使成员副本在任一时刻均可代替主副本对客户系统进行响应。
在一个实施例中,分布式集群中部署了多个节点,节点上部署了副本,包括主副本和成员副本,如图3所示,当接收到客户系统发送的业务请求时,主副本对业务请求进行复制,并将复制的业务请求发送至多个成员副本。成员副本在接收到复制的业务请求时,生成确认信息并向主副本发送。主副本在向成员副本发送复制的业务请求时,对业务请求进行业务处理,得到业务处理后的第一响应结果。若主副本在得到第一响应结果时,收到成员副本中的至少一部分副本响应于复制的业务请求而返回的确认信息,则主副本将第一响应结果反馈至客户系统。若主副本在得到第一响应结果时未收到各成员副本响应于复制的业务请求返回的确认信息,主副本持续监听各成员副本返回的确认信息,直至达到预设截止时间。主副本在接收到成员副本返回的确认信息时,向成员副本发送执行指令;响应于执行指令,成员副本对复制的业务请求进行业务处理,生成第二响应结果。
应该理解的是,虽然图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图5所示,提供了一种业务请求处理系统,包括:主副本502和成员副本504,其中:
主副本,当接收到客户系统发送的业务请求时,用于对所述业务请求进行复制,并将复制的业务请求发送至多个成员副本;所述主副本和所述成员副本是对目标计算机程序进行复制所得的副本,并分别部署在分布式集群的不同节点上;
所述主副本,还用于在向所述成员副本发送所述复制的业务请求时,对所述业务请求进行业务处理,得到业务处理后的第一响应结果;
所述主副本,若收到所述成员副本中的至少一部分副本响应于所述复制的业务请求而返回的确认信息,还用于将所述第一响应结果反馈至所述客户系统。
上述实施例中,当接收到客户系统发送的业务请求时,主副本对业务请求进行复制,并将复制的业务请求发送至多个成员副本;主副本在向成员副本发送复制的业务请求时,对业务请求进行业务处理,得到业务处理后的第一响应结果;若收到成员副本中的至少一部分副本响应于复制的业务请求而返回的确认信息,主副本将第一响应结果反馈至客户系统。所以,主副本在向成员副本发送复制的业务请求时,即开始对业务请求进行业务处理,相比于在收到确认信息后才开始进行业务处理,缩短了等待时间,降低了处理时延。并且主副本在生成第一响应结果后,并不是立即将第一响应结果发送至客户系统,而是在收到至少一部分副本返回的确认信息后才将第一响应结果发送至客户系统,所以,主副本是在确保至少一部分成员副本已经和其保持同步的基础上才对客户系统进行响应,从而保证了主副本和成员副本间具有相同的状态机转换。
在一个实施例中,业务请求为多个,主副本和成员副本均收到业务请求,系统还包括:
主副本502对业务请求进行排序,得到业务请求顺序号,并将业务请求顺序号发送至成员副本;
主副本502在向成员副本发送业务请求顺序号时,对各业务请求进行业务处理,得到业务处理后的第一响应结果;
若收到成员副本中的至少一部分副本响应于业务请求顺序号而返回的确认信息,主副本502将第一响应结果反馈至客户系统。
在一个实施例中,所述系统还包括:
所述主副本502,若在得到所述第一响应结果时未收到各所述成员副本响应于所述复制的业务请求返回的确认信息,还用于持续监听各所述成员副本返回的确认信息,直至达到预设截止时间。
在一个实施例中,所述系统还包括:
所述成员副本504,用于在接收到所述复制的业务请求时,生成所述确认信息;
所述成员副本504,还用于将所述确认信息发送至所述主副本,以使所述主副本在收到所述成员副本中的至少一部分副本发送的所述确认信息时,将所述第一响应结果反馈至所述客户系统。
在一个实施例中,所述系统还包括:
所述主副本502,还用于在接收到所述成员副本返回的所述确认信息时,向所述成员副本发送执行指令;
所述成员副本504,还用于响应于所述执行指令,对所述复制的业务请求进行业务处理,生成第二响应结果。
在一个实施例中,所述系统还包括:
所述成员副本504,若接收到结果发送指令,则用于将所述第二响应结果发送至所述客户系统;所述结果发送指令是在所述主副本发生故障时所触发的指令,用于指示所述成员副本向所述客户系统发送所述第二响应结果。
在一个实施例中,所述业务请求为订单业务请求;所述主副本502还用于:
响应于所述订单业务请求,生成订单确认信息,并将所述订单确认信息作为所述第一响应结果;
根据从所述订单业务请求中提取的订单数量调整存储数量;
当再次接收到订单业务请求时,根据调整后的存储数量生成新的订单确认信息,并将所述新的订单确认信息作为所述第一响应结果。
关于业务请求处理系统的具体限定可以参见上文中对于业务请求处理方法的限定,在此不再赘述。上述业务请求处理系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是图1中分布式集群中的计算机设备,具体可以是服务器,服务器上有主节点和成员节点,主节点上部署了主副本,成员节点上部署了成员副本,计算机设备的内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储业务请求处理系统数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种业务请求处理系统方法。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有对计算机程序进行复制所得的主副本和成员副本,该处理器执行主副本和/或所述成员副本时实现以下步骤:当接收到客户系统发送的业务请求时,主副本对业务请求进行复制,并将复制的业务请求发送至多个成员副本;主副本和成员副本是对目标计算机程序进行复制所得的副本,并分别部署在分布式集群的不同节点上;主副本在向成员副本发送复制的业务请求时,对业务请求进行业务处理,得到业务处理后的第一响应结果;若收到成员副本中的至少一部分副本响应于复制的业务请求而返回的确认信息,主副本将第一响应结果反馈至客户系统。
在一个实施例中,处理器执行主副本和/或成员副本时实现以下步骤:主副本对业务请求进行排序,得到业务请求顺序号,并将业务请求顺序号发送至成员副本;主副本在向成员副本发送业务请求顺序号时,对各业务请求进行业务处理,得到业务处理后的第一响应结果;若收到成员副本中的至少一部分副本响应于业务请求顺序号而返回的确认信息,主副本将第一响应结果反馈至客户系统。
在一个实施例中,处理器执行主副本和/或所述成员副本时实现以下步骤:若在得到第一响应结果时未收到各成员副本响应于复制的业务请求返回的确认信息,主副本持续监听各成员副本返回的确认信息,直至达到预设截止时间。
在一个实施例中,处理器执行主副本和/或所述成员副本时实现以下步骤:成员副本在接收到复制的业务请求时,生成确认信息;成员副本将确认信息发送至主副本,以使主副本在收到成员副本中的至少一部分副本发送的确认信息时,将第一响应结果反馈至客户系统。
在一个实施例中,处理器执行主副本和/或所述成员副本时实现以下步骤:主副本在接收到成员副本返回的确认信息时,向成员副本发送执行指令;响应于执行指令,成员副本对复制的业务请求进行业务处理,生成第二响应结果。
在一个实施例中,处理器执行主副本和/或所述成员副本时实现以下步骤:若成员副本接收到结果发送指令,则成员副本将第二响应结果发送至客户系统;结果发送指令是在主副本发生故障时所触发的指令,用于指示成员副本向客户系统发送第二响应结果。
在一个实施例中,业务请求为订单业务请求;处理器执行主副本和/或所述成员副本时实现以下步骤:响应于订单业务请求,生成订单确认信息,并将订单确认信息作为第一响应结果;根据从订单业务请求中提取的订单数量调整存储数量;当再次接收到订单业务请求时,根据调整后的存储数量生成新的订单确认信息,并将新的订单确认信息作为第一响应结果。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有对计算机程序进行复制所得的主副本和成员副本,主副本和/或所述成员副本被处理器执行时实现以下步骤:当接收到客户系统发送的业务请求时,主副本对业务请求进行复制,并将复制的业务请求发送至多个成员副本;主副本和成员副本是对目标计算机程序进行复制所得的副本,并分别部署在分布式集群的不同节点上;主副本在向成员副本发送复制的业务请求时,对业务请求进行业务处理,得到业务处理后的第一响应结果;若收到成员副本中的至少一部分副本响应于复制的业务请求而返回的确认信息,主副本将第一响应结果反馈至客户系统。
在一个实施例中,主副本和/或所述成员副本被处理器执行时实现以下步骤:主副本对业务请求进行排序,得到业务请求顺序号,并将业务请求顺序号发送至成员副本;主副本在向成员副本发送业务请求顺序号时,对各业务请求进行业务处理,得到业务处理后的第一响应结果;若收到成员副本中的至少一部分副本响应于业务请求顺序号而返回的确认信息,主副本将第一响应结果反馈至客户系统。
在一个实施例中,主副本和/或所述成员副本被处理器执行时实现以下步骤:若在得到第一响应结果时未收到各成员副本响应于复制的业务请求返回的确认信息,主副本持续监听各成员副本返回的确认信息,直至达到预设截止时间。
在一个实施例中,主副本和/或所述成员副本被处理器执行时实现以下步骤:成员副本在接收到复制的业务请求时,生成确认信息;成员副本将确认信息发送至主副本,以使主副本在收到成员副本中的至少一部分副本发送的确认信息时,将第一响应结果反馈至客户系统。
在一个实施例中,主副本和/或所述成员副本被处理器执行时实现以下步骤:主副本在接收到成员副本返回的确认信息时,向成员副本发送执行指令;响应于执行指令,成员副本对复制的业务请求进行业务处理,生成第二响应结果。
在一个实施例中,主副本和/或所述成员副本被处理器执行时实现以下步骤:若成员副本接收到结果发送指令,则成员副本将第二响应结果发送至客户系统;结果发送指令是在主副本发生故障时所触发的指令,用于指示成员副本向客户系统发送第二响应结果。
在一个实施例中,业务请求为订单业务请求;主副本和/或所述成员副本被处理器执行时实现以下步骤:响应于订单业务请求,生成订单确认信息,并将订单确认信息作为第一响应结果;根据从订单业务请求中提取的订单数量调整存储数量;当再次接收到订单业务请求时,根据调整后的存储数量生成新的订单确认信息,并将新的订单确认信息作为第一响应结果。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过对计算机程序进行复制所得的主副本和成员副本来指令相关的硬件来完成,所述的主副本和成员副本可存储于一非易失性计算机可读取存储介质中,该主副本和成员副本在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(StaticRandom Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。