信息处理方法、信息处理装置、计算机系统和介质与流程

文档序号:22397012发布日期:2020-09-29 18:06阅读:78来源:国知局
信息处理方法、信息处理装置、计算机系统和介质与流程

本公开涉及计算机技术领域,更具体地,涉及一种信息处理方法、信息处理装置、计算机系统和介质。



背景技术:

现有技术中,基于区块链网络可以对预定业务场景下的各种业务数据、业务逻辑等进行维护和管理,从而使得服务应用可以基于区块链网络实现各种业务功能。在此情景下,任一服务应用与区块链网络之间的交互通常需要借助于区块链客户端。

一种处理方式下在服务应用侧执行流量控制策略。然而,上述服务应用与区块链网络之间的交互过程依赖于服务应用的主动控制。在很多场景中对于数据的上链操作并非需要立刻获取结果,采取异步调用的方式来提高服务应用的吞吐量。该过程无论区块链客户端是否采用集群化部署,最终的请求压力都会落在区块链客户端上,而服务应用即便是使用了负载均衡等技术手段来控制也无法确保当前请求的区块链客户端是否能够继续接收并处理新的请求,从而有可能导致区块链客户端因为请求过载出现宕机等不可控情况,且在请求数据未持久化的时候还会导致请求丢失进一步引发数据上链操作失败。



技术实现要素:

本公开的一个方面提供了一种信息处理方法,应用于区块链客户端。该方法包括:预存指定服务应用所属的区块链网络的区块链配置信息;接收来自指定服务应用的操作请求,该操作请求包括动态参数;基于该动态参数和上述区块链配置信息,生成请求组合,该请求组合包括指定节点集合信息。并且,当监测到所述指定节点集合信息所表征的指定节点集合处于过载状态时,将所述请求组合提交至消息队列;当监测到所述指定节点集合从过载状态转为正常状态时,从所述消息队列获取所述请求组合并发送至所述指定节点集合进行处理。

可选地,上述预存指定服务应用所属的区块链网络的区块链配置信息包括:当区块链客户端首次启动时,向指定服务应用发送配置请求消息。然后,接收并存储来自指定服务应用的全量区块链配置信息。该全量区块链配置信息包括如下至少一项:区块链节点集合信息、区块链打包节点集合信息、区块链通道集合信息、区块链智能合约集合信息、以及区块链认证授权用户集合信息。

可选地,上述预存指定服务应用所属的区块链网络的区块链配置信息还包括:每当所述区块链网络的区块链配置信息发生更新时,接收来自所述指定服务应用的增量区块链配置信息。然后,基于该增量区块链配置信息,对上述全量区块链配置信息进行更新。

可选地,上述操作请求为上链请求,上述动态参数为针对上链请求的第一动态参数。上述基于动态参数和区块链配置信息,生成请求组合包括:基于第一动态参数,从上述区块链节点集合信息中选取第一指定可用节点集合信息,从上述区块链打包节点集合信息中选取第一指定打包节点集合信息,从上述区块链通道集合信息中选取第一指定通道集合信息,从上述区块链智能合约集合信息中选取第一指定智能合约集合信息,并且,从上述区块链认证授权用户集合信息中选取第一指定用户集合信息。然后,由上述第一指定可用节点集合信息、上述第一指定打包节点集合信息、上述第一指定通道集合信息、上述第一指定智能合约集合信息和上述第一指定用户集合信息,构成针对上链请求的第一请求组合。

可选地,上述操作请求包括链上查询请求,上述动态参数为针对链上查询请求的第二动态参数。上述基于动态参数和区块链配置信息,生成请求组合包括:基于第二动态参数,从上述区块链节点集合信息中选取第二指定可用节点集合信息,从上述区块链通道集合信息中选取第二指定通道集合信息,从上述区块链智能合约集合信息中选取第二指定智能合约集合信息,并且,从上述区块链认证授权用户集合信息中选取第二指定用户集合信息。然后,由上述第二指定可用节点集合信息、上述第二指定通道集合信息、上述第二指定智能合约集合信息和上述第二指定用户集合信息,构成针对链上查询请求的第二请求组合。

