[发明专利]多区块链交互并发下的数据处理方法、装置及存储介质有效
申请号: | 201811086564.6 | 申请日: | 2018-09-18 |
公开(公告)号: | CN109376020B | 公开(公告)日: | 2021-02-12 |
发明(设计)人: | 祝赫 | 申请(专利权)人: | 中国银行股份有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54;G06Q40/04 |
代理公司: | 北京三友知识产权代理有限公司 11127 | 代理人: | 陈刚;刘飞 |
地址: | 100818 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 区块 交互 并发 数据处理 方法 装置 存储 介质 | ||
本申请提供了一种多区块链交互并发下的数据处理方法、装置及存储介质,该方法包括:在收到交易上链消息后从指定的线程池中取出一个空闲线程;在空闲线程内,解析交易上链消息获得交易信息,从指定的双向队列的队首中取出一条Channel,并确定该Channel是否为交易信息所属区块链对应的Channel;如果是,则使用该Channel发送交易信息,并在使用后将该Channel放回至双向队列的队首;如果不是,则将该Channel放至双向队列的队尾。本申请可以提高多区块链交互并发场景下Channel的复用性。
技术领域
本申请涉及区块链技术领域,尤其是涉及一种多区块链交互并发下的数据处理方法、装置及存储介质。
背景技术
目前,在区块链交易中,每次交易前都需要打开Channel中的节点地址端口进行socket连接进行交易;其中,Channel在每次使用时都要重新创建,并在使用完成后关闭。而在多区块链交互并发场景下,Channel的反复切换、创建和关闭,这就意味着同样的socket连接可能要多次打开/关闭,非常容易造成性能浪费(例如负载过大可能导致的内存溢出等),甚至可能造成程序崩溃而阻碍业务的流畅性。因此,多区块链的不均匀高并发场景使得Channel的复用变得非常困难。当然,虽然也可以将不同区块链区分开成不同的独立程序,各自单独处理一条区块链上的信息;但是,在多条链的场景时需要开发多个java程序,开发与维护的成本巨大,因而并不实用。
因此,如何在多区块链交互并发场景下提高Channel的复用是目前亟需解决的技术问题。
发明内容
本申请实施例的目的在于提供一种多区块链交互并发下的数据处理方法、装置及存储介质,以提高多区块链交互并发场景下Channel的复用性。
为达到上述目的,一方面,本申请实施例提供了一种多区块链交互并发下的数据处理方法,包括:
在收到交易上链消息后从指定的线程池中取出一个空闲线程;
在所述空闲线程内,解析所述交易上链消息获得交易信息,从指定的双向队列的队首中取出一条Channel,并确定该Channel是否为所述交易信息所属区块链对应的Channel;
如果该Channel是所述交易信息所属区块链对应的Channel,则使用该Channel发送所述交易信息,并在使用后将该Channel放回至所述双向队列的队首;
如果该Channel不是所述交易信息所属区块链对应的Channel,则将该Channel放至所述双向队列的队尾。
较佳的,所述的多区块链交互并发下的数据处理方法,还包括:
如果所述双向队列为空,则创建一条所述交易信息所属区块链对应的Channel,使用该Channel发送所述交易信息,并在使用后将该Channel放至所述双向队列的队首。
较佳的,所述的多区块链交互并发下的数据处理方法,还包括:
当从所述双向队列的队首中取Channel的次数超过所述双向队列的队列长度,且未匹配到所述交易信息所属区块链对应的Channel时,关掉取出的Channel,创建一条所述交易信息所属区块链对应的Channel,使用该Channel发送所述交易信息,并在使用后将该Channel放至所述双向队列的队首。
较佳的,所述的多区块链交互并发下的数据处理方法,所述双向队列的队列长度等于所述线程池的线程池尺寸。
另一方面,本申请实施例还提供了一种多区块链交互并发下的数据处理装置,包括:
取线程模块,用于在收到交易上链消息后从指定的线程池中取出一个空闲线程;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国银行股份有限公司,未经中国银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811086564.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:接口调用方法及终端设备
- 下一篇:接口调用的响应方法及服务器