CN113014666A - 一种区块链协议栈架构方法、系统、设备及存储介质 - Google Patents
一种区块链协议栈架构方法、系统、设备及存储介质 Download PDFInfo
- Publication number
- CN113014666A CN113014666A CN202110287197.1A CN202110287197A CN113014666A CN 113014666 A CN113014666 A CN 113014666A CN 202110287197 A CN202110287197 A CN 202110287197A CN 113014666 A CN113014666 A CN 113014666A
- Authority
- CN
- China
- Prior art keywords
- service
- micro
- data processing
- information
- network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Abstract
本申请提出一种区块链协议栈架构方法、系统、设备及存储介质,该方法包括:协议栈启动时,网络微服务、数据处理微服务及存储微服务均发送各自的实例信息给注册微服务;注册微服务将接收的实例信息存储在服务列表中,将服务列表发送给网络微服务和数据处理微服务;网络微服务接收用户发送的交易信息,根据服务列表将交易信息转发给数据处理微服务;数据处理微服务接收并处理交易信息,根据服务列表将交易信息及处理结果转发给存储微服务存储。本申请将区块链的协议栈中各功能开发成微服务架构中的服务组件。各服务组件间相互不影响,可有针对性地单独升级扩展处理压力大的服务组件,灵活调整提升协议栈性能,避免协议栈出现性能瓶颈。
Description
技术领域
本申请属于区块链技术领域,具体涉及一种区块链协议栈架构方法、系统、设备及存储介质。
背景技术
区块链是一种新型去中心化协议,能安全地存储数字货币交易或其他数据,具有信息不可伪造和篡改的优点。目前,现有技术中区块链的协议栈都是单体应用的,网络、数据处理、存储等功能都是在一个程序里运行,性能很容易达到上限。且单体应用的程序比较庞大,若想通过程序扩展来提升区块链协议栈的性能,难度很高。
发明内容
本申请提出一种区块链协议栈架构方法、系统、设备及存储介质,将区块链的协议栈中各功能开发成微服务架构中的服务组件。各服务组件间相互不影响,可有针对性地单独升级扩展处理压力大的服务组件,灵活调整提升协议栈性能,避免协议栈出现性能瓶颈。
本申请第一方面实施例提出了一种区块链协议栈架构方法,区块链的协议栈包括网络微服务、数据处理微服务、存储微服务及注册微服务,所述方法包括:
所述协议栈启动时,所述网络微服务、所述数据处理微服务及所述存储微服务均发送各自的实例信息给所述注册微服务;
所述注册微服务接收所述网络微服务、所述数据处理微服务及所述存储微服务发送的实例信息,将接收的所述实例信息存储在服务列表中;
所述注册微服务将所述服务列表发送给所述网络微服务和所述数据处理微服务;
所述网络微服务接收用户发送的交易信息,根据所述服务列表将所述交易信息转发给所述数据处理微服务;
所述数据处理微服务接收所述交易信息,对所述交易信息进行处理,根据所述服务列表将所述交易信息及处理结果转发给所述存储微服务进行存储。
在本申请的一些实施例中,所述网络微服务接收用户发送的交易信息,根据所述服务列表将所述交易信息转发给所述数据处理微服务,包括:
所述网络微服务从本地缓存中存储的所述服务列表中选择一个数据处理微服务的实例信息;
所述网络微服务根据选择的所述实例信息,将所述交易信息转发给所述实例信息对应的数据处理微服务。
在本申请的一些实施例中,所述网络微服务从本地缓存中存储的所述服务列表中选择一个数据处理微服务的实例信息,包括:
所述网络微服务根据数据处理微服务对应的微服务标识,查询本地缓存的所述服务列表中包含的数据处理微服务的实例信息是否为多个;
若查询出服务列表中仅包括一个数据处理微服务的实例信息,则选择所述服务列表包括的所述实例信息;
若查询出本地缓存的服务列表中包括多个数据处理微服务的实例信息,则按照预设负载均衡策略,从所述多个数据处理微服务的实例信息中选择一个实例信息。
在本申请的一些实施例中,所述按照预设负载均衡策略,从所述多个数据处理微服务的实例信息中选择一个实例信息,包括:
所述网络微服务按照预设负载均衡策略规定的每个数据处理微服务对应的数据发送次序,从所述多个数据处理微服务的实例信息中选择一个实例信息;或者,
所述网络微服务获取预设负载均衡策略中当前记录的响应时间最短的数据处理微服务的实例信息,所述响应时间为数据处理微服务在预设时间段内处理所有任务所需时长的平均值。
在本申请的一些实施例中,所述方法还包括:
每隔所述预设时间段所述协议栈系统中的每个数据处理微服务都将自己的响应时间发送给每个网络微服务;
每个网络微服务接收每个数据处理微服务发送的响应时间,确定出响应时间最短的数据处理微服务,将所述响应时间最短的数据处理微服务的实例信息记录在预设负载均衡策略中。
在本申请的一些实施例中,所述网络微服务根据选择的所述实例信息,将所述交易信息转发给所述实例信息对应的数据处理微服务,包括:
所述网络微服务从所述实例信息中提取所述数据处理微服务的IP地址;
所述网络微服务根据所述IP地址将所述交易信息转发给所述数据处理微服务。
在本申请的一些实施例中,所述数据处理微服务接收所述交易信息,对所述交易信息进行处理,根据所述服务列表将所述交易信息及处理结果转发给所述存储微服务进行存储,包括:
所述数据处理微服务根据存储微服务对应的微服务标识,查询本地缓存的所述服务列表中包含的存储微服务的实例信息是否为多个;
若查询出服务列表中仅包括一个存储微服务的实例信息,则从所述实例信息中提取出所述存储微服务的IP地址,根据所述IP地址将所述交易信息及处理结果转发给所述存储微服务;
若查询出本地缓存的服务列表中包括多个存储微服务的实例信息,则按照预设存储均衡策略,从所述多个存储微服务的实例信息中选择一个实例信息,从选择的所述实例信息中提取IP地址,根据提取的所述IP地址将所述交易信息及处理结果转发给所述存储微服务。
本申请第二方面的实施例提供了一种区块链协议栈架构系统,包括网络微服务模块、数据处理微服务模块、存储微服务模块及注册微服务模块;
所述网络微服务模块,用于在所述协议栈启动时,发送自己的实例信息给所述注册微服务模块;接收所述注册微服务模块发送的服务列表;接收用户发送的交易信息,根据所述服务列表将所述交易信息转发给所述数据处理微服务模块;
所述数据处理微服务模块,用于所述协议栈启动时,发送自己的实例信息给所述注册微服务模块;接收所述注册微服务模块发送的服务列表;接收所述交易信息,对所述交易信息进行处理,根据所述服务列表将所述交易信息及处理结果转发给所述存储微服务模块进行存储;
所述注册微服务模块,用于接收所述网络微服务模块、所述数据处理微服务模块及所述存储微服务模块发送的实例信息,将接收的所述实例信息存储在服务列表中;将所述服务列表发送给所述网络微服务模块和所述数据处理微服务模块;
所述存储微服务模块,用于接收并存储所述数据处理微服务模块发送的所述交易信息及处理结果。
本申请第三方面的实施例提供了一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行上述第一方面所述的方法的步骤。
本申请第四方面的实施例提供了一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述第一方面所述的方法的步骤。
本申请实施例将区块链的协议栈按功能进行划分,并将各个功能开发成微服务架构中相互独立的服务组件。如此各服务组件之间相互不影响,针对处理压力大的服务组件,可以有针对性地单独对压力大的服务组件进行升级扩展,能够灵活地调整提升协议栈的性能,避免协议栈出现性能瓶颈。而且协议栈的微服务架构中的网络微服务、数据处理微服务和存储微服务均在注册微服务中注册自己的实例信息,并可以依据注册微服务中的服务列表实现网络分发以及数据处理的负载均衡。
本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变的明显,或通过本申请的实践了解到。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。
在附图中:
图1示出了本申请一实施例所提供的一种区块链协议栈架构方法的流程图;
图2示出了本申请一实施例所提供的一种区块链协议栈架构系统的结构示意图;
图3示出了本申请一实施例所提供的一种计算机设备的结构示意图;
图4示出了本申请一实施例所提供的一种存储介质的示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。
本申请的一些实施例提供了一种区块链协议栈架构方法,该方法将微服务技术应用于区块链的协议栈。将区块链的协议栈按功能划分为网络、数据处理、存储和注册四种功能,将这四种功能开发为微服务架构中的网络微服务、数据处理微服务、存储微服务和注册微服务。网络微服务、数据处理微服务和存储微服务均在注册微服务中注册自己的实例信息,网络微服务和数据处理微服务还从注册微服务拉取服务列表,并依据该服务列表实现网络分发以及数据处理的负载均衡。
如此协议栈中各微服务组件之间相互不影响,针对处理压力大的微服务组件,可以有针对性地单独对压力大的微服务组件进行升级扩展,能够灵活地调整提升协议栈的性能,避免协议栈出现性能瓶颈。
参见图1,该方法具体包括以下步骤:
步骤101:区块链的协议栈启动时,网络微服务、数据处理微服务及存储微服务均发送各自的实例信息给注册微服务。
其中,区块链的协议栈包括网络微服务、数据处理微服务、存储微服务及注册微服务。
本申请实施例将区块链的协议栈按照功能划分为网络、数据处理、存储和注册四种功能。然后将这四种功能开发为微服务架构中的网络微服务、数据处理微服务、存储微服务和注册微服务,这些微服务是相互独立的微服务组件,这些微服务组件可以配置在相同的硬件设备上,也可以配置在不同的硬件设备上。
其中,网络微服务负责协议栈网络的收发,比如交易及区块的接收或转发,共识消息的接收或发生,用户的查询请求、执行请求等请求信息的接收或转发等。数据处理微服务负责打块共识的执行、交易的执行以及信息查询等数据处理操作,本申请的另一些实施例中还可以依据数据处理的具体处理功能细分为多个微服务,如可以设置仅负责执行打块共识的微服务,只负责信息查询的微服务,只负责执行交易的微服务等。存储微服务负责存储区块、状态信息、交易信息等。注册微服务用于收集网络微服务、数据处理微服务和存储微服务的实例信息,并将收集的实例信息存储在服务列表中,将该服务列表同步给网络微服务、数据处理微服务、存储微服务。
在本申请实施例中,区块链的协议栈中可以包括一个或多个网络微服务、一个或多个数据处理微服务以及一个或多个存储微服务。网络微服务、数据处理微服务以及存储微服务的数目可以根据区块链系统的性能需求进行设置。
将区块链的协议栈构建成微服务架构模式的协议栈之后,当区块链的协议栈启动时,网络微服务、数据处理微服务及存储微服务均发送各自的实例信息给注册微服务。实例信息中包括微服务标识、实例编号及IP地址。
例如,假设有两个网络微服务,网络微服务的微服务标识可以为net,两个网络微服务的实例编号分别为instance1和instance2,一个网络微服务的IP地址为192.168.0.10,另一个网络微服务的IP地址为192.168.0.11。则这两个网络微服务的实例信息可以分别为net-instance1-192.168.0.10,net-instance2-192.168.0.11。
又如,假设有两个数据处理微服务,数据处理微服务的微服务标识可以为compute,两个数据处理微服务的实例编号分别为instance1和instance2,一个数据处理微服务的IP地址为192.168.0.12,另一个数据处理微服务的IP地址为192.168.0.13。则这两个数据处理微服务的实例信息可以分别为compute-instance1-192.168.0.12,compute-instance2-192.168.0.13。
步骤102:注册微服务接收网络微服务、数据处理微服务及存储微服务发送的实例信息,将接收的实例信息存储在服务列表中。
注册微服务接收到网络微服务、数据处理微服务及存储微服务发送的实例信息后,将接收的实例信息存储在服务列表中。在服务列表中相同类型的微服务的实例信息可以连续排列,如表1所示的服务列表中先是网络微服务的实例信息、再是数据处理微服务的实例信息,最后是存储微服务的实例信息。
表1
步骤103:注册微服务将该服务列表发送给网络微服务和数据处理微服务。
注册微服务接收到区块链的协议栈中其他每个微服务发送的实例信息,并将接收的实例信息存储到服务列表之后,将该服务列表发送给每个网络微服务和每个数据处理微服务。每个网络微服务和每个数据处理微服务接收到该服务列表之后,将该服务列表存储在各自的缓存中。
步骤104:网络微服务接收用户发送的交易信息,根据该服务列表将该交易信息转发给数据处理微服务。
在用户使用本申请实施例的区块链系统来处理业务时,用户发送交易信息给该区块链。区块链的协议栈中的某个网络微服务接收到用户发送的该交易信息,从本地缓存中存储的服务列表中选择一个数据处理微服务的实例信息,根据选择的实例信息,将该交易信息转发给该实例信息对应的数据处理微服务。
具体地,网络微服务根据数据处理微服务对应的微服务标识(如compute),查询本地缓存的服务列表中包含的数据处理微服务的实例信息是否为多个,若查询出服务列表中仅包括一个数据处理微服务的实例信息,则从该实例信息中提取出该数据处理微服务的IP地址。根据该IP地址将该交易信息转发给该数据处理微服务。
若网络微服务查询出本地缓存的服务列表中包括多个数据处理微服务的实例信息,则按照预设负载均衡策略,从这多个数据处理微服务的实例信息中选择一个实例信息。从该实例信息中提取出该数据处理微服务的IP地址。根据该IP地址将该交易信息转发给该数据处理微服务。
预设负载均衡策略可以规定服务列表中的所有数据处理微服务的数据发送次序,网络微服务按照预设负载均衡策略规定的数据发送次序,轮流给每个数据处理微服务发送数据。例如,假设服务列表中包括compute-instance1-192.168.0.12,compute-instance2-192.168.0.13,compute-instance3-192.168.0.15共三个数据处理微服务的实例信息,预设负载均衡策略规定的数据发送次序为按照编号依次排列的顺序,即数据发送次序为instance1、instance2、instance3。则网络微服务接收到交易信息后,首先发给instance1对应的数据处理微服务,后续再接收到一个交易信息则发送给instance2对应的数据处理微服务,再接收到的交易信息则发送给instance3对应的数据处理微服务,后面再接收到交易信息则再发送给instance1对应的数据处理微服务,如此循环。
在本申请的另一些实施例中,预设负载均衡策略也可以不按照上述编号的排列顺序来进行负载均衡,而是在预设负载均衡策略中规定根据每个数据处理微服务的响应时间进行负载均衡,即每次都将数据发送给当前响应时间最短的数据处理微服务。具体地,每隔预设时间段区块链的协议栈系统中的每个数据处理微服务都需要将自己的响应时间发送给每个网络微服务,响应时间为数据处理微服务在该预设时间段内处理所有任务所需时长的平均值。数据处理微服务根据网络微服务对应的服务标识,从本地缓存的服务列表中获取每个网络微服务的实例信息,从每个网络微服务的实例信息中分别提取每个网络微服务的IP地址。然后分别根据每个网络微服务的IP地址,将自身的响应时间发送给每个网络微服务。上述预设时间段可以为20分钟、30分钟或1小时等,该预设时间段越短,负载均衡的准确性越高。
网络微服务接收到每个数据处理微服务发送的响应时间后,确定出响应时间最短的数据处理微服务,将该数据处理微服务的实例信息记录在预设负载均衡策略中。当网络微服务接收到交易信息后,获取预设负载均衡策略中当前记录的数据处理微服务的实例信息。从该实例信息中提取出该数据处理微服务的IP地址。根据该IP地址将该交易信息转发给该数据处理微服务。
网络微服务依据预设负载均衡策略及该服务列表实现了区块链的协议栈中多个数据处理微服务之间的负载均衡,避免个别数据处理微服务出现任务积压的情况,提高数据处理效率,减少用户等待时间。
步骤105:数据处理微服务接收该交易信息,对该交易信息进行处理,根据该服务列表将该交易信息及处理结果转发给存储微服务进行存储。
数据处理微服务接收到网络微服务发送的交易信息之后,对该交易信息进行处理,得到处理结果。之后需要存储该交易信息及其处理结果,则数据处理微服务从本地缓存中获取服务列表,根据存储微服务对应的微服务标识(如store),查询本地缓存的服务列表中包含的存储微服务的实例信息是否为多个,若查询出服务列表中仅包括一个存储微服务的实例信息,则从该实例信息中提取出该存储微服务的IP地址。根据该IP地址将该交易信息及处理结果转发给该存储微服务。
若网络微服务查询出本地缓存的服务列表中包括多个存储微服务的实例信息,则按照预设存储均衡策略,从这多个存储微服务的实例信息中选择一个实例信息。从该实例信息中提取出该存储微服务的IP地址。根据该IP地址将该交易信息及处理结果转发给该存储微服务。
预设存储均衡策略可以规定服务列表中的所有存储微服务的数据发送次序,数据处理微服务按照预设存储均衡策略规定的数据发送次序,轮流给每个存储微服务发送数据。例如,假设服务列表中包括store-instance1-192.168.0.14,store-instance2-192.168.0.16,store-instance3-192.168.0.17共三个存储微服务的实例信息,预设存储均衡策略规定的数据发送次序为按照编号依次排列的顺序,即数据发送次序为instance1、instance2、instance3。则数据处理微服务首先发送交易信息及其处理结果给instance1对应的存储微服务,后续再处理一个交易信息则发送给instance2对应的存储微服务,再次处理一个交易信息则发送给instance3对应的存储微服务,后面再处理交易信息则再发送给instance1对应的存储微服务,如此循环。
数据处理微服务依据该服务列表实现了区块链的协议栈中多个存储微服务之间的存储量的均衡,避免个别存储微服务出现存储量远大于其他存储微服务的情况,减少出现个别存储微服务的存储空间不足导致存储失败的情况。
在本申请实施例中,将区块链的协议栈设计为微服务架构模式,由于微服务架构中各网络微服务、数据处理微服务、存储微服务以及注册微服务之间彼此是解耦的,相互之间不会存在性能上的相互干扰。因此针对各种功能的微服务,在解决性能瓶颈问题时,可以针对存在性能问题的某功能的微服务所在的硬件进行有针对的改善。例如,若网络微服务存在数据分发瓶颈,则可以提高网络微服务所在硬件的带宽。若数据处理微服务存在运算瓶颈,则可以提高数据处理微服务所在硬件的中央处理器的算力。若存储微服务存在存储空间的瓶颈,则可以提高存储微服务所在硬件的硬盘的存储容量。
在本申请的另一些实施例中,也可以针对存在性能问题的某功能的微服务进行横向的实例扩展,即增加该功能的微服务的数目。例如,若网络微服务存在数据分发瓶颈,则增加网络微服务的数目。若数据处理微服务存在运算瓶颈,则增加数据处理微服务的数目。
本申请实施例将区块链的协议栈按功能进行划分,并将各个功能开发成微服务架构中相互独立的服务组件。如此各服务组件之间相互不影响,针对处理压力大的服务组件,可以有针对性地单独对压力大的服务组件进行升级扩展,能够灵活地调整提升协议栈的性能,避免协议栈出现性能瓶颈。而且协议栈的微服务架构中的网络微服务、数据处理微服务和存储微服务均在注册微服务中注册自己的实例信息,并可以依据注册微服务中的服务列表实现网络分发以及数据处理的负载均衡。
本申请实施例提供了一种区块链协议栈架构系统,该系统用于执行上述任一实施例所述的区块链协议栈架构方法,如图2所示,该系统包括:网络微服务模块201、数据处理微服务模块202、存储微服务模块203及注册微服务模块204;
网络微服务模块201,用于在协议栈启动时,发送自己的实例信息给注册微服务模块204;接收注册微服务模块204发送的服务列表;接收用户发送的交易信息,根据服务列表将交易信息转发给数据处理微服务模块202;
数据处理微服务模块202,用于协议栈启动时,发送自己的实例信息给注册微服务模块204;接收注册微服务模块204发送的服务列表;接收交易信息,对交易信息进行处理,根据服务列表将交易信息及处理结果转发给存储微服务模块203进行存储;
注册微服务模块204,用于接收网络微服务模块201、数据处理微服务模块202及存储微服务模块203发送的实例信息,将接收的实例信息存储在服务列表中;将服务列表发送给网络微服务模块201和数据处理微服务模块202;
存储微服务模块203,用于接收并存储数据处理微服务模块202发送的交易信息及处理结果。
网络微服务模块201,用于从本地缓存中存储的服务列表中选择一个数据处理微服务模块202的实例信息;根据选择的实例信息,将交易信息转发给实例信息对应的数据处理微服务模块202。
网络微服务模块201,用于根据数据处理微服务模块202对应的微服务模块标识,查询本地缓存的服务列表中包含的数据处理微服务模块202的实例信息是否为多个;若查询出服务列表中仅包括一个数据处理微服务模块202的实例信息,则选择服务列表包括的实例信息;若查询出本地缓存的服务列表中包括多个数据处理微服务模块202的实例信息,则按照预设负载均衡策略,从多个数据处理微服务模块202的实例信息中选择一个实例信息。
4网络微服务模块201,用于按照预设负载均衡策略规定的每个数据处理微服务模块202对应的数据发送次序,从多个数据处理微服务模块202的实例信息中选择一个实例信息;或者,用于获取预设负载均衡策略中当前记录的响应时间最短的数据处理微服务模块202的实例信息,响应时间为数据处理微服务模块202在预设时间段内处理所有任务所需时长的平均值。
每个数据处理微服务模块202,用于每隔预设时间段都将自己的响应时间发送给每个网络微服务模块201;
每个网络微服务模块201,用于接收每个数据处理微服务模块202发送的响应时间,确定出响应时间最短的数据处理微服务模块202,将响应时间最短的数据处理微服务模块202的实例信息记录在预设负载均衡策略中。
网络微服务模块201,用于从实例信息中提取数据处理微服务模块202的IP地址;根据IP地址将交易信息转发给数据处理微服务模块202。
数据处理微服务模块202,用于根据存储微服务模块203对应的微服务模块标识,查询本地缓存的服务列表中包含的存储微服务模块203的实例信息是否为多个;若查询出服务列表中仅包括一个存储微服务模块203的实例信息,则从实例信息中提取出存储微服务模块203的IP地址,根据IP地址将交易信息及处理结果转发给存储微服务模块203;若查询出本地缓存的服务列表中包括多个存储微服务模块203的实例信息,则按照预设存储均衡策略,从多个存储微服务模块203的实例信息中选择一个实例信息,从选择的实例信息中提取IP地址,根据提取的IP地址将交易信息及处理结果转发给存储微服务模块203。
本申请实施例将区块链的协议栈按功能进行划分,并将各个功能开发成微服务架构中相互独立的服务组件。如此各服务组件之间相互不影响,针对处理压力大的服务组件,可以有针对性地单独对压力大的服务组件进行升级扩展,能够灵活地调整提升协议栈的性能,避免协议栈出现性能瓶颈。而且协议栈的微服务架构中的网络微服务模块、数据处理微服务模块和存储微服务模块均在注册微服务模块中注册自己的实例信息,并可以依据注册微服务模块中的服务列表实现网络分发以及数据处理的负载均衡。
本申请实施例提供了一种计算机设备。如图3所示,该计算机设备包括通过系统总线连接的处理器、存储介质、存储器和网络接口。其中,该计算机设备的存储介质存储有操作系统、数据库和计算机可读指令,数据库中可存储有控件信息序列,该计算机可读指令被处理器执行时,可使得处理器实现一种区块链协议栈架构方法。该计算机设备的处理器用于提供计算和控制能力,支撑整个计算机设备的运行。该计算机设备的存储器中可存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行一种区块链协议栈架构方法。该计算机设备的网络接口用于与终端连接通信。本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
该计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:协议栈启动时,网络微服务、数据处理微服务及存储微服务均发送各自的实例信息给注册微服务;注册微服务接收网络微服务、数据处理微服务及存储微服务发送的实例信息,将接收的实例信息存储在服务列表中;注册微服务将服务列表发送给网络微服务和数据处理微服务;网络微服务接收用户发送的交易信息,根据服务列表将交易信息转发给数据处理微服务;数据处理微服务接收交易信息,对交易信息进行处理,根据服务列表将交易信息及处理结果转发给存储微服务进行存储。
处理器执行计算机程序时还可以实现以下步骤:网络微服务从本地缓存中存储的服务列表中选择一个数据处理微服务的实例信息;网络微服务根据选择的实例信息,将交易信息转发给实例信息对应的数据处理微服务。
处理器执行计算机程序时还可以实现以下步骤:网络微服务根据数据处理微服务对应的微服务标识,查询本地缓存的服务列表中包含的数据处理微服务的实例信息是否为多个;若查询出服务列表中仅包括一个数据处理微服务的实例信息,则选择服务列表包括的实例信息;若查询出本地缓存的服务列表中包括多个数据处理微服务的实例信息,则按照预设负载均衡策略,从多个数据处理微服务的实例信息中选择一个实例信息。
处理器执行计算机程序时还可以实现以下步骤:网络微服务按照预设负载均衡策略规定的每个数据处理微服务对应的数据发送次序,从多个数据处理微服务的实例信息中选择一个实例信息;或者,网络微服务获取预设负载均衡策略中当前记录的响应时间最短的数据处理微服务的实例信息,响应时间为数据处理微服务在预设时间段内处理所有任务所需时长的平均值。
处理器执行计算机程序时还可以实现以下步骤:每隔预设时间段协议栈中的每个数据处理微服务都将自己的响应时间发送给每个网络微服务;每个网络微服务接收每个数据处理微服务发送的响应时间,确定出响应时间最短的数据处理微服务,将响应时间最短的数据处理微服务的实例信息记录在预设负载均衡策略中。
处理器执行计算机程序时还可以实现以下步骤:网络微服务从实例信息中提取数据处理微服务的IP地址;网络微服务根据IP地址将交易信息转发给数据处理微服务。
处理器执行计算机程序时还可以实现以下步骤:数据处理微服务根据存储微服务对应的微服务标识,查询本地缓存的服务列表中包含的存储微服务的实例信息是否为多个;若查询出服务列表中仅包括一个存储微服务的实例信息,则从实例信息中提取出存储微服务的IP地址,根据IP地址将交易信息及处理结果转发给存储微服务;若查询出本地缓存的服务列表中包括多个存储微服务的实例信息,则按照预设存储均衡策略,从多个存储微服务的实例信息中选择一个实例信息,从选择的实例信息中提取IP地址,根据提取的IP地址将交易信息及处理结果转发给存储微服务。
本申请实施例还提出了一种存储有计算机可读指令的存储介质,如图4所示,该计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行以下步骤:协议栈启动时,网络微服务、数据处理微服务及存储微服务均发送各自的实例信息给注册微服务;注册微服务接收网络微服务、数据处理微服务及存储微服务发送的实例信息,将接收的实例信息存储在服务列表中;注册微服务将服务列表发送给网络微服务和数据处理微服务;网络微服务接收用户发送的交易信息,根据服务列表将交易信息转发给数据处理微服务;数据处理微服务接收交易信息,对交易信息进行处理,根据服务列表将交易信息及处理结果转发给存储微服务进行存储。
处理器还可以执行以下步骤:网络微服务从本地缓存中存储的服务列表中选择一个数据处理微服务的实例信息;网络微服务根据选择的实例信息,将交易信息转发给实例信息对应的数据处理微服务。
处理器还可以执行以下步骤:网络微服务根据数据处理微服务对应的微服务标识,查询本地缓存的服务列表中包含的数据处理微服务的实例信息是否为多个;若查询出服务列表中仅包括一个数据处理微服务的实例信息,则选择服务列表包括的实例信息;若查询出本地缓存的服务列表中包括多个数据处理微服务的实例信息,则按照预设负载均衡策略,从多个数据处理微服务的实例信息中选择一个实例信息。
处理器还可以执行以下步骤:网络微服务按照预设负载均衡策略规定的每个数据处理微服务对应的数据发送次序,从多个数据处理微服务的实例信息中选择一个实例信息;或者,网络微服务获取预设负载均衡策略中当前记录的响应时间最短的数据处理微服务的实例信息,响应时间为数据处理微服务在预设时间段内处理所有任务所需时长的平均值。
处理器还可以执行以下步骤:每隔预设时间段协议栈中的每个数据处理微服务都将自己的响应时间发送给每个网络微服务;每个网络微服务接收每个数据处理微服务发送的响应时间,确定出响应时间最短的数据处理微服务,将响应时间最短的数据处理微服务的实例信息记录在预设负载均衡策略中。
处理器还可以执行以下步骤:网络微服务从实例信息中提取数据处理微服务的IP地址;网络微服务根据IP地址将交易信息转发给数据处理微服务。
处理器还可以执行以下步骤:数据处理微服务根据存储微服务对应的微服务标识,查询本地缓存的服务列表中包含的存储微服务的实例信息是否为多个;若查询出服务列表中仅包括一个存储微服务的实例信息,则从实例信息中提取出存储微服务的IP地址,根据IP地址将交易信息及处理结果转发给存储微服务;若查询出本地缓存的服务列表中包括多个存储微服务的实例信息,则按照预设存储均衡策略,从多个存储微服务的实例信息中选择一个实例信息,从选择的实例信息中提取IP地址,根据提取的IP地址将交易信息及处理结果转发给存储微服务。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等,或随机存储记忆体(RandomAccess Memory,RAM)等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种区块链协议栈架构方法,其特征在于,所述区块链的协议栈包括网络微服务、数据处理微服务、存储微服务及注册微服务,所述方法包括:
所述协议栈启动时,所述网络微服务、所述数据处理微服务及所述存储微服务均发送各自的实例信息给所述注册微服务;
所述注册微服务接收所述网络微服务、所述数据处理微服务及所述存储微服务发送的实例信息,将接收的所述实例信息存储在服务列表中;
所述注册微服务将所述服务列表发送给所述网络微服务和所述数据处理微服务;
所述网络微服务接收用户发送的交易信息,根据所述服务列表将所述交易信息转发给所述数据处理微服务;
所述数据处理微服务接收所述交易信息,对所述交易信息进行处理,根据所述服务列表将所述交易信息及处理结果转发给所述存储微服务进行存储。
2.根据权利要求1所述的方法,其特征在于,所述网络微服务接收用户发送的交易信息,根据所述服务列表将所述交易信息转发给所述数据处理微服务,包括:
所述网络微服务从本地缓存中存储的所述服务列表中选择一个数据处理微服务的实例信息;
所述网络微服务根据选择的所述实例信息,将所述交易信息转发给所述实例信息对应的数据处理微服务。
3.根据权利要求2所述的方法,其特征在于,所述网络微服务从本地缓存中存储的所述服务列表中选择一个数据处理微服务的实例信息,包括:
所述网络微服务根据数据处理微服务对应的微服务标识,查询本地缓存的所述服务列表中包含的数据处理微服务的实例信息是否为多个;
若查询出服务列表中仅包括一个数据处理微服务的实例信息,则选择所述服务列表包括的所述实例信息;
若查询出本地缓存的服务列表中包括多个数据处理微服务的实例信息,则按照预设负载均衡策略,从所述多个数据处理微服务的实例信息中选择一个实例信息。
4.根据权利要求3所述的方法,其特征在于,所述按照预设负载均衡策略,从所述多个数据处理微服务的实例信息中选择一个实例信息,包括:
所述网络微服务按照预设负载均衡策略规定的每个数据处理微服务对应的数据发送次序,从所述多个数据处理微服务的实例信息中选择一个实例信息;或者,
所述网络微服务获取预设负载均衡策略中当前记录的响应时间最短的数据处理微服务的实例信息,所述响应时间为数据处理微服务在预设时间段内处理所有任务所需时长的平均值。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
每隔所述预设时间段所述协议栈系统中的每个数据处理微服务都将自己的响应时间发送给每个网络微服务;
每个网络微服务接收每个数据处理微服务发送的响应时间,确定出响应时间最短的数据处理微服务,将所述响应时间最短的数据处理微服务的实例信息记录在预设负载均衡策略中。
6.根据权利要求2所述的方法,其特征在于,所述网络微服务根据选择的所述实例信息,将所述交易信息转发给所述实例信息对应的数据处理微服务,包括:
所述网络微服务从所述实例信息中提取所述数据处理微服务的IP地址;
所述网络微服务根据所述IP地址将所述交易信息转发给所述数据处理微服务。
7.根据权利要求1所述的方法,其特征在于,所述数据处理微服务接收所述交易信息,对所述交易信息进行处理,根据所述服务列表将所述交易信息及处理结果转发给所述存储微服务进行存储,包括:
所述数据处理微服务根据存储微服务对应的微服务标识,查询本地缓存的所述服务列表中包含的存储微服务的实例信息是否为多个;
若查询出服务列表中仅包括一个存储微服务的实例信息,则从所述实例信息中提取出所述存储微服务的IP地址,根据所述IP地址将所述交易信息及处理结果转发给所述存储微服务;
若查询出本地缓存的服务列表中包括多个存储微服务的实例信息,则按照预设存储均衡策略,从所述多个存储微服务的实例信息中选择一个实例信息,从选择的所述实例信息中提取IP地址,根据提取的所述IP地址将所述交易信息及处理结果转发给所述存储微服务。
8.一种区块链协议栈架构系统,其特征在于,包括网络微服务模块、数据处理微服务模块、存储微服务模块及注册微服务模块;
所述网络微服务模块,用于在所述协议栈启动时,发送自己的实例信息给所述注册微服务模块;接收所述注册微服务模块发送的服务列表;接收用户发送的交易信息,根据所述服务列表将所述交易信息转发给所述数据处理微服务模块;
所述数据处理微服务模块,用于所述协议栈启动时,发送自己的实例信息给所述注册微服务模块;接收所述注册微服务模块发送的服务列表;接收所述交易信息,对所述交易信息进行处理,根据所述服务列表将所述交易信息及处理结果转发给所述存储微服务模块进行存储;
所述注册微服务模块,用于接收所述网络微服务模块、所述数据处理微服务模块及所述存储微服务模块发送的实例信息,将接收的所述实例信息存储在服务列表中;将所述服务列表发送给所述网络微服务模块和所述数据处理微服务模块;
所述存储微服务模块,用于接收并存储所述数据处理微服务模块发送的所述交易信息及处理结果。
9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如权利要求1至7中任一项权利要求所述的方法的步骤。
10.一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1至7中任一项权利要求所述的方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110287197.1A CN113014666B (zh) | 2021-03-17 | 2021-03-17 | 一种区块链协议栈架构方法、系统、设备及存储介质 |
PCT/CN2021/109468 WO2022193530A1 (zh) | 2021-03-17 | 2021-07-30 | 一种区块链协议栈架构方法、系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110287197.1A CN113014666B (zh) | 2021-03-17 | 2021-03-17 | 一种区块链协议栈架构方法、系统、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113014666A true CN113014666A (zh) | 2021-06-22 |
CN113014666B CN113014666B (zh) | 2023-02-28 |
Family
ID=76409330
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110287197.1A Active CN113014666B (zh) | 2021-03-17 | 2021-03-17 | 一种区块链协议栈架构方法、系统、设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113014666B (zh) |
WO (1) | WO2022193530A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114615284A (zh) * | 2022-03-09 | 2022-06-10 | 北京沃东天骏信息技术有限公司 | 集群内消息通知方法、接收方法及装置 |
WO2022193530A1 (zh) * | 2021-03-17 | 2022-09-22 | 深圳壹账通智能科技有限公司 | 一种区块链协议栈架构方法、系统、设备及存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115996229B (zh) * | 2022-11-30 | 2024-04-05 | 中国电子科技集团公司第十研究所 | 一种云化测控基带池的微服务数据同步方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104301414A (zh) * | 2014-10-21 | 2015-01-21 | 无锡云捷科技有限公司 | 基于网络协议栈的服务器负载均衡方法 |
CN107979635A (zh) * | 2017-10-24 | 2018-05-01 | 广东康美通信息服务有限公司 | 基于微服务的系统、方法及存储介质 |
US20190004871A1 (en) * | 2017-06-28 | 2019-01-03 | Intel Corporation | Microservices architecture |
CN109547570A (zh) * | 2018-12-29 | 2019-03-29 | 深圳云天励飞技术有限公司 | 服务注册方法、装置、注册中心管理设备及存储介质 |
CN110365533A (zh) * | 2019-07-12 | 2019-10-22 | 上海和数软件有限公司 | 数字资产交易方法、系统和计算机可读存储介质 |
CN110554927A (zh) * | 2019-09-12 | 2019-12-10 | 北京笔新互联网科技有限公司 | 基于区块链的微服务调用方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102420697B (zh) * | 2011-09-07 | 2015-08-19 | 北京邮电大学 | 一种可配置服务的综合资源监测管理系统及其方法 |
CN108270813B (zh) * | 2016-12-30 | 2021-02-12 | 华为技术有限公司 | 一种异构多协议栈方法、装置及系统 |
US20180308072A1 (en) * | 2017-04-21 | 2018-10-25 | Gem | Method and apparatus for blockchain management |
CN108989389B (zh) * | 2018-06-11 | 2020-09-11 | 北京航空航天大学 | 一种建立智能合约微服务化的方法 |
CN110266815B (zh) * | 2019-07-10 | 2021-11-05 | 西安纸贵互联网科技有限公司 | 基于区块链的微服务网络系统 |
CN111026982A (zh) * | 2019-10-15 | 2020-04-17 | 深圳壹账通智能科技有限公司 | 智能合约处理方法、计算机设备及存储介质 |
CN111240732B (zh) * | 2020-01-17 | 2021-05-14 | 腾讯科技(深圳)有限公司 | 分布式微服务的发布方法、装置、设备及存储介质 |
CN112000448B (zh) * | 2020-07-17 | 2023-08-25 | 北京计算机技术及应用研究所 | 基于微服务架构的应用管理方法 |
CN112511608A (zh) * | 2020-11-19 | 2021-03-16 | 中国平安财产保险股份有限公司 | 微服务模块注册与测试方法、装置、设备及存储介质 |
CN113014666B (zh) * | 2021-03-17 | 2023-02-28 | 深圳壹账通智能科技有限公司 | 一种区块链协议栈架构方法、系统、设备及存储介质 |
-
2021
- 2021-03-17 CN CN202110287197.1A patent/CN113014666B/zh active Active
- 2021-07-30 WO PCT/CN2021/109468 patent/WO2022193530A1/zh unknown
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104301414A (zh) * | 2014-10-21 | 2015-01-21 | 无锡云捷科技有限公司 | 基于网络协议栈的服务器负载均衡方法 |
US20190004871A1 (en) * | 2017-06-28 | 2019-01-03 | Intel Corporation | Microservices architecture |
CN107979635A (zh) * | 2017-10-24 | 2018-05-01 | 广东康美通信息服务有限公司 | 基于微服务的系统、方法及存储介质 |
CN109547570A (zh) * | 2018-12-29 | 2019-03-29 | 深圳云天励飞技术有限公司 | 服务注册方法、装置、注册中心管理设备及存储介质 |
CN110365533A (zh) * | 2019-07-12 | 2019-10-22 | 上海和数软件有限公司 | 数字资产交易方法、系统和计算机可读存储介质 |
CN110554927A (zh) * | 2019-09-12 | 2019-12-10 | 北京笔新互联网科技有限公司 | 基于区块链的微服务调用方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022193530A1 (zh) * | 2021-03-17 | 2022-09-22 | 深圳壹账通智能科技有限公司 | 一种区块链协议栈架构方法、系统、设备及存储介质 |
CN114615284A (zh) * | 2022-03-09 | 2022-06-10 | 北京沃东天骏信息技术有限公司 | 集群内消息通知方法、接收方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2022193530A1 (zh) | 2022-09-22 |
CN113014666B (zh) | 2023-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113014666B (zh) | 一种区块链协议栈架构方法、系统、设备及存储介质 | |
CN108510389B (zh) | 基于区块链的智能合约调用方法、设备及可读存储介质 | |
US20050216473A1 (en) | P2P network system | |
US20020040402A1 (en) | System and method for implementing a clustered load balancer | |
JP5741150B2 (ja) | 中継装置、中継プログラム、及び中継方法 | |
CN101171821A (zh) | 用于使用群集的节点作为授权域名服务器的活跃负载平衡的系统、网络设备、方法和计算机程序产品 | |
US10067719B1 (en) | Methods and systems for storing and accessing data in a distributed data storage system | |
US20060069778A1 (en) | Content distribution system | |
CN111901157B (zh) | 一种基于k8s的服务部署方法、装置、设备、介质 | |
CN106209943A (zh) | 通讯节点的选择方法及装置 | |
CN109413202B (zh) | 区块链交易信息的排序系统及方法 | |
CN105635083A (zh) | 基于服务器和客户端架构的业务处理方法及业务处理系统 | |
CN106161519A (zh) | 一种信息获取方法和装置 | |
CN114338769A (zh) | 访问请求的处理方法及装置 | |
CN110581784B (zh) | 一种节点健康检查方法、装置及设备 | |
JP2740105B2 (ja) | 分散データベース制御方法 | |
CN112492030B (zh) | 数据存储方法、装置、计算机设备和存储介质 | |
CN112732775A (zh) | 区块节点数据的处理方法、装置、计算机设备和存储介质 | |
CN115470008B (zh) | 一种元数据访问方法、装置和存储介质 | |
CN111131470A (zh) | 终端设备及其数据处理方法以及数据处理系统 | |
CN107704557B (zh) | 操作互斥数据的处理方法、装置、计算机设备和存储介质 | |
CN105554159A (zh) | 一体化智慧社区云存储系统 | |
CN111163123A (zh) | 一种服务请求的处理方法及装置 | |
CN111131512A (zh) | 设备信息的处理方法、装置、存储介质及处理器 | |
CN113220491B (zh) | 远程调用自适应负载均衡方法、装置、系统及计算机装备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40045407 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |