一种区块链中多联盟链的负载均衡方法及装置与流程

文档序号:18160505发布日期:2019-07-13 09:18阅读:202来源:国知局
一种区块链中多联盟链的负载均衡方法及装置与流程
本发明实施例属于金融科技(fintech)领域,尤其涉及一种区块链(blockchain)中多联盟链的负载均衡方法及装置。
背景技术
:区块链是一种分布式共享账本数据库,联盟链是一种由互相信任的机构节点组成,节点之间建立连接、数据传输均采用安全、可靠的方式,比如认证,ip(internetprotocol,网络之间互连的协议)白名单等,外部节点无法加入的区块链体系。现有的业务请求量比较大,单链的性能和存储无法满足业务需求,因此需要引入多链技术,现有的区块链中多联盟链的负载均衡主要通过各接入机构的路由配置文件,来确定上链请求发送到哪一条联盟链,以实现多联盟链的负载均衡。但现有技术中,每个机构需要维护各自的路由配置文件,一旦需要对路由配置文件进行修改时,各机构间需要同步修改,该情况可能会出现路由规则不一致的情况,无法实现多联盟链间的负载均衡。技术实现要素:本发明实施例提供一种区块链中多联盟链的负载均衡方法及装置,通过多机构共同维护一个路由链的合约信息,避免出现由于各机构的路由规则不一致,导致无法实现多联盟链的负载均衡。本发明实施例提供的一种区块链中多联盟链的负载均衡方法,包括:获取业务请求和路由链的合约信息;所述路由链是由所述多联盟链中的机构的节点组成的区块链;所述业务请求包括待处理业务;根据所述业务请求和路由链的合约信息,确定所述业务请求对应的联盟链;根据所述业务请求对应的联盟链确定第一节点,并将所述待处理业务发送至所述第一节点;所述第一节点为所述多联盟链中用于处理所述待处理业务的节点。上述技术方案中,获取业务请求和路由链的合约信息,其中,路由链是由多联盟链中的机构的节点组成的区块链,路由链的合约信息是由多机构共同维护的,也就避免出现各机构路由配置文件不一致的问题,进一步根据业务请求和路由链的合约信息,即可以确定出业务请求对应的联盟链,并在确定出第一节点后,将待处理业务发送至第一节点,该方式确定出的业务请求对应的联盟链以及第一节点可有效达到多联盟链的负载均衡,即通过多机构共同维护一个路由链的合约信息,避免出现由于各机构的路由规则不一致,导致无法实现多联盟链的负载均衡。可选的,所述路由链的合约信息包括各机构的路由规则;所述业务请求包括机构标识、业务标识和序列号;所述根据所述业务请求和路由链的合约信息,确定所述业务请求对应的联盟链,包括:根据所述机构标识、所述各机构的路由规则,确定所述业务请求所属机构的路由规则;根据所述业务标识和序列号,查询所述业务请求所属机构的路由规则,确定出所述业务请求对应的联盟链。上述技术方案中,路由链的合约信息包括各机构的路由规则,业务请求包括机构标识、业务标识和序列号,根据各机构的路由规则、业务请求的机构标识、业务标识和序列号,即可以确定出业务请求对应的联盟链。路由链的合约信息中包括各机构的路由规则,也就是各机构共同维护一个路由配置文件,该路由配置文件中包括各机构的路由规则,避免出现各机构维护各自的路由配置文件,导致各机构路由配置文件不一致,影响多链间的负载均衡的问题。可选的,所述路由链的合约信息包括各机构的节点、各联盟链的节点;所述业务请求包括机构标识;所述根据所述业务请求对应的联盟链确定第一节点,包括:根据所述业务请求对应的联盟链、所述各联盟链的节点,确定所述业务请求对应的联盟链的节点的第一集合;根据所述机构标识、所述各机构的节点,确定所述业务请求所属机构的节点的第二集合;根据属于所述第一集合且属于所述第二集合的节点,确定第一节点。上述技术方案中,路由链的合约信息包括各机构的节点、各联盟链的节点,业务请求包括机构标识,可以根据业务请求对应的联盟链、各联盟链的节点,确定出业务请求对应的联盟链的所有节点的集合,即第一集合,进一步根据机构标识、各机构的节点,确定业务请求所属机构的节点,即第二集合,根据同属于第一集合和第二集合的节点确定第一节点,也就是用于处理待处理业务的节点。可选的,所述获取路由链的合约信息,包括:发送合约信息获取请求至所述路由链的节点;接收所述路由链的节点反馈的所述路由链的合约信息。上述技术方案中,多个机构共同维护一个路由链的合约信息,该路由链的合约信息为多联盟链中的机构的节点组成的区块链的合约信息,在需要获取该路由链的合约信息时,可以向路由链的节点发送合约信息获取请求,并接收路由链的反馈,从而获取到该路由链的合约信息。可选的,还包括:获取路由规则的修改信息;将所述路由规则的修改信息发送至所述路由链的节点,以使所述路由链的节点根据所述路由规则的修改信息对所述路由链的合约信息进行修改。上述技术方案中,当需要修改机构的路由规则时,可以获取该路由规则的修改信息,并将该路由规则的修改信息发送至路由链的节点,从而修改路由链的合约信息。在修改生效后,各机构可以直接从路由链中获取该路由链的合约信息,即可以获取到修改生效后的机构的路由规则,避免出现由于各机构的路由规则修改不同步,导致无法实现多联盟链的负载均衡。相应的,本发明实施例还提供了一种区块链中多联盟链的负载均衡装置,包括:收发单元,用于获取业务请求和路由链的合约信息;所述路由链是由所述多联盟链中的机构的节点组成的区块链;所述业务请求包括待处理业务;处理单元,用于根据所述业务请求和路由链的合约信息,确定所述业务请求对应的联盟链;根据所述业务请求对应的联盟链确定第一节点,并将所述待处理业务发送至所述第一节点;所述第一节点为所述多联盟链中用于处理所述待处理业务的节点。可选的,所述路由链的合约信息包括各机构的路由规则;所述业务请求包括机构标识、业务标识和序列号;所述处理单元具体用于:根据所述机构标识、所述各机构的路由规则,确定所述业务请求所属机构的路由规则;根据所述业务标识和序列号,查询所述业务请求所属机构的路由规则,确定出所述业务请求对应的联盟链。可选的,所述路由链的合约信息包括各机构的节点、各联盟链的节点;所述业务请求包括机构标识;所述处理单元具体用于:根据所述业务请求对应的联盟链、所述各联盟链的节点,确定所述业务请求对应的联盟链的节点的第一集合;根据所述机构标识、所述各机构的节点,确定所述业务请求所属机构的节点的第二集合;根据属于所述第一集合且属于所述第二集合的节点,确定第一节点。可选的,所述收发单元具体用于:发送合约信息获取请求至所述路由链的节点;接收所述路由链的节点反馈的所述路由链的合约信息。可选的,所述收发单元还用于:获取路由规则的修改信息;将所述路由规则的修改信息发送至所述路由链的节点,以使所述路由链的节点根据所述路由规则的修改信息对所述路由链的合约信息进行修改。相应的,本发明实施例还提供了一种计算设备,包括:存储器,用于存储程序指令;处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述区块链中多联盟链的负载均衡方法。相应的,本发明实施例还提供了一种计算机可读非易失性存储介质,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行上述区块链中多联盟链的负载均衡方法。附图说明为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例提供的一种系统架构的示意图;图2为本发明实施例提供的一种多联盟链的负载均衡方法的流程示意图;图3为本发明实施例提供的一种多联盟链的负载均衡方法的流程示意图;图4为本发明实施例提供的一种多联盟链的负载均衡方法的流程示意图;图5为本发明实施例提供的一种多联盟链的负载均衡装置的结构示意图。具体实施方式为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。本发明实施例提供区块链中多联盟链的负载均衡方法所适用的系统架构,该系统架构可以包括多个机构,多个机构中各个机构的节点组成联盟链以及路由链,示例性的,可以如图1所示,该系统包括机构a、机构b、机构c,其中,机构a包括节点a1、节点a2、节点a3、节点a4,机构b包括节点b1、节点b2、节点b3、节点b4,机构c包括节点c1、节点c2、节点c3。节点a1、节点a4、节点b1、节点c1组成联盟链1,节点a2、节点b2、节点b4、节点c2组成联盟链2,节点a3、节点b3、节点c3组成路由链。本发明实施例中,路由链是由多联盟链中的机构的节点组成的区块链,路由链的合约信息包括一个路由配置文件,即各机构共同维护一个路由配置文件,该路由配置文件中包括各机构的路由规则,如图1,机构a、机构b、机构c确定路由链的合约信息,共同维护一个路由配置文件,该路由配置文件包括机构a的路由规则、机构b的路由规则、机构c的路由规则。若某个机构接收到业务请求之后,会根据路由链的合约信息确定出应该将该业务请求发送至哪一个联盟链中,从而实现多联盟链的负载均衡。基于上述描述,图2示例性的示出了本发明实施例提供的一种区块链中多联盟链的负载均衡方法的流程,该流程可以由区块链中多联盟链的负载均衡装置执行。如图2所示,该流程具体包括:步骤201,获取业务请求和路由链的合约信息。本发明实施例中,业务请求可以包括以下参数中的任一项或组合:待处理业务、机构标识、业务标识和序列号。其中,机构标识即业务请求中待处理业务对应机构的标识,业务标识即该业务请求中待处理业务的业务标识,序列号为该待处理业务的序列号。结合图1,若机构a获取到一个业务请求,该业务请求中待处理业务对应的机构为机构a,则机构标识为“orga”,该业务请求中的待处理业务的业务标识为“appida1”、序列号为“seqno50”,则可以理解为,该业务请求中包括“orga,appida1、seqno50”。本发明实施例中,路由链的合约信息可以包括以下参数中的任一项或组合:各机构的路由规则、各机构的节点、各联盟链的节点。各机构的路由规则包括各机构的业务标识、序列号的范围和联盟链标识,各机构的节点即各机构包含的节点,各联盟链的节点即各联盟链包含的节点。示例性的,如图1所示的架构中,各机构的路由规则可以参照表1所示,各机构的节点可以参照表2所示,各联盟链的节点可以参照表3所示。表1表2机构机构标识机构的节点机构aorga节点a1、节点a2、节点a3、节点a4机构borgb节点b1、节点b2、节点b3、节点b4机构corgb节点c1、节点c2、节点c3表3联盟链联盟链标识联盟链的节点联盟链1chain1节点a1、节点a4、节点b1、节点c1联盟链2chain2节点a2、节点b2、节点b4、节点c2本发明实施例中,机构可以从路由链获取路由链的合约信息,机构发送合约信息获取请求至路由链的节点,路由链的节点接收到该合约信息获取请求后,将路由链的合约信息反馈至机构,机构接收该路由链的节点反馈的路由链的合约信息。步骤202,根据所述业务请求和路由链的合约信息,确定所述业务请求对应的联盟链。本发明实施例中,路由链的合约信息可以包括各机构的路由规则,业务请求包括机构标识、业务标识和序列号,具体的,先根据机构标识、各机构的路由规则,确定业务请求所属机构的路由规则,再根据业务标识和序列号,查询业务请求所属机构的路由规则,确定出业务请求对应的联盟链。本发明实施例中,机构可以获取到待处理业务是本机构的业务请求,也可以获取到待处理业务不是本机构的业务请求,即机构a可以获取到机构标识为“orga”的业务请求,也可以获取到机构标识为“orgb”的业务请求。示例性的,若机构a获取到的业务请求包括“orga,appida1、seqno50”,则可以根据“orga,appida1、seqno50”和表1确定出联盟链标识为chain1,即该业务请求对应联盟链1。或者,若机构a获取到的业务请求包括“orgb,appidb1、seqno50”,则可以根据“orgb,appidb1、seqno50”和表1确定出联盟链标识为chain2,即该业务请求对应联盟链2。步骤203,根据所述业务请求对应的联盟链确定第一节点,并将所述待处理业务发送至所述第一节点。本发明实施例中,第一节点为多联盟链中用于处理待处理业务的节点。也就是说,在步骤202中确定出业务请求对应的联盟链后,需要从该业务请求对应的联盟链中确定出处理该待处理业务的节点,该节点即为第一节点。可选的,路由链的合约信息包括各机构的节点、各联盟链的节点,业务请求包括机构标识,先根据业务请求对应的联盟链、各联盟链的节点,确定业务请求对应的联盟链的节点的第一集合;再根据机构标识、各机构的节点,确定业务请求所属机构的节点的第二集合;最后根据属于第一集合且属于所述第二集合的节点,确定第一节点。解释为,在确定出业务请求对应的联盟链后,可以根据表3确定出业务请求对应的联盟链的节点,根据表2确定出业务请求对应的机构的节点。例如,根据“orga,appida1、seqno50”和表1确定出业务请求对应联盟链1后,确定联盟链1的节点组成的第一集合为“节点a1、节点a4、节点b1、节点c1”,确定机构a的节点组成的第二集合为“节点a1、节点a2、节点a3、节点a4”,同属于第一集合、第二集合的节点为“节点a1、节点a4”,根据“节点a1、节点a4”确定出第一节点,此处可知,属于第一集合且属于第二集合的节点可以为一个或者大于一个,当属于第一集合且属于第二集合的节点为一个,则将该唯一一个节点确定为第一节点,当属于第一集合且属于第二集合的节点为大于一个时,可以从该大于一个的节点中随机确定出第一节点,也可以根据预先设定的规则确定,在此不做限定。此外,节点可以包括节点所对应的ip地址和监听端口,在确定出第一节点后,可以根据第一节点的ip地址和监听端口,将待处理业务发送至第一节点,以使得第一节点对该待处理业务进行处理。本发明实施例中,还可以对路由链的合约信息进行修改,进一步的,可以对各机构的路由规则进行修改,具体的,获取路由规则的修改信息,将路由规则的修改信息发送至路由链的节点,以使路由链的节点根据路由规则的修改信息对路由链的合约信息进行修改。例如,需要对机构b的路由规则进行修改,将appidb1的序列号范围为“100~200”所对应的联盟链修改为联盟链1,则可以直接在机构b中修改,并将修改信息发送至路由链的节点,如图1,可以发送至节点b3,节点b3根据该修改信息对路由链的合约信息进行修改。为了更好的解释本发明实施例,下面将在具体的实施场景下描述该多联盟链的负载均衡流程,如图3所示,具体如下:步骤301,机构获取业务请求;步骤302,机构发送合约信息获取请求至路由链节点;步骤303,路由链节点发送路由链的合约信息至机构;步骤304,机构根据业务请求和路由链的合约信息,确定业务请求对应的联盟链;步骤305,机构根据业务请求对应的联盟链确定第一节点;步骤306,机构发送待处理业务至第一节点;步骤307,第一节点处理待处理业务。由于本实施例的具体实现方式已在其他实施例中描述,在此不作赘述。本发明提供的另一个实施例可以如图4所示,其中,该系统中还可以包括proxy(代理服务器),该proxy可以位于机构中,也可以独立于机构,proxy用于代理机构完成上述区块链中多联盟链的负载均衡方法,具体的,机构获取到业务请求后,将业务请求发送至proxy,proxy读取路由链中的合约信息,根据合约信息从多联盟链中确定出与该业务请求相对应的联盟链,该业务请求相对应的联盟链处理该业务请求中的待处理业务,并将业务成功的结果反馈至proxy,proxy向机构响应执行结果。上述技术方案中,获取业务请求和路由链的合约信息,其中,路由链是由多联盟链中的机构的节点组成的区块链,路由链的合约信息是由多机构共同维护的,也就避免出现各机构路由配置文件不一致的问题,进一步根据业务请求和路由链的合约信息,即可以确定出业务请求对应的联盟链,并在确定出第一节点后,将待处理业务发送至第一节点,该方式确定出的业务请求对应的联盟链以及第一节点可有效达到多联盟链的负载均衡,即通过多机构共同维护一个路由链的合约信息,避免出现由于各机构的路由规则不一致,导致无法实现多联盟链的负载均衡。基于同一发明构思,图5示例性的示出了本发明实施例提供的一种区块链中多联盟链的负载均衡装置的结构,该装置可以执行区块链中多联盟链的负载均衡方法的流程。该装置,包括:收发单元501,用于获取业务请求和路由链的合约信息;所述路由链是由所述多联盟链中的机构的节点组成的区块链;所述业务请求包括待处理业务;处理单元502,用于根据所述业务请求和路由链的合约信息,确定所述业务请求对应的联盟链;根据所述业务请求对应的联盟链确定第一节点,并将所述待处理业务发送至所述第一节点;所述第一节点为所述多联盟链中用于处理所述待处理业务的节点。可选的,所述路由链的合约信息包括各机构的路由规则;所述业务请求包括机构标识、业务标识和序列号;所述处理单元502具体用于:根据所述机构标识、所述各机构的路由规则,确定所述业务请求所属机构的路由规则;根据所述业务标识和序列号,查询所述业务请求所属机构的路由规则,确定出所述业务请求对应的联盟链。可选的,所述路由链的合约信息包括各机构的节点、各联盟链的节点;所述业务请求包括机构标识;所述处理单元502具体用于:根据所述业务请求对应的联盟链、所述各联盟链的节点,确定所述业务请求对应的联盟链的节点的第一集合;根据所述机构标识、所述各机构的节点,确定所述业务请求所属机构的节点的第二集合;根据属于所述第一集合且属于所述第二集合的节点,确定第一节点。可选的,所述收发单元501具体用于:发送合约信息获取请求至所述路由链的节点;接收所述路由链的节点反馈的所述路由链的合约信息。可选的,所述收发单元501还用于:获取路由规则的修改信息;将所述路由规则的修改信息发送至所述路由链的节点,以使所述路由链的节点根据所述路由规则的修改信息对所述路由链的合约信息进行修改。基于同一发明构思,本发明实施例还提供了一种计算设备,包括:存储器,用于存储程序指令;处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述区块链中多联盟链的负载均衡方法。基于同一发明构思,本发明实施例还提供了一种计算机可读非易失性存储介质,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行上述区块链中多联盟链的负载均衡方法。本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1