发明内容
基于此,有必要针对上述问题,提供一种交易处理方法、装置、计算机设备及存储介质。
一种交易处理方法,所述方法包括:
接收交易请求,并获取当前交易节点,将所述交易请求发送至所述当前交易节点,以使所述当前交易节点对所述交易请求进行处理;接收在所述当前交易节点发生故障时、所切换的与所述当前交易节点处于同一集群的切换后的交易节点的参数;
将当前交易节点的参数替换为切换后的交易节点的参数;
接收切换后的交易节点返回的初步交易处理结果,并根据所述初步交易处理结果计算目标交易处理结果。
在其中一个实施例中,所述方法还包括:
若与所述当前交易节点对应的集群中的交易节点均发生故障,则接收所述当前交易节点返回的交易节点故障信息;
根据所述交易节点故障的信息对所述当前交易节点进行标记;
若所述当前交易节点正在处理交易请求,则将与所述当前交易节点对应的初步交易处理结果标记为交易失败。
在其中一个实施例中,所述方法还包括:
若接收到所述当前交易节点注销的信息,则判断所述当前交易节点是否正在处理交易请求;
若所述当前交易节点正在处理交易请求,则通过异步非阻塞方式继续等待所述当前交易节点返回的初步交易处理结果后,将所述当前交易节点的参数删除。
在其中一个实施例中,所述方法还包括:
若接收到新的交易节点的注册信息,则对所述注册信息进行验证;
当验证通过后,则添加所述新的交易节点的参数。
在其中一个实施例中,所述根据所述初步交易处理结果计算目标交易处理结果的步骤,包括:
判断参与交易的所述当前交易节点反馈的初步交易结果表示交易成功的数量是否大于等于预设值;
当表示交易成功的所述初步交易结果的数量大于等于预设值时,则目标交易结果表示交易成功;
当表示交易成功的所述初步交易结果的数量小于预设值时,则目标交易结果表示交易失败。
在其中一个实施例中,所述方法还包括:
将所述目标交易结果发送至排序服务器以使所述排序服务器按照预设顺序对所述目标交易结果进行排序,并接收所述当前交易节点的数据获取请求后,根据所述数据获取请求向所述当前交易节点返回与所述交易请求对应的目标交易结果。
一种区块链交易处理装置,所述装置包括;
交易请求通信模块,用于接收交易请求,并获取当前交易节点,将所述交易请求发送至所述当前交易节点,以使所述当前交易节点对所述交易请求进行处理;
节点参数通信模块,用于接收在所述当前交易节点发生故障时、所切换的与所述当前交易节点处于同一集群的切换后的交易节点的参数;
替换模块,用于将当前交易节点的参数替换为切换后的交易节点的参数;
处理模块,用于接收切换后的交易节点返回的初步交易处理结果,并根据所述初步交易处理结果计算目标交易处理结果。
在其中一个实施例中,所述装置还包括排序模块,用于
将所述目标交易结果发送至排序服务器,以使所述排序服务器按照预设顺序对所述目标交易结果进行排序,并接收所述当前交易节点的数据获取请求后,根据所述数据获取请求向所述当前交易节点返回与所述交易请求对应的目标交易结果。
一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意一项所述方法中的步骤。
一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任一项所述方法中的步骤。
上述交易处理方法、装置、计算机设备及存储介质,若当前交易节点发生故障,则直接切换到与当前交易节点处于同一集群的另一交易节点继续处理交易请求,并将切换后的交易节点的参数发送至交易服务器,使得交易服务器明确了解到切换后的交易节点,从而交易服务器可以正常接收交易节点返回的初步交易结果,不需要实时监控每个交易节点,节约了系统资源,提高了系统的性能。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用于解释本发明,并不用于限定本发明。
在详细说明根据本发明的实施例前,应该注意到的是,所述的实施例主要在于与交易处理方法、装置、计算机设备及存储介质相关的步骤和系统组件的组合。因此,所属系统组件和方法步骤已经在附图中通过常规符号在适当的位置表示出来了,并且只示出了与理解本发明的实施例有关的细节,以免因对于得益于本发明的本领域普通技术人员而言显而易见的那些细节模糊了本发明的公开内容。
在本文中,诸如左和右,上和下,前和后,第一和第二之类的关系术语仅仅用来区分一个实体或动作与另一个实体或动作,而不一定要求或暗示这种实体或动作之间的任何实际的这种关系或顺序。术语“包括”、“包含”或任何其他变体旨在涵盖非排他性的包含,由此使得包括一系列要素的过程、方法、物品或者设备不仅包含这些要素,而且还包含没有明确列出的其他要素,或者为这种过程、方法、物品或者设备所固有的要素。
请参阅图1,图1为一实施例中的交易处理方法的应用环境图,其中包括交易服务器、交易节点以及排序服务器,其中交易节点可以是以集群的方式存在。该交易处理方法可以应用于区块链或基于PaxOS算法实现的分布式的交易系统。
具体地,交易服务器中可以存储有配置文件或者设置有与交易服务器相对应的数据库,该配置文件或该数据库中存储有交易节点的IP地址和端口、交易节点的事件地址和端口。可以基于该配置文件或者数据库建立名义上的通道,通道中包含了所有可用的交易节点,交易服务器可以接受通道中新的交易节点的注册、原交易节点的注销以及原交易节点的属性的改变。其中由于交易节点是以集群的方式存在的,因此原交易节点的属性的改变包括两种方式:一种是交易节点集群中当前交易节点故障,由替代交易节点继续处理交易,这种情况下,交易节点继续工作,仅是事件的地址和端口发生改变。另外一种是当前交易节点本身宕机或当前交易节点的交易进程中止或当前交易节点的存储进程中止,该种情况下当前交易节点不再参与后续的交易。交易服务器还可以向每个可用的交易节点注册交易处理事件,接收每个交易节点交易完成后的事件通知,即接收每个交易节点返回的初步交易处理结果,并把初步交易处理结果进行汇总后得到目标处理结果,将目标处理结果存储至排序服务器。交易服务器可以在集群的基础上实现负载平衡,提高可用性和高效性。
交易节点是具有计算功能和存储计算的数据结果功能的,且每个交易节点的加入都经过了交易服务器的信任验证。每个交易节点均是以主备节点或节点集群的方式存在的,在执行交易的计算功能时,只有一个节点执行计算功能,其余节点作为备份使用,交易节点中的所有节点共享同一个数据存储设备。交易节点在向排序服务器拉取数据时,参数可以包括数据的起始位置和数据的长度,然后排序服务器把数据提交给交易节点的当前节点,提交完成后,交易节点将排序服务器返回的目标交易结果存储在自己的数据存储设备中。在交易节点的计算进程中止前,交易节点可以通过事件消息发送给交易服务器,交易服务器可以更新配置文件或数据库。另外交易节点可以在集群的基础上实现负载平衡,提高可用性和高效性。
排序服务器可以接收交易服务器的目标交易结果,并对目标交易结果按照时间先后顺序进行排序和存储,从而在接收到交易节点的数据获取请求时,排序服务器可以将正确的目标交易结果返回给对应的交易节点。其中排序服务器可以以集群和集群之间数据同步的方式向外提供服务,从而提供数据持久化和高吞吐的性能。
请参阅图2,在其中一个实施例中,提供一种交易处理方法,本实施例以该方法应用到上述图1中的交易服务器来举例说明。该方法具体包括如下步骤:
S202:接收交易请求,并获取当前交易节点,将交易请求发送至当前交易节点,以使当前交易节点对交易请求进行处理。
具体地,交易服务器接收外部的交易请求后可以对该交易请求进行验证,例如交易服务器预先与外部约定好加解密方式及算法、加签和验签方式及算法等,在交易服务器接收到交易请求时,首先根据预先约定的验签方式进行验签,然后根据预定的解密方式进行解密从而可以获取交易数据等。
交易服务器获取当前交易节点可以是交易服务器查询配置文件或数据库等获取交易节点,其中交易服务器可以在配置文件或数据库中建立通道,通道可以与交易类型相关联,从而交易服务器可以根据配置文件或数据库中存储的交易节点的属性等获取到当前交易节点,并将交易请求发送到该当前交易节点。进一步地,交易服务器可以对解密后的交易数据进行加密,并生成对应的交易标识,然后将该交易标识和交易数据发送给对应的当前交易节点,其中交易标识为可以唯一确定本次交易的标识。
其中,交易服务器还可以对配置文件或数据库的变更设计优先级,例如交易节点的属性发生变化引起的配置文件或数据库的变更的优先级最高,交易节点注销引起的配置文件或数据库的变更的优先级其次,交易节点的注册引起的配置文件的优先级最低,相同优先级以队列的方式进行排队处理,且配置文件或数据库的更新只能由交易服务器进行。且交易服务器可以建立通道的概念,通道中包含了可用的交易节点,且通道可以与交易类型相关联,每个交易节点的属性包括交易节点的标识,可以为交易节点的编号,交易节点的执行交易的IP地址和端口、每个交易节点的事件注册的事件地址和端口。其中每个交易节点执行交易的IP地址和交易节点事件注册的地址可以是相同,端口可以是不同的。交易节点的属性均记录在配置文件或数据库中。
具体地,当前交易节点在获取到交易请求后,对该交易请求进行处理以生成初步交易处理结果。进一步地,当前交易节点可以在获取到交易请求后,对该交易请求进行验签和解密以获取到交易标识和交易数据,并对交易数据进行处理后得到初步交易处理结果,并将该初步交易处理结果返回至交易服务器。
S204:接收在当前交易节点发生故障时、所切换的与当前交易节点处于同一集群的切换后的交易节点的参数。
具体地,若当前交易节点发生故障,则交易节点集群可以用集群中另一未发生故障的交易节点替换该当前交易节点,从而交易可以继续进行,且由于交易节点集群中的所有交易节点共享存储空间,从而切换后的交易节点可以从当前交易节点出现故障的位置处继续处理当前交易请求,而无需重新处理,这样可以节省大量的处理时间。且为了实现与服务器的沟通,在当前交易节点被切换后,交易节点集群将切换后的交易节点的参数发送至交易服务器,从而交易服务器可以更改配置文件或数据库中的内容,使得交易服务实时了解到交易节点属性变化的情况。
其中,交易服务器可以首先向当前每个可用的交易节点进行事件注册,并进行事件的RPC(远程过程调用);当交易节点的属性发生变化时,交易服务器则可以接收到事件消息,接收消息的方式可以是异步非阻塞,即交易服务器仍可以继续其他的事件处理。此外,交易节点的初步交易处理结果的返回也是通过事件消息的方式返回给交易服务器,因此当交易服务器接收到事件消息时,可以首先根据事件消息的类型,确定事件消息是正常交易节点完成交易执行的事件通知还是交易节点本身故障,即交易节点本身发生变化的事件消息。然后若事件消息是交易节点本身故障的消息,则首先判断该消息表示的是否为交易节点的IP地址或端口、或事件地址或端口发生变换,若是则会根据对应的处理策略进行处理。
S206:交易服务器将当前交易节点的参数替换为切换后的交易节点的参数。
具体地,当交易服务器接收到的事件消息后,首先会验证事件消息的报文的签名是否有效,若有效,则确定是否为交易节点的IP地址或端口、或事件地址或端口发生变换,若是,则会更新配置文件或数据库,若不是,即消息事件是交易节点执行的状态和执行结果,则不会更新配置文件或数据库,则是将交易节点所返回的初步交易处理结果进行保存。
S208:接收切换后的交易节点返回的初步交易处理结果,并根据初步交易处理结果计算目标交易处理结果。
具体地,交易服务器在接收到初步交易处理结果后,根据交易标识进行存储,且在所有的交易节点或者预设数量的交易节点返回了初步交易处理结果后,根据预设的处理策略可以得到目标交易处理结果。其中交易服务器对于交易的执行进行控制,并基于处理策略保证交易结果的一致性,交易节点主要用于完成交易的执行以及对交易的一致性处理结果进行存储,交易节点在执行交易前对交易相关的参数进行初始化,排序服务器则对交易后的一致性结果进行排序和存储,并根据交易节点的请求提供交易的一致性结果数据。
上述交易处理方法,若当前交易节点发生故障,则直接切换到与当前交易节点处于同一集群的另一交易节点继续处理交易请求,并将切换后的交易节点的参数发送至交易服务器,使得交易服务器明确了解到切换后的交易节点,从而交易服务器可以正常接收交易节点返回的初步交易处理结果,不需要实时监控每个交易节点,节约了系统资源,提高了系统的性能。
在其中一个实施例中,该交易处理方法还包括:若与当前交易节点对应的集群中的交易节点均发生故障,接收当前交易节点返回的交易节点故障信息;根据交易节点故障的信息对当前交易节点进行标记;若当前交易节点正在处理交易请求,则将与当前交易节点对应的初步交易处理结果标记为交易失败。
具体地,交易节点的变化包括三种类型,一种是交易节点的注册,即存在新的交易节点加入到系统中,一种是交易节点的注销,即已有的交易节点退出系统,还有一种是交易节点的属性的变化,其中交易节点的注册和交易节点的注销均是由交易节点主动向交易服务器发送消息,而交易服务器则监听并接收消息,而交易节点属性的变化则是由交易服务器先向可用的交易节点进行事件注册,然后当交易节点属性变化时,交易服务器会接收到该变化的事件消息,消息会由交易节点签名并由交易服务器验签,签名验证通过后才会进行处理,并且处理结果需要得到交易服务器的确认后才会生效。
其中交易节点的属性的变化包括上述交易节点的地址和端口、事件地址和端口的变化,还有一种是交易进程中止、存储进程中止或交易节点本身宕机的变化,这三种变化都会导致连接错误,且会导致这三种错误则表示当前交易节点对应的集群中的交易节点均发生故障,交易服务器接收到这三种错误时,则直接对该当前交易节点进行标记,即标记为不可用,从而后续不会再使用该交易节点。
上述实施例中,当当前交易节点对应的集群中的交易节点均发生故障时,则对交易节点进行标记,从而后续不再使用该交易节点,且若当前交易节点正在处理交易请求,则直接标记当前交易节点对应的本次交易的初步交易处理结果为交易失败,从后续计算目标交易结果奠定了基础。
在其中一个实施例中,该交易处理方法还可以包括:若接收到当前交易节点注销的信息,则判断当前交易节点是否正在处理交易请求;若当前交易节点正在处理交易请求,则通过异步非阻塞方式继续等待当前交易节点返回的初步交易处理结果后,将当前交易节点的参数删除。
在其中一个实施例中,该交易处理方法还可以包括:若接收新的交易节点的注册信息,则对注册信息进行验证;当验证通过后,则添加新的交易节点的参数。
具体地,当交易服务器接收到交易节点注销的信息时,则首先判断当前交易节点是否正在处理交易请求,若是,则交易服务器通过异步非阻塞方式继续等待当前交易节点返回初步交易处理结果,然后再将当前交易节点的参数删除,这样才能完成当前交易节点的注销,且不影响当前交易节点正在处理的交易请求。
当交易服务器接收到交易节点的注册的信息时,则会进行验证,防止不法分子通过注册交易节点的方式获取到交易信息,例如可以引入CA服务器,CA服务器向安全的交易节点下发交易服务器的密钥或证书,交易节点通过密钥加密注册信息,交易服务器接收到交易节点的注册信息时,首先进行解密,只有解密通过后,交易服务器才会根据注册信息完成新的交易节点的注册。
上述实施例中,交易服务器处理交易时会根据交易节点的动态变化结合处理策略进行不同的处理,交易节点的动态变化发生在交易执行前,则会因为配置文件或数据库进行了更新而获得最新的交易节点信息,这样交易请求会发送给可用的交易节点进行执行并获取初步交易处理结果。若交易节点的动态变化发生在交易执行中,则包括两种情况,一种是交易服务器已经把交易请求发送给了所有可用的交易节点,另外一种是交易服务器正在发送交易请求的过程中,尚未完全发送结束,这时可以根据处理策略决定是否终止交易请求的处理。交易节点的动态变化发生在交易执行完毕后,则不会影响和改变当前交易处理结果。
在其中一个实施例中,根据初步交易处理结果计算目标交易处理结果的步骤可以包括:判断参与交易的当前交易节点反馈的初步交易处理结果表示交易成功的数量是否大于等于预设值;当表示交易成功的初步交易处理结果的数量大于等于预设值时,则目标交易结果表示交易成功;当表示交易成功的初步交易处理结果的数量小于预设值时,则目标交易结果表示交易失败。
具体地,交易服务器在接收到交易节点反馈的初步交易处理结果后,查询表示成功的交易结果的数量,并根据交易策略得到目标交易结果。
例如,交易策略是交易服务器中所有的交易节点的初步交易处理结果均需表示交易成功,则目标交易结果才是交易成功,若存在一个交易节点的初步交易处理结果表示未成功,则目标交易结果是交易失败。在这种交易策略下,交易服务器查询交易节点所返回的初步交易处理结果,当所有的初步交易处理结果均表示交易成功时,则输出表示交易成功的目标交易结果,当存在一个初步交易处理结果表示交易失败时,则输出表示交易失败的目标交易结果。
当交易策略是通道中至少n/2+1个交易节点的初步交易处理结果均需表示交易成功,则目标交易结果才是交易成功,若不存在n/2+1个交易节点的初步交易处理结果表示成功,则目标交易结果是交易失败,其中n为交易节点的个数。在这种交易策略下,交易服务器查询交易节点所返回的初步交易处理结果,当至少n/2+1个初步交易处理结果均表示交易成功时,则输出表示交易成功的目标交易结果,当不存在至少n/2+1个初步交易处理结果表示交易成功时,则输出表示交易失败的目标交易结果。
上述实施例中,交易服务器根据交易节点返回的初步交易处理结果得到目标交易结果,而不是仅仅依靠一个交易节点进行处理,或者交易节点之间互相通信得到目标交易结果,处理过程简单、结果可靠。
在其中一个实施例中,该交易处理方法还可以包括:交易服务器将目标交易结果发送至排序服务器以使排序服务器按照预设顺序对目标交易结果进行排序,并接收当前交易节点的数据获取请求后,根据数据获取请求向当前交易节点返回与交易请求对应的目标交易结果。
具体地,交易服务器每次计算出目标交易结果后,都将目标交易结果发送至排序服务器进行保存。排序服务器在接收到目标交易结果后,按照预设标准对目标交易结果进行排序,例如可以按照时间顺序进行排序并保存。排序服务器接收当前交易节点的数据获取请求,该数据获取请求中包括数据的起始位置和数据的长度,然后排序服务器根据该数据获取请求获取到相应的数据,并将该数据返回给交易节点进行存储即可以。
其中交易节点、交易服务器以及排序服务器之间是基于安全通信进行设计和实现的,包括发送前对敏感数据的加密,对通用消息和事件消息进行加签,接收消息时以验签和解密的方式来获取消息,同时还可以基于安全传输协议进行传输层的安全保障。且飘絮服务器设计和实现支持了大批量的交易节点,能同时与大量的交易节点进行通信和数据的传输,数据进行了持久化存储,采用了kafka集群来实现。
上述实施例中,避免了交易节点之间的彼此监控和数据同步的大的负载量,避免交易的可用性下降和系统性能的大幅下降,交易服务器对交易的执行进行控制,并基于处理策略保证交易结果的一致性;交易节点主要用于完成交易的执行及对交易的一致性结果进行存储,交易节点在执行交易前对交易相关的数据进行初始化;排序服务器对交易后的一致性结果进行排序和存储并根据交易节点的要求提供交易的一致性结果数据。
继续参阅图3,图3为一实施例中的区块链交易处理装置的示意图,该装置包括:
交易请求通信模块100,用于接收交易请求,并获取当前交易节点,将交易请求发送至当前交易节点,以使当前交易节点对交易请求进行处理。
交易参数通信模块200,用于接收在当前交易节点发生故障时、所切换的与当前交易节点处于同一集群的切换后的交易节点的参数;
替换模块300,用于将当前交易节点的参数替换为切换后的交易节点的参数。
处理模块400,用于接收切换后的交易节点返回的初步交易处理结果,并根据初步交易处理结果计算目标交易处理结果。
在其中一个实施例中,该装置还可以包括故障接收模块,用于在与当前交易节点对应的集群中的交易节点均发生故障,则接收当前交易节点返回的交易节点故障信息。
标记模块,用于根据交易节点故障的信息对当前交易节点进行标记;且若当前交易节点正在处理交易请求,则将与当前交易节点对应的初步交易处理结果标记为交易失败。
在其中一个实施例中,该装置还可以包括注销模块,用于在接收到当前交易节点注销的信息时,判断当前交易节点是否正在处理交易请求;若当前交易节点正在处理交易请求,则通过异步非阻塞方式继续等待当前交易节点返回的初步交易处理结果后,将当前交易节点的参数删除。
在其中一个实施例中,该装置还可以包括注册模块,用于在接收到新的交易节点的注册信息时,对注册信息进行验证;当验证通过后,则添加新的交易节点的参数。
在其中一个实施例中,所述处理模块还用于判断参与交易的当前交易节点反馈的初步交易处理结果表示交易成功的数量是否大于等于预设值;当表示交易成功的初步交易处理结果的数量大于等于预设值时,则目标交易结果表示交易成功;当表示交易成功的初步交易处理结果的数量小于预设值时,则目标交易结果表示交易失败。
在其中一个实施例中,所述装置还包括排序模块,用于将目标交易结果发送至排序服务器,以使排序服务器按照预设顺序对目标交易结果进行排序,并接收当前交易节点的数据获取请求后,根据数据获取请求向当前交易节点返回与交易请求对应的目标交易结果。
关于区块链交易处理系统的具体限定可以参见上文中对于交易处理方法的限定,在此不再赘述。上述区块链交易处理系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。该处理器可以为中央处理单元(CPU)、微处理器、单片机等。上述区块链交易处理系统可以实现为一种计算机程序的形式,计算机程序可在如图1所示的交易服务器上运行。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,也可以是终端。当该计算机设备为服务器时,例如为交易服务器时,其内部结构图可以如图4所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种交易处理方法。本领域技术人员可以理解,图4中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
其中,处理器执行计算机程序时实现以下步骤:接收交易请求,并获取当前交易节点,将交易请求发送至当前交易节点,以使当前交易节点对交易请求进行处理;接收在当前交易节点发生故障时、所切换的与当前交易节点处于同一集群的切换后的交易节点的参数;将当前交易节点的参数替换为切换后的交易节点的参数;接收切换后的交易节点返回的初步交易处理结果,并根据初步交易处理结果计算目标交易处理结果。
在其中一个实施例中,处理器执行计算机程序时还可以实现以下步骤:
若与当前交易节点对应的集群中的交易节点均发生故障,则当前交易节点向交易服务器返回交易节点故障的信息交易服务器接收当前交易节点返回的交易节点故障信息;交易服务器根据交易节点故障的信息对当前交易节点进行标记;若当前交易节点正在处理交易请求,则交易服务器将与当前交易节点对应的初步交易处理结果标记为交易失败。
在其中一个实施例中,处理器在执行计算机程序时还可以实现以下步骤:在接收到当前交易节点注销的信息时,判断当前交易节点是否正在处理交易请求;若当前交易节点正在处理交易请求,则通过异步非阻塞方式继续等待当前交易节点返回的初步交易处理结果后,将当前交易节点的参数删除。
在其中一个实施例中,处理器在执行计算机程序时还可以实现以下步骤:在接收到新的交易节点的注册信息时,对注册信息进行验证;当验证通过后,则添加新的交易节点的参数。
在其中一个实施例中,处理器在执行计算机程序时还可以实现以下步骤:判断参与交易的当前交易节点反馈的初步交易处理结果表示交易成功的数量是否大于等于预设值;当表示交易成功的初步交易处理结果的数量大于等于预设值时,则目标交易结果表示交易成功;当表示交易成功的初步交易处理结果的数量小于预设值时,则目标交易结果表示交易失败。
在其中一个实施例中,处理器在执行计算机程序时还可以实现以下步骤:将目标交易结果发送至排序服务器以使排序服务器按照预设顺序对目标交易结果进行排序,并接收当前交易节点的数据获取请求后,根据数据获取请求向当前交易节点返回与交易请求对应的目标交易结果。
上述对于计算机设备的限定可以参见上文中对于交易处理方法的具体限定,在此不再赘述。
请继续参阅图4,还提供一种计算机可读存储介质,其上存储有计算机程序,如图4中所示的非易失性存储介质,其中,该程序被处理器执行时实现以下步骤:接收交易请求,并获取当前交易节点,将交易请求发送至当前交易节点以使当前交易节点对交易请求进行处理;接收在当前交易节点发生故障时、所切换的与当前交易节点处于同一集群的切换后的交易节点的参数;将当前交易节点的参数替换为切换后的交易节点的参数;接收切换后的交易节点返回的初步交易处理结果,并根据初步交易处理结果计算目标交易处理结果。
在其中一个实施例中,该程序被处理器执行时还可以实现以下步骤:若与当前交易节点对应的集群中的交易节点均发生故障,则接收当前交易节点返回的交易节点故障的信息;根据交易节点故障的信息对当前交易节点进行标记;若当前交易节点正在处理交易请求,则将与当前交易节点对应的初步交易处理结果标记为交易失败。
在其中一个实施例中,该程序被处理器执行时还可以实现以下步骤:若接收当前交易节点注销的信息,则判断当前交易节点是否正在处理交易请求;若当前交易节点正在处理交易请求,则通过异步非阻塞方式继续等待当前交易节点返回的初步交易处理结果后,将当前交易节点的参数删除。
在其中一个实施例中,该程序被处理器执行时还可以实现以下步骤:若接收到新的交易节点的注册信息,则对注册信息进行验证;当验证通过后,则添加新的交易节点的参数。
在其中一个实施例中,该程序被处理器执行时所实现的根据初步交易处理结果计算目标交易处理结果的步骤可以包括:判断参与交易的当前交易节点反馈的初步交易处理结果表示交易成功的数量是否大于等于预设值;当表示交易成功的初步交易处理结果的数量大于等于预设值时,则目标交易结果表示交易成功;当表示交易成功的初步交易处理结果的数量小于预设值时,则目标交易结果表示交易失败。
在其中一个实施例中,该程序被处理器执行时还可以实现以下步骤:将目标交易结果发送至排序服务器以使排序服务器按照预设顺序对目标交易结果进行排序,并接收当前交易节点的数据获取请求后,根据数据获取请求向当前交易节点返回与交易请求对应的目标交易结果。
上述对于计算机可读存储介质的限定可以参见上文中对于交易处理方法的具体限定,在此不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可包括磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。