可选地,上述操作请求包括通道查询请求,上述动态参数为针对通道查询请求的第三动态参数。上述基于动态参数和区块链配置信息,生成请求组合包括:基于第三动态参数,从上述区块链节点集合信息中选取第三指定可用节点集合信息,从上述区块链通道集合信息中选取第三指定通道集合信息,并且,从上述区块链认证授权用户集合信息中选取第三指定用户集合信息。然后,由上述第三指定可用节点集合信息、上述第三指定通道集合信息和上述第三指定用户集合信息,构成针对通道查询请求的第三请求组合。

可选地,上述指定节点集合信息包括:指定可用节点集合信息和/或指定打包节点集合信息。指定节点集合信息所表征的指定节点集合处于过载状态包括如下至少一项:指定可用节点集合信息所表征的指定区块链节点集合处于过载状态;以及,指定打包节点集合信息所表征的指定打包节点集合处于过载状态。

本公开的另一方面提供了一种信息处理装置,应用于区块链客户端。该装置包括:预存模块、请求接收模块、请求装配模块和处理模块。预存模块用于预存指定服务应用所属的区块链网络的区块链配置信息;请求接收模块用于接收来自指定服务应用的操作请求,该操作请求包括动态参数;请求装配模块用于基于该动态参数和上述区块链配置信息,生成请求组合,该请求组合包括指定节点集合信息。处理模块用于当监测到所述指定节点集合信息所表征的指定节点集合处于过载状态时,将所述请求组合提交至消息队列;并且,当监测到所述指定节点集合从过载状态转为正常状态时,从所述消息队列获取所述请求组合并发送至所述指定节点集合进行处理。

本公开的另一方面提供了一种计算机系统,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时用于实现如上所述的方法。

本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。

本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。

根据本公开实施例的信息处理方法,将服务应用对区块链客户端的负载均衡以及相关流量控制策略都取消,全部移交给区块链客户端来处理。在区块链客户端侧预存指定服务应用的区块链配置信息。从而在接收来自指定服务应用的操作请求时,仅需要接收数据体量很小的动态参数即可装配生成相应的请求组合,无需指定服务应用将区块链配置信息装配并发送,实现了服务应用与区块链客户端之间请求的灵活性。此外,根据本公开实施例的信息处理方法,区块链客户端在装配生成请求组合后,如果监测到请求组合所指定的区块链网络中的指定节点存在过载问题,则可以将请求组合提交至消息队列中,从而可以根据指定节点的负载情况适应性地对消息队列中的请求组合进行处理。进而在保证请求组合不会丢失的情况下实现针对区块链网络中节点的流量控制。

附图说明

为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:

图1示意性示出了根据本公开实施例的应用信息处理方法和信息处理装置的示例性系统架构;

图2示意性示出了根据本公开实施例的信息处理方法的流程图;

图3示意性示出了根据本公开实施例的预存区块链配置信息的示例示意图;

图4示意性示出了根据本公开实施例的请求组合的示例示意图;

图5示意性示出了根据本公开另一实施例的信息处理方法的示例示意图;

图6示意性示出了根据本公开实施例的信息处理装置的框图;以及

图7示意性示出了根据本公开实施例的适用于信息处理方法的计算机系统的框图。

具体实施方式

以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。

在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。

在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。

在使用类似于“a、b和c等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有a、b和c中至少一个的系统”应包括但不限于单独具有a、单独具有b、单独具有c、具有a和b、具有a和c、具有b和c、和/或具有a、b、c的系统等)。在使用类似于“a、b或c等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有a、b或c中至少一个的系统”应包括但不限于单独具有a、单独具有b、单独具有c、具有a和b、具有a和c、具有b和c、和/或具有a、b、c的系统等)。

