分布式系统操作方法及系统
技术领域
本发明涉及计算机技术领域,特别是涉及一种分布式系统操作方法及系统。
背景技术
分布式系统(distributed system)是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。在区块链或基于PaxOS算法协议实现的分布式系统中,有多个节点参与数据处理,基于处理策略达成共识并被系统整体接受。
传统的分布式系统是事先在静态环境中由研发人员进行搭建,在系统启动后,如果需要对系统中的组件进行变更,则需要首先将系统关闭,即恢复静态环境,然后由研发人员进行对应的修改,该种修改方式效率低,成本高。
发明内容
基于此,有必要针对上述对于分布式系统组件变更管理效率低及成本高的问题,提供一种分布式系统操作方法及系统。
一种分布式系统操作方法,包括:
当前组件操作服务器接收转发服务器根据组件类型所转发的组件操作请求;
当前组件操作服务器根据所述组件操作请求对分布式系统中的当前组件进行操作得到第一组件操作结果;
当前组件操作服务器将所述第一组件操作结果返回至所述转发服务器,以使所述转发服务器发送所述第一组件操作结果至系统客户端。
在其中一个实施例中,所述组件操作请求包括组件新增请求、组件退出请求、组件停止请求、组件恢复请求、组件配置信息查询请求或组件配置信息变更请求中的至少一种。
在其中一个实施例中,所述当前组件操作服务器根据所述组件操作请求对当前组件进行操作得到第一组件操作结果的步骤之后,还包括:
当前组件操作服务器将所述第一组件操作结果发送至关联组件操作服务器,以使关联组件操作服务器根据所述第一组件操作结果对所述当前组件关联的关联组件进行操作得到第二组件操作结果后,将第二件操作结果返回至转发服务器;
所述转发服务器发送所述第二组件操作结果至系统客户端。
在其中一个实施例中,所述当前组件操作服务器为节点操作服务器时,则所述关联组件操作服务器为组织操作服务器和通道操作服务器。
在其中一个实施例中,所述当前组件操作服务器为用户操作服务器,则所述关联组件操作服务器为组织操作服务器。
在其中一个实施例中,所述当前组件操作服务器为组织操作服务器,则所述关联组件操作服务器为节点操作服务器和用户操作服务器。
在其中一个实施例中,所述方法还包括:
请求响应服务器接收所述系统客户端发送的交易请求,并将所接收的交易请求转发至请求服务器;
请求服务器获取与所述交易请求对应的组件的状态,并在所述组件的状态为可用状态时,通过所述组件对所述交易请求进行处理得到目标交易结果;
所述请求服务器将所述目标交易结果发送至所述请求响应服务器后,所述请求响应服务器发送所述目标交易结果至所述系统客户端。
在其中一个实施例中,所述请求处理器获取与所述交易请求对应的组件的状态的步骤之后,还包括:
所述请求服务器接收所述第一组件操作结果和所述第二组件操作结果;
所述在所述组件的状态为可用状态时,通过所述组件对所述交易请求进行处理得到目标交易结果的步骤,包括:
根据所述第一组件操作结果和所述第二组件操作结果获取操作后的可用组件,并通过所述可用组件对所述交易请求进行处理得到目标交易结果。
在其中一个实施例中,所述方法还包括:
当所述请求服务器正在处理交易请求时,则在所述请求服务器通过所述组件对所述交易请求进行处理得到目标交易结果后,所述当前组件操作服务器根据所述组件操作请求对当前组件进行操作得到第一组件操作结果。
一种分布式系统操作系统,所述操作系统包括转发服务器和当前组件操作服务器;
所述转发服务器用于根据组件类型将所接收的组件操作请求转发给当前组件操作服务器;
所述当前组件操作服务器用于根据所述组件操作请求对分布式系统中的当前组件进行操作得到第一组件操作结果;并将所述第一组件操作结果返回至所述转发服务器,以使所述转发服务器发送所述第一组件操作结果。
上述分布式系统操作方法及系统,在接收到组件操作请求后,由转发服务器根据组件类型将该组件管理请求转发至对应的当前组件操作服务器,从而当前组件操作服务器可以对当前组件进行操作通过引入了转发服务器和组件操作服务器对组件进行操作,不再需要将系统关闭后,由研发人员手动的变更,节约了时间,提高了效率,且由于不再需要研发人员参与,降低了用人成本。
附图说明
图1为一实施例中分布式系统操作方法的应用场景图;
图2为一实施例中分布式系统操作方法的流程图;
图3为一实施例中的组件关联示意图;
图4为一实施例中交易请求处理步骤的流程图;
图5为一实施例中的交易请求处理步骤与组件操作请求处理步骤的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用于解释本发明,并不用于限定本发明。
在详细说明根据本发明的实施例前,应该注意到的是,所述的实施例主要在于与分布式系统操作方法及系统相关的步骤和系统组件的组合。因此,所属系统组件和方法步骤已经在附图中通过常规符号在适当的位置表示出来了,并且只示出了与理解本发明的实施例有关的细节,以免因对于得益于本发明的本领域普通技术人员而言显而易见的那些细节模糊了本发明的公开内容。
在本文中,诸如左和右,上和下,前和后,第一和第二之类的关系术语仅仅用来区分一个实体或动作与另一个实体或动作,而不一定要求或暗示这种实体或动作之间的任何实际的这种关系或顺序。术语“包括”、“包含”或任何其他变体旨在涵盖非排他性的包含,由此使得包括一系列要素的过程、方法、物品或者设备不仅包含这些要素,而且还包含没有明确列出的其他要素,或者为这种过程、方法、物品或者设备所固有的要素。
请参阅图1,图1为一实施例中分布式系统操作方法的应用场景图,其中包括系统客户端、转发服务器、与组件类型对应的数个组件服务器、请求响应服务器以及请求服务器。
其中,系统客户端可以通过报文的方式接收管理员终端发送的组件操作请求,还可以以报文的方式接收交易请求。当系统客户端接收到管理员终端发送的组件操作请求时,首先需要确定发送该组件操作请求的用户是否具有管理员权限,只有具有管理员权限后,系统客户端才会将组件操作请求发送至转发服务器。当系统客户端接收到交易请求时,则将交易请求转发至请求响应服务器,以便于请求响应服务器将交易请求转发至请求服务器进行处理。且为了保证报文的安全,该组件操作请求和交易请求均会通过加密和加签的方式来进行处理,且在系统对请求处理完成后,系统客户端把组件操作的结果和请求处理的结果分别发送给系统客户端的使用者。
其中,转发服务器用于接收组件操作请求,并对管理员用户的登录进行验证,对报文进行验签和解密,并根据组件类型将组件操作请求分发给对应的组件操作服务器。且在组件操作服务器对相应组件操作完成后,将对应的操作结果转发至系统客户端。
其中分布式系统中的关键组件包括通道、节点、组织、用户、排序服务器,因此组件操作服务器包括通道操作服务器、节点操作服务器、组织操作服务器、用户操作服务器以及排序服务器操作服务器。不同的组件操作服务器分别根据组件操作请求对组件进行操作,并将操作结果反馈给转发服务器。分布式系统中的通道用于接收请求服务器发送的交易请求,并将交易请求发送至通道中所有的节点,节点对该交易请求进行处理后得到初步交易结果,并将初步交易结果返回至通道,通道根据初步交易结果得到目标交易结果并发送至排序服务器,排序服务器对目标交易结果按照时间先后顺序进行排序并存储,且节点可以从排序服务器获取到对应的目标交易结果,其中用户可以在组织中进行注册,组织为已注册的用户分配节点,即建立用户和节点之间的映射关系,且节点根据交易类型分配到不同的通道。
请求响应服务器则是接收系统客户端发送的交易请求后,对请求报文进行解密和验签,保证报文的合法性,且请求服务器为每一个交易请求分配唯一的交易标识,例如可以为交易ID号等,并接收交易服务器返回的目标交易结果,建立交易标识与目标交易结果之间的映射关系等。
交易服务器则是基于交易请求的类型选择合适的通道,然后通过通道将交易请求发送至通道内所有可用的交易节点中,从而交易节点可以对交易请求进行处理得到初步交易结果,并将初步交易结果反馈至通道,通道根据所得到的初步交易结果进行计算后得到目标交易结果,并反馈给交易服务器,由交易服务器返回给交易响应服务器,并由交易响应服务器反馈给系统客户端。且交易服务器在处理交易的过程中还可以接收转发服务器或通道操作服务器或其他的组件操作服务器的组件操作结果,然后根据组件操作结果来对当前交易请求的处理方式进行调整。
上述所涉及的服务器等都可以是以服务器集群的方式存在,以防止单点故障造成系统故障等。
请参阅图2,在其中一个实施例中,提供一种分布式系统操作方法,本实施例以该方法应用到上述图1中的组件操作服务器来举例说明。该组件操作服务器上运行有分布式系统操作程序,通过该分布式系统操作程序来实施分布式系统操作方法。该方法具体包括如下步骤:
S202:当前组件操作服务器接收转发服务器根据组件类型所转发的组件操作请求。
结合图1,当系统客户端接收到组件操作请求时,则可以将该组件操作请求发送至转发服务器,转发服务器在接收到该组件操作请求后,可以首先验证发送该组件操作请求的用户是否具有管理员权限,如果不具有管理员权限,则返回操作失败的结果;如果具有管理员权限,则对该组件操作请求进行验签和解密得到组件操作请求的明文,转发服务器根据该明文中所表示的组件类型将组件操作请求转发给相应的当前组件操作服务器。
其中,该分布式系统的组件类型包括通道、节点、组织、用户和排序服务器,用户是在组织中注册的,组织将用户和相应的交易节点进行关联,并将交易节点根据交易类型分配到不同的通道,每一个通道配置有相应的排序服务器或排序服务器集群。转发服务器根据明文中表示的组件类型将组件操作请求转发至相应的组件操作服务器,以便于组件操作服务器对相应组件进行操作处理。
S204:当前组件操作服务器根据组件操作请求对分布式系统中的当前组件进行操作得到第一组件操作结果。
对于当前组件的操作包括组件的新增、组件的退出、组件的暂停、组件的恢复、组件的配置信息的查询和组件的配置信息的变更的其中至少一种。例如组件状态的查询,其中组件的状态包括初始态、活动态、停止态和退出态,初始态是指组件进行初始化且尚未被激活,活动态是指组件被激活可以参与交易请求执行;停止态是指组件暂时停止服务,退出态是指组件退出系统,退出的组件再次加入系统,则需要重新初始化。
若当前组件操作服务器为通道操作服务器,则该通道操作服务器可以支持通道的新增、通道的退出、通道的停止、通道的恢复,其中通道的停止是指通道停止服务,通道的恢复是指已经停止服务的通道重新提供服务。通道的配置信息包括名称、编号、节点列表、排序服务器、用户列表以及状态,因此通道操作服务器还支持基于通道名称查询通道的编号,基于通道名称查询通道的状态等。
当前组件可以包括分布式系统中的节点、通道、用户、组织和排序服务器。
若当前组件操作服务器为节点操作服务器,则该节点操作服务器可以支持节点的新增、节点的退出、节点的停止、节点的恢复。节点的配置信息包括编号、名称、状态、节点IP地址和端口号、事件名、事件IP地址和端口号、组织名、通道列表等。因此节点操作服务器还支持基于节点的IP地址和端口查询节点编号,基于节点的IP地址和端口查询节点状态、节点所加入的通道的通道列表等。
若当前组件操作服务器为组织操作服务器,则该组织操作服务器可以支持组织的新增、组织的退出、组织的停止、组织的恢复。组织的配置信息可以包括编号、名称、节点列表、用户列表、状态、节点和用户的映射关系等,因此该组织操作服务器还可以支持基于组织名进行组织编号的查询、组织状态的查询等。
若当前组件操作服务器为用户操作服务器,则该用户操作服务器可以支持用户的新增、用户的退出、用户的停止、用户的恢复。且用户的配置信息可以包括编号、名称、状态、组织名、组织用户名、用户密钥和用户证书。因此该用户操作服务器还可以支持基于组织用户名(组织名和用户名的字符组合)进行编号的查询,还可以基于用户名和组织名进行状态的查询。
若当前组件操作服务器为排序服务器操作服务器,则该排序服务器操作服务器可以支持排序服务器的新增、排序服务器的退出、排序服务器的停止、排序服务器的恢复。且排序服务器的配置信息可以包括编号、名称、状态、排序服务器的IP地址及端口。因此该排序服务器操作服务器还可以支持基于排序服务器的IP地址和端口查询排序服务器的编号和状态等。
S206:当前组件操作服务器将第一组件操作结果返回至转发服务器,以使转发服务器发送第一组件操作结果至系统客户端。
当前组件操作服务器将第一组件操作结果返回至转发服务器,从而转发服务器可以存储该第一组件操作结果后,将该第一组件操作结果发送给系统客户端,由系统客户端转发给系统客户端的使用者等。
上述分布式系统管理方法,在接收到组件操作请求后,由转发服务器根据组件类型将该组件管理请求转发至对应的当前组件操作服务器,从而当前组件操作服务器可以对当前组件进行操作通过引入了转发服务器和组件操作服务器对组件进行操作,不再需要将系统关闭后,由研发人员手动的变更,节约了时间,提高了效率,且由于不再需要研发人员参与,降低了用人成本。
在其中一个实施例中,当前组件操作服务器根据组件操作请求对当前组件进行操作得到第一组件操作结果的步骤之后,还可以包括:当前组件操作服务器将第一组件操作结果发送至关联组件操作服务器,以使关联组件操作服务器根据第一组件操作结果对当前组件关联的关联组件进行操作得到第二组件操作结果后,将第二件操作结果返回至转发服务器;转发服务器发送第二组件操作结果至系统客户端。
由于系统中存在多个组件,每个组件之间是有机联系的,当存在一个组件发生变动时,其他组件也需要发生相应的变动。因此若当前组件操作服务器将第一组件操作结果发送至关联组件操作服务器后,关联组件操作服务器会根据该第一组件操作结果相应地调整关联组件,例如调整管理组件的配置信息等,管理组件操作服务器将该管理组件的操作结果,即第二组件操作结果返回至转发服务器,由转发服务器进行存储后,发送给系统客户端,以便于使用系统客户端的用户可以及时地了解到系统当前组件的状态等。
上述实施例中,当系统中一个组件发生变动时,其他与该组件相关联的组件也会相应地发生变动,从而使得组件之间的变动有机联系,不需要人工去根据一个组件的变动调整其他组件,提高了组件变动的效率,系统的可扩展性和系统的整体性。
参阅图3,图3为一实施例中的组件关联示意图,其中包括通道、节点、组织、用户以及排序服务器。通道与排序服务器、节点以及用户证书相关联,节点与通道以及组织相关联,组织与用户相关联。其中通道的变化包括通道的新增、已有通道的退出、已有通道的停止、已停止通道的恢复、通道名称的变化,通道名称变化后新的通道名称将作为通道的唯一标识,通道的状态会根据通道的变化而相应的变化;且当通道名称改变时,通道中节点的配置信息中的通道列表则会相应地改变。通道的关联组件包括节点、用户和排序服务器,节点、用户、排序服务器的变化均会触发通道的配置信息的变化,具体可以参见下文所述。
在其中一个实施例中,当前组件操作服务器为节点操作服务器时,则关联组件操作服务器为组织操作服务器和通道操作服务器。
具体地,节点的变动包括节点的新增、已有节点的退出、已有节点的停止、已有节点的恢复、节点的名称的变化、节点的IP地址和端口的变化、节点的事件名称的变化、节点的IP地址和端口的变化、节点的组织名称的变化等。其中节点的状态会根据变动的变化而相应地改变。
节点的变动会触发其所属的物理上的组织的配置信息的变化以及逻辑上关联的通道的配置信息的变化。系统客户端提交上述节点的变动的组织操作请求时,其消息报文不仅需要提供节点的配置信息还需要提供节点所属通道的通道名称的列表。
当节点的变动是新增节点,且新增节点的组织名称是新的时,节点操作服务器则会通知组织操作服务器,组织操作服务器创建新的组织,同时为该组织分配新的用户列表,组织操作服务器为该新增节点指定用户,并建立新增节点与用户之间的映射关系。当节点的变动是新增节点,且新增节点的通道名称是新的时,节点操作服务器则会通知通道操作服务器,通道操作服务器创建新的通道,并将新增节点添加到新的通道中,同时根据节点对应的用户更新通道的用户列表。
当节点的变动是已有节点的退出或已有节点的停止时,节点操作服务器则会通知组织操作服务器和通道操作服务器,组织操作服务器则会从变动的节点所属的组织的配置信息的节点列表中删除该变动的节点,并更新节点和用户的映射关系;通道操作服务器则会从变动的节点所述的通道的配置信息的节点列表中删除该变动的节点。
当节点的变动是已停止的节点的恢复时,节点操作服务器则会通知组织操作服务器和通道操作服务器,组织操作服务器在变动的节点所属的组织的配置信息的节点列表中增加该变动的节点,并更新节点和用户的映射关系,通道操作服务器在变动的节点所属的通道的配置信息的节点列表中增加该变动的节点。
当节点的变动是节点的IP地址和端口的变化时,节点操作服务器则会通知组织操作服务器和通道操作服务器,组织操作服务器则会对应地更新变动的节点关联的组织内的节点的标识,通道操作服务器也会对应地更新变动的节点关联的通道内的节点的标识。节点的IP地址和端口的变化以及节点的时间的IP地址和端口的变化会触发通道与该节点的通信上的重新连接。
节点的其他的配置信息的变化,例如节点的事件名称的变化、节点的组织名称的变化时,组织操作服务器和通道操作服务器则可以根据需要决定是否进行处理,且缺省的状况下是不进行处理的。
在上述实施例中,若当前操作服务器为节点操作服务器,则关联操作服务器为通道操作服务器和组织操作服务器,从而通道操作服务器和组织操作服务器则会根据节点操作服务器的第一操作结果对相应的通道和组织进行操作,实现了系统组件的动态管理,提高了系统的统一性和整体性,建立了系统组件之间的内在联系,提高了系统的健壮性和稳定性。
在其中一个实施例中,当前组件操作服务器为用户操作服务器,则关联组件操作服务器为组织操作服务器。
具体地,用户的变动包括用户的新增、已有用户的退出、已有用户的停止、已停止用户的恢复,并支持用户名称的变化、用户组织用户名的变化、用户组织名的变化、用户密钥和证书的变化,其中用户的状态会根据用户的变动而相应地变化。
当用户的变动是新增用户,且是用户配置信息中的用户组织名的新增时,则用户操作服务器通知组织操作服务器,组织操作服务器会创建新的组织,并将该用户归属于该新的组织。
当用户的变动是已有用户的退出或已有用户的停止时,则用户操作服务器通知组织操作服务器,组织操作服务器更新相应的组织的配置信息的用户列表,并为与该变动的用户对应的节点分配新的用户后,更新节点和用户的映射关系表,且组织操作服务器通知对应的通道操作服务器更新对应的通道的用户列表。
当用户的变动是已有用户的恢复时,则用户操作服务器首先设置用户可用,然后通知组织操作服务器,组织操作服务器在相应的组织的用户列表中增加该变动用户。
当用户的变动是用户名称发生变化时,则用户操作服务器更新用户的组织用户名;当用户的变动是用户的组织名发生变化时,则用户操作服务器更新用户的组织用户名;当用户的变动是用户的组织用户名发生变化时,则首先会通过比对原来的组织用户名判断是用户名部分发生变化还是组织名部分发生变化,组织名发生变化,则用户操作服务器更新用户的组织名,用户名发生变化,则用户操作服务器更新用户的用户名。在上述两种变化中,用户的组织名的变化则会把当前用户调整为被其他组织所使用,相应地用户操作服务器会通知组织操作服务器调整旧的组织和新的组织的用户相关信息,且组织操作服务器调整节点所对应的用户,并由组织操作服务器通知通道操作服务器,由通道操作服务器改变用户列表。
当用户的变动是用户的密钥或证书的变化时,则用户操作服务器通知通道操作服务器和组织操作服务器,通道操作服务器和组织操作服务器更新相应的密钥或证书。
上述实施例中,若当前操作服务器为用户操作服务器,则关联操作服务器为组织操作服务器,从而组织操作服务器则会根据用户操作服务器的第一操作结果对相应的组织进行操作,实现了系统组件的动态管理,提高了系统的统一性和整体性,建立了系统组件之间的内在联系,提高了系统的健壮性和稳定性。
在其中一个实施例中,当前组件操作服务器为组织操作服务器,则关联组件操作服务器为节点操作服务器和用户操作服务器。
组织的变动包括组织的新增、已有组织的退出、已有组织的停止、已停止组织的恢复、组织名称的变化。其中组织名称的变化可以具体参见上文所示。
当组织的变动是组织的新增时,则表示系统会增加一个新的组织,因此需要相应地配置新增组织的节点和用户,组织操作服务器会通知节点操作服务器增加节点,通知用户操作服务器增加用户。
当组织的变动是已有组织的退出或已有组织的停止时,则组织操作服务器会更新组织内所有节点和用户;对于已有组织的退出,组织操作服务器会通知相应的节点操作服务器和用户操作服务器更新节点的状态为退出态,更新用户的状态为退出态;对于已有组织的停止,组织操作服务器通知相应的节点操作服务器和用户操作服务器更新节点的状态为停止态,更新用户的状态为停止态;且节点操作服务器会发消息给所属的通道操作服务器,通道操作服务器会在通道的节点列表中移除相关的节点,同时组织操作服务器会发送消息给通道操作服务器,通道操作服务器会在关联通道的用户证书列表中移除相关的用户证书。
当组织的变动为已停止的组织的恢复时,组织操作服务器会通知节点操作服务器更新相应节点的状态为活动态,同时节点操作服务器通知通道操作服务器,通道操作服务器在节点所述通道的节点列表中增加该相关的节点;通知组织操作服务器通知用户操作服务器更新用户的状态为活动态,同时组织操作服务器通知通道操作服务器,通道操作服务器在用户所属通道的用户证书列表中增加相关的用户证书。
上述实施例中,当前组件操作服务器为组织操作服务器,则关联组件操作服务器为节点操作服务器和用户操作服务器,从而节点操作服务器和用户操作服务器则会根据组织操作服务器的第一操作结果对相应的用户和节点进行操作,实现了系统组件的动态管理,提高了系统的统一性和整体性,建立了系统组件之间的内在联系,提高了系统的健壮性和稳定性。
在其中一个实施例中,当前组件操作服务器为排序服务器操作服务器,则关联组件操作服务器为通道操作服务器。
其中排序服务器的变化包括排序服务器的新增、已有排序服务器的退出、已有排序服务器的停止、已停止的排序服务器的恢复、排序服务器的名称的变化、排序服务器的IP地址和端口的变化。
当排序服务器的变化是排序服务器的新增或排序服务器的恢复时,排序服务器操作服务器会为该新增的排序服务器配置名称、IP地址和端口,并通知相应的通道操作服务器。
当排序服务器的变化是已有排序服务器的退出或已有排序服务器的停止时,则排序服务器操作服务器会更新变动的排序服务器的状态为退出态或停止态,且向通道操作服务器发送消息,通道操作服务器则变更所关联的通道的配置信息的排序服务器列表。
当排序服务器的变化是IP地址和端口的变化时,排序服务器操作服务器变更对应排序服务器的IP地址和端口,然后通知通道操作服务器,通道操作服务器将新的IP地址和端口替换旧的IP地址和端口。
上述实施例中,当前组件操作服务器为排序服务器操作服务器,则关联组件操作服务器为通道操作服务器,从而通道操作服务器则会根据排序服务器操作服务器的第一操作结果对相应的通道进行操作,实现了系统组件的动态管理,提高了系统的统一性和整体性,建立了系统组件之间的内在联系,提高了系统的健壮性和稳定性。
请继续参阅图3,其中通道可以以通道名称或通道编号作为唯一标识,通道中包含了一个或多个节点,一个或多个用户证书,一个或多个排序服务器,其中缺省的状态下是一个排序服务器,多个排序服务器是为了在排序服务器大诚一致性共识后才确定排序的结果。基于通道的交易请求执行时,通道会将交易请求发送至通道内的每一个节点,并通过节点执行交易请求,且节点在交易请求执行完成后,将初步交易结果返回至通道,通道根据初步交易结果得到目标交易结果,并将目标交易结果发送至排序服务器,由排序服务器进行排序并存储。通道的用户证书列表是指通道内的节点所属组织的用户的用户证书列表,通道和通道内的节点通信时,比如发送交易请求报文等,会选择用户证书中的公钥对报文约定的字段进行加密,并通过通道自己的私钥进行加签,其将公钥作为报文的一部分发送给节点。
节点是以节点的IP地址和端口或节点的编号作为唯一标识的,其中节点物理上归属于某一个组织,逻辑上关联一个或多个通道,即一个节点可以被一个或多个通道用来执行交易请求。节点在收到通道的报文后,对通道内的报文进行验签,并对约定的报文的字段用节点对应的用户私钥进行解密,然后执行相应的交易请求。
用户是以组织用户名或用户编号作为唯一标识的,用户归属于某个组织,一个组织内的用户可以对应组织内的一个或多个节点,即用户私钥可以为组织内的一个或多个节点所有,缺省的情况下组织的一个用户的私钥为组织内一个节点所有。
组织是以组织名或组织的编号为唯一标识,组织中包含了节点和用户,组织会为其中的每个节点分配一个用户,各个节点对应的用户可以是相同或不同的,组织会建立节点和用户之间的映射关系。
排序服务器是以排序服务器的IP地址和端口或排序服务器的编号为唯一标识的,排序服务器为通道提供目标交易结果的排序和存储功能。
请参阅图4,图4为一实施例中交易请求处理步骤的流程图,该交易请求处理步骤可以包括:
S402:请求响应服务器接收系统客户端发送的交易请求,并将所接收的交易请求转发至请求服务器。
具体地,系统客户端可以接收交易请求,并将交易请求转发给请求响应服务器,请求响应服务器生成关于交易请求的编号,并将该交易请求和编号转发给请求服务器。
S404:请求服务器获取与交易请求对应的组件的状态,并在组件的状态为可用状态时,通过组件对交易请求进行处理得到目标交易结果。
具体地,请求服务器根据请求响应服务器发送的交易请求解析交易请求的类型,并根据交易请求的类型选择合适的通道;且请求服务器可以通过与通道操作服务器或转发服务器进行通信读取通道以及与通道相关的组件的信息和状态,例如节点的信息和状态等;如果通道和相关的组件的状态为可用状态,即活动态时,则将该交易请求转发给通道内的节点执行,通道内的节点对该交易请求进行处理得到初步交易结果,并将该初步交易结果返回给通道。通道基于该初步交易结果和共识算法策略得到目标交易结果,并将该目标交易结果返回至请求服务器,其中在通道得到目标交易结果后,可以将目标交易结果发送至对应的排序服务器进行处理,排序服务器可以对该目标交易结果通过时间来进行排序,并将排序后的目标交易结果进行存储,节点可以同步排序服务器中的目标交易结果,且排序服务器可以将排序后的目标交易结果主动发送给请求服务器。
S406:请求服务器将目标交易结果发送至请求响应服务器后,请求响应服务器发送目标交易结果至系统客户端。
具体地,在请求服务器获取到目标交易结果后,将该目标交易结果发送至请求响应服务器,并由请求响应服务器将该目标交易结果返回至系统客户端。
上述实施例中,通过引入请求响应服务器和请求服务器来对交易请求进行处理,将交易请求与组件操作请求分开处理,互不影响,提高了系统的健壮性和稳定性。
在其中一个实施例中,参见图5,图5为一实施例中的交易请求处理步骤与组件操作请求处理步骤的流程图;请求处理器获取与交易请求对应的组件的状态的步骤之后,还包括:请求服务器接收第一组件操作结果和第二组件操作结果;在组件的状态为可用状态时,通过组件对交易请求进行处理得到目标交易结果的步骤,包括:根据第一组件操作结果和第二组件操作结果获取操作后的可用组件,并通过可用组件对交易请求进行处理得到目标交易结果。
具体地,交易请求的处理直接涉及到的组件包括通道、节点、用户和排序服务器,组织的变更则会触发节点和用户的变更,从而间接对请求的执行产生影响,其中用户的变更会触发所关联的通道内用户证书的变更和所关联的节点的用户私钥的变更,节点的变更会触发通道的节点列表的变更,排序服务器的变更会触发所关联的通道的排序服务器的列表的变更,在当前组件操作服务器对当前组件进行操作得到第一组件操作结果以及关联组件操作服务器对关联组件进行操作得到第二组件操作结果后,当前组件操作服务器以及关联组件操作服务器可以直接将该第一组件操作结果和第二组件操作结果发送给请求服务器,或者由通道操作服务器转发给请求服务器,或者由转发服务器转发给请求服务器,请求服务器在接收到该第一组件操作结果和第二组件操作结果后,相应地获取到可用的组件,并通过可用组件对交易请求进行处理得到目标交易结果。
其中请求服务器以通道服务为主体执行交易请求,在接收到组件操作结果时,如果组件操作结果中包括了通道的变更,例如组件操作结果包括通道的新增,则新增的通道由于与正在执行的交易请求的通道没有关联,因此对交易请求没有影响。如果组件操作结果包括通道的退出,则直接终止该通道的通道服务。如果组件操作结果包括通道的停止,则直接停止该通道的通道服务。如果组件操作结果包括已停止的通道的恢复,则直接回复该通道的通道服务,不会对交易请求的处理造成影响。
如果组件操作结果包括通道名称的变化,其对正在执行的交易请求没有影响,且在通道接收到新的交易请求时,则根据新的通道名称进行分配。
如果组件操作结果包括通道的节点列表的变化,例如当节点列表中存在新的节点时,在交易请求尚未发送给通道内节点执行时,则交易请求会被发送给该新的交易节点,如果交易请求已经发送给了通道内已有的节点时,则该新的节点不会参与交易请求的执行,通道内已有的节点继续执行当前交易请求;当通道的节点列表中存在节点的减少时,如果当前交易请求已经发送给了通道内的节点,即也发送给了减少的节点,则当前交易请求会继续进行,此时通过通道与节点之间的通信超时处理来进行相应地处理,即无论减少的节点是否有反馈都不会影响交易请求的执行和处理结果。如果组件操作结果包括通道的用户列表的变更,由于通道是使用节点对应的用户证书内的公钥对交易请求的关键字段进行加密,从而接收到交易请求的节点通过对应的用户私钥进行解密,而用户和节点归属于同一个组织,因此对于用户列表的变更可以参见上文中节点列表的变更,在此不再赘述。
如果组件操作结果包括排序服务器的变更,由于通道服务器只需要节点数的n/2+1(n代表节点数)对交易请求执行的成功反馈,即可认为当前交易请求的执行结果是一致的;否则认为交易请求执行失败。通道内的排序服务器列表用于对排序服务达成一致性,也需要数量上的m/2+1(m代表排序服务器数量)一致,认为交易请求执行结果一致;否则认为交易请求执行失败;缺省的情况下是通道使用单个排序服务器,对于单个排序服务器,如果在排序服务进行中,排序服务器退出或者停止,系统会为通道服务分配新的排序服务器,通道服务重新进行排序;排序服务器的新增或恢复,由请求处理器进行重新调配,不会影响当前请求的执行。
上述实施例中,在交易请求处理过程中存在组件操作结果时,则请求服务器根据组件操作结果相应地处交易请求,不会因为组件的操作导致交易请求处理中止或丢失,提高了系统的稳定性。
在其中一个实施例中,该方法还可以包括当请求服务器正在处理交易请求时,则在请求服务器通过组件对交易请求进行处理得到目标交易结果后,当前组件操作服务器根据组件操作请求对当前组件进行操作得到第一组件操作结果。
具体地,当请求服务器正在处理交易请求时,发生了组件操作请求,则系统可以先暂停组件操作请求的执行,首先对交易请求进行处理得到目标交易结果后,再根据组件操作请求对当前组件进行操作得到第一组件操作结果,这样可以防止组件操作请求对于交易请求的影响。
上述实施例中,当在交易请求处理过程中存在组件操作请求时,则可以首先暂停组件操作请求的执行,即先处理交易请求,在交易请求处理完成后再对组件操作请求进行处理,保证了交易请求的正常处理,提高了系统的稳定性。
请继续参阅图1,图1中的示出了一分布式系统的操作系统,其包括转发服务器和当前组件操作服务器。
转发服务器用于根据组件类型将所接收的组件操作请求转发给当前组件操作服务器。
当前组件操作服务器用于根据组件操作请求对分布式系统中的当前组件进行操作得到第一组件操作结果;并将第一组件操作结果返回至转发服务器,以使转发服务器发送第一组件操作结果。
在其中一个实施例中,组件操作请求包括组件新增请求、组件退出请求、组件停止请求、组件恢复请求、组件配置信息查询请求或组件配置信息变更请求中的至少一种。
在其中一个实施例中,当前组件操作服务器还用于将第一组件操作结果发送至关联组件操作服务器,以使关联组件操作服务器根据第一组件操作结果对当前组件关联的关联组件进行操作得到第二组件操作结果后,将第二件操作结果返回至转发服务器。
转发服务器还用于发送第二组件操作结果至系统客户端。
在其中一个实施例中,当前组件操作服务器为节点操作服务器时,则关联组件操作服务器为组织操作服务器和通道操作服务器。
在其中一个实施例中,当前组件操作服务器为用户操作服务器,则关联组件操作服务器为组织操作服务器。
在其中一个实施例中,当前组件操作服务器为组织操作服务器,则关联组件操作服务器为节点操作服务器和用户操作服务器。
在其中一个实施例中,系统还包括请求响应服务器以及请求服务器。
请求响应服务器用于接收系统客户端发送的交易请求,并将所接收的交易请求转发至请求服务器。
请求服务器用于获取与交易请求对应的组件的状态,并在组件的状态为可用状态时,通过组件对交易请求进行处理得到目标交易结果,并将目标交易结果发送至请求响应服务器。
请求响应服务器还用于发送目标交易结果至系统客户端。
在其中一个实施例中,请求服务器还用于在获取与交易请求对应的组件的状态之后,接收第一组件操作结果和第二组件操作结果;并根据第一组件操作结果和第二组件操作结果获取操作后的可用组件,并通过可用组件对交易请求进行处理得到目标交易结果。
在其中一个实施例中,当前组件操作服务器还用于当请求服务器正在处理交易请求时,则在请求服务器通过组件对交易请求进行处理得到目标交易结果后,根据组件操作请求对当前组件进行操作得到第一组件操作结果。
上述关于分布式系统操作系统的具体限定可以参照上文中关于分布式系统操作方法的具体限定,在此不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质包括磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。