【技术实现步骤摘要】
多区块链交互并发下的数据处理方法、装置及存储介质
本申请涉及区块链
,尤其是涉及一种多区块链交互并发下的数据处理方法、装置及存储介质。
技术介绍
目前,在区块链交易中,每次交易前都需要打开Channel中的节点地址端口进行socket连接进行交易;其中,Channel在每次使用时都要重新创建,并在使用完成后关闭。而在多区块链交互并发场景下,Channel的反复切换、创建和关闭,这就意味着同样的socket连接可能要多次打开/关闭,非常容易造成性能浪费(例如负载过大可能导致的内存溢出等),甚至可能造成程序崩溃而阻碍业务的流畅性。因此,多区块链的不均匀高并发场景使得Channel的复用变得非常困难。当然,虽然也可以将不同区块链区分开成不同的独立程序,各自单独处理一条区块链上的信息;但是,在多条链的场景时需要开发多个java程序,开发与维护的成本巨大,因而并不实用。因此,如何在多区块链交互并发场景下提高Channel的复用是目前亟需解决的技术问题。
技术实现思路
本申请实施例的目的在于提供一种多区块链交互并发下的数据处理方法、装置及存储介质,以提高多区块链交互并发场景 ...
【技术保护点】
1.一种多区块链交互并发下的数据处理方法,其特征在于,包括:在收到交易上链消息后从指定的线程池中取出一个空闲线程;在所述空闲线程内,解析所述交易上链消息获得交易信息,从指定的双向队列的队首中取出一条Channel,并确定该Channel是否为所述交易信息所属区块链对应的Channel;如果该Channel是所述交易信息所属区块链对应的Channel,则使用该Channel发送所述交易信息,并在使用后将该Channel放回至所述双向队列的队首;如果该Channel不是所述交易信息所属区块链对应的Channel,则将该Channel放至所述双向队列的队尾。
【技术特征摘要】
1.一种多区块链交互并发下的数据处理方法,其特征在于,包括:在收到交易上链消息后从指定的线程池中取出一个空闲线程;在所述空闲线程内,解析所述交易上链消息获得交易信息,从指定的双向队列的队首中取出一条Channel,并确定该Channel是否为所述交易信息所属区块链对应的Channel;如果该Channel是所述交易信息所属区块链对应的Channel,则使用该Channel发送所述交易信息,并在使用后将该Channel放回至所述双向队列的队首;如果该Channel不是所述交易信息所属区块链对应的Channel,则将该Channel放至所述双向队列的队尾。2.如权利要求1所述的多区块链交互并发下的数据处理方法,其特征在于,还包括:如果所述双向队列为空,则创建一条所述交易信息所属区块链对应的Channel,使用该Channel发送所述交易信息,并在使用后将该Channel放至所述双向队列的队首。3.如权利要求1所述的多区块链交互并发下的数据处理方法,其特征在于,还包括:当从所述双向队列的队首中取Channel的次数超过所述双向队列的队列长度,且未匹配到所述交易信息所属区块链对应的Channel时,关掉取出的Channel,创建一条所述交易信息所属区块链对应的Channel,使用该Channel发送所述交易信息,并在使用后将该Channel放至所述双向队列的队首。4.如权利要求1所述的多区块链交互并发下的数据处理方法,其特征在于,所述双向队列的队列长度等于所述线程池的线程池尺寸。5.一种多区块链交互并发下的数据处理装置,其特征在于,包括:取线程模块,用于在收到交易上链消息后从指定的线程池中取出一个空闲线程;Channel匹配模块,用于在所述空闲线程内,解析所述交易上链消息获得交易信息,从指定的双向队列的队首中取出一条Channel,并确定该Channel是否为所述交易信息所属区块链对应的Channel;线程第一逻辑模块,用于当该Channel是所述交易信息所属区块链对应的Channel时,使用该Channel发送所述交易信息,并在使用后将该Channel放回至所述双向队列的队首;线程第二逻辑模块,用于当该Channel不是所述交易信息所属区块链对应的Channel时,将该Channel放至所述双向队列的队尾。6.如权利要求5所述的多区块链交互并发下的数据处...
【专利技术属性】
技术研发人员:祝赫,
申请(专利权)人:中国银行股份有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。