本公开的实施例提供了一种信息处理方法和信息处理装置,可以应用于区块链客户端,通过区块链客户端的如下操作可以实现区块链网络针对指定服务应用的操作请求的处理。该信息处理方法可以包括预存过程、请求接收过程、请求装配过程和处理过程。在预存过程中,区块链客户端预存指定服务应用所属的区块链网络的区块链配置信息。在请求接收过程中,区块链客户端接收来自指定服务应用的操作请求,该操作请求包括动态参数。然后进行请求装配过程,区块链客户端基于该动态参数和上述区块链配置信息,生成请求组合,该请求组合包括指定节点集合信息。在处理过程中,当监测到上述指定节点集合信息所表征的指定节点集合处于过载状态时,将所述请求组合提交至消息队列;当监测到指定节点集合从过载状态转为正常状态时,从消息队列获取请求组合并发送至上述指定节点集合进行处理。

图1示意性示出了根据本公开实施例的可以应用信息处理方法和信息处理装置的示例性系统架构100。需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。

如图1所示,该系统架构100可以包括至少一个区块链网络(blockchainnetwork)110、至少一个区块链客户端120和至少一个服务应用130。区块链网络110可以包括节点(node)111~116,节点111~116共同维护区块链(blockchain)117。

区块链技术是一种采用了非对称密钥对交易信息签名并加密传输的技术,其方案是验证交易、组装区块,并形成区块链结构。使用区块链技术的目的是为了达成共识机制,防止链分叉,并且通过使用点对点数据传输手段,以此来实现分布式网络存储。区块链技术的最大特点来自于其分布式的、去中心化的加密数据存储技术,以及无需第三方信任机构的可靠底层机制。区块链网络110及依附于该网络的激励机制构成了一个去中心化的自组织生态,网络中的节点遵循统一的法则,数据不可篡改,数据多节点维护,简单清晰的共识机制,在此基础上形成的信任体系不需要依赖某一节点或者第三方,是对体系规则的信任。

节点111~116可以是具有相同或不同计算能力的各种计算节点,例如可以是个人计算机、网络服务器、数据库服务器等等,在此不做限定。节点111~116中任意两个节点之间都可进行点对点通信。

区块链117是通过散列指针按时间顺序链接的区块(block)的分布式数据库。区块链的区块是按照时间顺序加入的,当满足预定条件时,区块链网络中的各节点允许当前节点创建区块并将该区块加入到区块链中,加入的区块作为该区块链上当前最新区块。在某一特定时刻,维护同一区块链的节点从区块链上获取的当前最新区块是相同的。可以理解,区块链是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块,是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。

应该理解,图1中的区块链网络的规模和类型、节点的数量、区块链的长度、区块的数量等仅仅是示意性的。根据实际需要,可以具有任意规模和类型的区块链网络、任意数量的节点、任意长度的区块链、任意数量的区块等,在此不做限制。

继续参考图1,根据本公开实施例,上述区块链网络110可以对预定业务场景下的各种业务数据、业务功能、业务逻辑等进行维护和管理,上述至少一个服务应用130可以基于区块链网络110实现各种业务功能。在此情景下,任一服务应用130与区块链网络110中的节点之间的交互需要借助于区块链客户端120。区块链客户端120一般以提供软件开发工具包(softwaredevelopmentkit,sdk)的方式进行自定义开发,或者使用节点向外暴露的各种协议(例如http/https协议、grpc/grpcs协议等)进行自定义开发。因此当服务应用130需要对区块链网络110上节点进行访问时,需要基于指定节点应用程序接口(applicationprogramminginterface,api)、所需通道、合约等配置信息,通过调用区块链客户端120以实现对区块链节点的访问。

为了避免因为请求过载而出现宕机等不可控情况,一种处理方式下在服务应用侧执行流量控制策略。流量控制包括负载均衡、访问限流、请求转发、熔断降级等多种策略或组合。例如,负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。访问限流、转发、熔断等是服务接口的流量控制策略。

然而,上述服务应用与区块链网络之间的交互过程依赖于服务应用的主动控制。示例性地,在区块链客户端访问区块链节点时,相当一部分的请求都会有一个较长的等待期,在等待期内由节点处理数据完成上链的操作并返回结果给区块链客户端,此时区块链客户端再将数据返回给非客户端服务。

在很多场景中对于数据的上链操作并非需要立刻获取结果,采取异步调用的方式来提高服务应用的吞吐量。该过程无论区块链客户端是否采用集群化部署,最终的请求压力都会落在区块链客户端上,而服务应用即便是使用了负载均衡等技术手段来控制也无法确保当前请求的区块链客户端是否能够继续接收并处理新的请求,从而有可能导致区块链客户端因为请求过载出现宕机等不可控情况,且在请求数据未持久化的时候还会导致请求丢失进一步引发数据上链操作失败。

为至少部分地解决上述过程中区块链客户端无法对节点请求流量自动化处理的问题,根据本公开的实施例,提供了一种信息处理方法,该方法可以应用于如图1所示的任一区块链客户端120,以提高请求的稳定性,并进一步提高执行效率。下面结合附图进行示例性说明。应注意,以下方法中各个操作的序号仅作为该操作的表示以便描述,而不应被看作表示该各个操作的执行顺序。除非明确指出,否则该方法不需要完全按照所示顺序来执行。

图2示意性示出了根据本公开实施例的信息处理方法的流程图,可以应用于区块链客户端。

如图2所示,该信息处理方法可以包括操作s210~s250。

在操作s210,预存指定服务应用所属的区块链网络的区块链配置信息。

示例性地,可以将不同的服务应用归属至不同的区块链网络,基于不同的区块链网络可以实现不同的业务逻辑。可以保证不同的业务数据之间的隐私性,保证数据安全。

在操作s220,接收来自指定服务应用的操作请求,该操作请求包括动态参数。

其中,动态参数为执行上述操作请求的动态变化的必要参数,数据体量较小。

在操作s230,基于该动态参数和上述区块链配置信息,生成请求组合。

其中,该请求组合包括指定节点集合信息,指定节点集合信息用于表征指定服务应用在本次操作请求中所指定的区块链网络中的节点。

在操作s240,当监测到指定节点集合信息所表征的指定节点集合处于过载状态时,将请求组合提交至消息队列。

示例性地,当存在多个类型的指定节点集合时,监测到指定节点集合信息所表征的指定节点集合处于过载状态可以是指监测到至少一个类型的指定节点集合处于过载状态。

在操作s250,当监测到指定节点集合从过载状态转为正常状态时,从消息队列获取请求组合并发送至指定节点集合进行处理。

示例性地,当发现需要进行数据处理的指定节点的数据量负荷超过最大负荷量,即出现过载问题。此时,为避免指定节点出现宕机等不可控问题,也为了避免尚未被处理的请求组合被丢失,可以将待处理的请求组合放入消息队列中。可以根据相应的指定节点自身负载情况来对消息队列中的请求组合进行处理,既不会继续增加指定节点的负载,也不会出现请求组合丢失的情况。如果监测到指定节点集合处于过载状态超过预定时长,即确定该指定节点集合持续过载,则区块链客户端可以开始进行限流,以控制操作请求的数据量。例如在接收到新的操作请求时,向服务应用返回表征流量已达上限的提示消息。

本领域技术人员可以理解,现有技术中,区块链配置信息在服务应用侧加载。每当服务应用需要与区块链网络进行交互时,服务应用基于区块链配置信息动态生成请求组合,再发送至区块链客户端进行处理的方案。相较而言,根据本公开实施例的信息处理方法,将服务应用对区块链客户端的负载均衡以及相关流量控制策略都取消,全部移交给区块链客户端来处理。在区块链客户端侧预存指定服务应用的区块链配置信息。从而在接收来自指定服务应用的操作请求时,仅需要接收数据体量很小的动态参数即可装配生成相应的请求组合,无需指定服务应用将区块链配置信息装配并发送,实现了服务应用与区块链客户端之间请求的灵活性。此外,根据本公开实施例的信息处理方法,区块链客户端在装配生成请求组合后,如果监测到请求组合所指定的区块链网络中的指定节点存在过载问题,则可以将请求组合提交至消息队列中,从而可以根据指定节点自身负载情况适应性地对消息队列中的请求组合进行处理。进而在保证请求组合不会丢失的情况下实现针对区块链网络中节点的流量控制。

图3示意性示出了根据本公开实施例的预存区块链配置信息的示例示意图。

如图3所示,上述预存指定服务应用所属的区块链网络的区块链配置信息的过程可以包括:当区块链客户端310首次启动时,区块链客户端310向指定服务应用320发送配置请求消息。然后,区块链客户端310接收并存储来自指定服务应用320的全量区块链配置信息301。示例性地,区块链客户端310接收到并能够处理的区块链配置信息较多,主要包括但不限于例如区块链节点集合信息、区块链打包节点集合信息、区块链通道集合信息、区块链智能合约集合信息、以及区块链认证授权(certificationauthority,ca)用户集合信息。其中,区块链节点集合信息用于表征区块链网络中所有可用的区块链节点的集合。区块链打包节点集合信息用于表征区块链网络中所有区块链打包节点的集合。区块链通道集合信息用于表征区块链网络中各个通道的集合。区块链智能合约集合信息用于表征区块链网络中部署的各种智能合约的集合。区块链认证授权用户集合信息用于表征经过数据证书颁发过程的用户的集合。区块链节点和区块链打包节点为区块链网络中权限不同的节点,例如区块链节点用于进行数据接收等,区块链打包节点用于进行区块打包等。

继续参考图3,进一步地,上述预存指定服务应用所属的区块链网络的区块链配置信息的过程还可以包括:每当区块链网络的区块链配置信息发生更新时,区块链客户端310接收来自指定服务应用320的增量区块链配置信息,该增量区块链配置信息是指区块链配置信息中发生变化的部分。然后,基于该增量区块链配置信息,对上述全量区块链配置信息进行更新。

上述区块链配置信息在不同的请求中会匹配不同的参数进行组装,下面参考图4,结合几个例子进行示例性说明。图4示意性示出了根据本公开实施例的请求组合的示例示意图。

例如,上述操作请求为上链请求,上述动态参数为针对上链请求的第一动态参数。基于动态参数和区块链配置信息,所生成的第一请求组合401可以如图4所示,表征当发起数据上链请求时会用到第一指定区块链节点、第一指定打包节点、第一指定通道、第一指定智能合约及第一指定ca用户组合。上述基于动态参数和区块链配置信息,生成请求组合的过程可以包括:基于第一动态参数,从上述区块链节点集合信息中选取第一指定可用节点集合信息,从上述区块链打包节点集合信息中选取第一指定打包节点集合信息,从上述区块链通道集合信息中选取第一指定通道集合信息,从上述区块链智能合约集合信息中选取第一指定智能合约集合信息,并且,从上述区块链认证授权用户集合信息中选取第一指定用户集合信息。然后,由上述第一指定可用节点集合信息、上述第一指定打包节点集合信息、上述第一指定通道集合信息、上述第一指定智能合约集合信息和上述第一指定用户集合信息,构成针对上链请求的第一请求组合。

又例如,上述操作请求包括链上查询请求,上述动态参数为针对链上查询请求的第二动态参数。基于动态参数和区块链配置信息,所生成的第二请求组合402可以如图4所示,表征当发起链上查询请求时会用到第二指定区块链节点、第二指定通道、第二指定智能合约及第二指定ca用户组合。上述基于动态参数和区块链配置信息,生成请求组合包括:基于第二动态参数,从上述区块链节点集合信息中选取第二指定可用节点集合信息,从上述区块链通道集合信息中选取第二指定通道集合信息,从上述区块链智能合约集合信息中选取第二指定智能合约集合信息,并且,从上述区块链认证授权用户集合信息中选取第二指定用户集合信息。然后,由上述第二指定可用节点集合信息、上述第二指定通道集合信息、上述第二指定智能合约集合信息和上述第二指定用户集合信息,构成针对链上查询请求的第二请求组合。

再例如,上述操作请求包括通道查询请求,上述动态参数为针对通道查询请求的第三动态参数。基于动态参数和区块链配置信息,所生成的第三请求组合403可以如图4所示,表征当发起查询通道信息时会用到第三指定区块链节点、第三指定通道及第三指定ca用户组合。上述基于动态参数和区块链配置信息,生成请求组合包括:基于第三动态参数,从上述区块链节点集合信息中选取第三指定可用节点集合信息,从上述区块链通道集合信息中选取第三指定通道集合信息,并且,从上述区块链认证授权用户集合信息中选取第三指定用户集合信息。然后,由上述第三指定可用节点集合信息、上述第三指定通道集合信息和上述第三指定用户集合信息,构成针对通道查询请求的第三请求组合。

除上述外,还有创建通道、加入通道、安装合约、实例化合约、升级合约、节点服务发现、ca用户创建等多个涵盖区块链生命周期的请求组合。装配生成相应请求组合的过程与上述例子原理相同,在此不再赘述。在本公开的一个实施例中,上述请求组合所需的集合可以提前生成或服务应用动态生成的,结合部署当前区块链节点的组织对象,该集合的信息即便是动态生成,也会被明确。

鉴于此,所有的可能出现的请求组合交由区块链客户端进行装配,而不是由非客户端服务处理,服务应用在启动时,将已知的所有集合信息发送给区块链客户端,且在后续可能存在的配置集合信息变更都同步发送给区块链客户端,确保区块链客户端始终存留最新的区块链节点配置信息集合。此时,当非客户端服务发起任何区块链请求时,仅需提供动态变化的必要参数即可,无需将配置信息装配并发送,从而实现了请求的灵活性。

当区块链客户端接收到非客户端服务发起的请求后,根据具体请求内容选出可用节点集合、打包节点集合。可用节点及区块链节点,打包节点即提供打包服务节点。这两种节点集合的是多对多且数量并不一定相等。故会存在节点集合过载而打包节点集合还可以继续处理业务,或打包节点集合过载而节点集合还可以继续处理业务的情况。此时需要根据不同的情况分别对两种类别集合的请求进行除了负载均衡以外的流量控制,以确保每一笔请求都能够被处理到。

根据本公开的实施例,上述指定节点集合信息可以包括:指定可用节点集合信息和/或指定打包节点集合信息。在此基础上,指定节点集合信息所表征的指定节点集合出现过载包括如下至少一项:指定可用节点集合信息所表征的指定区块链节点集合出现过载;以及,指定打包节点集合信息所表征的指定打包节点集合出现过载。

可以理解,为了确保请求都会被处理,在以上两种类别集合中的任意一种出现过载情况时,被流量控制的请求组合将会被提交到一个消息队列中,可以使用的消息队列服务包括但不限于例如kafka消息队列、activemq、ribbitmq、rocketmq等,在此不做限制。

图5示意性示出了根据本公开另一实施例的信息处理方法的示例示意图,以说明区块链客户端510和服务应用520之间、以及区块链客户端510和区块链网络之间的交互过程。本例中,服务应用520为非客户端服务520。区块链网络包括区块链节点531和区块链打包节点532。此外还设置由消息中间件,即消息队列540。

如图5所示,当非客户端服务520启动时,从数据库或本地文件等相关数据提供方加载当前服务所属区块链组织基本信息,即区块链配置信息。如果存在该区块链配置信息,则将当前组织相关的区块链配置信息加载并发送到区块链客户端510。此时,如果区块链客户端510未启动,则非客户端服务520在首次收到区块链客户端510所发送的请求时将本地已有当前组织相关区块链配置信息发送给区块链客户端510。

当非客户端服务520监测到当前组织相关区块链配置信息发生变更时,同步信息发送给区块链客户端510,如果区块链客户端不存在,则重复上述将当前组织相关的区块链配置信息加载并发送到区块链客户端510。

当非客户端服务520发起区块链相关操作请求时,将必要的动态参数请求发送给区块链客户端510。区块链客户端510根据请求策略选择指定可用节点集合和指定打包节点集合,并根据集合当前可用情况采用负载均衡的方式发起对节点的请求。如果指定可用节点集合和指定打包节点集合中任意一方出现过载,则对新接收到的请求做熔断处理,转发给消息队列服务。如果出现持续性的过载请求需求,则对区块链客户端510接收进行限流操作,以确保区块链客户端510的稳定运行。

基于上述各实施例,可以理解,根据本公开的实施例,可以提高区块链客户端容错能力,确保每一次的请求都能够被成功消费,同时更为精准的提高服务的高并发能力。

图6示意性示出了根据本公开实施例的信息处理装置的框图,可以应用于区块链客户端。

如图6所示,该信息处理装置600可以包括:预存模块610、请求接收模块620、请求装配模块630和处理模块640。

预存模块610用于预存指定服务应用所属的区块链网络的区块链配置信息。

请求接收模块620用于接收来自指定服务应用的操作请求,该操作请求包括动态参数。

请求装配模块630用于基于该动态参数和上述区块链配置信息,生成请求组合,该请求组合包括指定节点集合信息。

处理模块640用于当监测到所述指定节点集合信息所表征的指定节点集合处于过载状态时,将所述请求组合提交至消息队列;当监测到所述指定节点集合从过载状态转为正常状态时,从所述消息队列获取所述请求组合并发送至所述指定节点集合进行处理。

需要说明的是,装置部分实施例中各模块/单元/子单元等的实施方式、解决的技术问题、实现的功能、以及达到的技术效果分别与方法部分实施例中各对应的步骤的实施方式、解决的技术问题、实现的功能、以及达到的技术效果相同或类似,在此不再赘述。

根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。

例如,预存模块610、请求接收模块620、请求装配模块630和处理模块640中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,预存模块610、请求接收模块620、请求装配模块630和处理模块640中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,预存模块610、请求接收模块620、请求装配模块630和处理模块640中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。

图7示意性示出了根据本公开实施例的适于实现上文描述的方法的计算机系统的方框图。图7示出的计算机系统仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。

如图7所示,根据本公开实施例的计算机系统700包括处理器701,其可以根据存储在只读存储器(rom)702中的程序或者从存储部分708加载到随机访问存储器(ram)703中的程序而执行各种适当的动作和处理。处理器701例如可以包括通用微处理器(例如cpu)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(asic)),等等。处理器701还可以包括用于缓存用途的板载存储器。处理器701可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。

在ram703中,存储有系统700操作所需的各种程序和数据。处理器701、rom702以及ram703通过总线704彼此相连。处理器701通过执行rom702和/或ram703中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除rom702和ram703以外的一个或多个存储器中。处理器701也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。

根据本公开的实施例,系统700还可以包括输入/输出(i/o)接口705,输入/输出(i/o)接口705也连接至总线704。系统700还可以包括连接至i/o接口705的以下部件中的一项或多项:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至i/o接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。

根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质911被安装。在该计算机程序被处理器701执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。

本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。

附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

本领域技术人员可以理解,尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1