CN114035987A - 基于消息队列的数据传输方法、装置、电子设备及介质 - Google Patents
基于消息队列的数据传输方法、装置、电子设备及介质 Download PDFInfo
- Publication number
- CN114035987A CN114035987A CN202111349199.5A CN202111349199A CN114035987A CN 114035987 A CN114035987 A CN 114035987A CN 202111349199 A CN202111349199 A CN 202111349199A CN 114035987 A CN114035987 A CN 114035987A
- Authority
- CN
- China
- Prior art keywords
- queue
- data
- data transmission
- message
- request object
- 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.)
- Pending
Links
Images
Classifications
-
- 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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
Abstract
本发明涉及过程优化技术领域,揭露一种基于消息队列的数据传输方法,包括:接收数据传输请求,根据所述数据传输请求获取待传输数据,并通过所述待传输数据构建组装数据;获取所述组装数据的优先级,根据所述组装数据的优先级构建目标请求对象;将所述目标请求对象添加至预设的消息队列的消息子队列中,得到数据传输队列,其中,所述消息队列中包含多个消息子队列,多个所述消息子队列以链表结构实现;通过所述数据传输队列所述待传输数据传输至服务器端。本发明还提出一种基于消息队列的数据传输装置、设备及存储介质。本发明还涉及区块链技术,所述待传输数据可存储于区块链节点中。本发明可以提高数据传输的效率。
Description
技术领域
本发明涉及过程优化技术领域,尤其涉及一种基于消息队列的数据传输方法、装置、电子设备及计算机可读存储介质。
背景技术
在客户端和服务器端进行基于TCP长连接的数据传输时,为了确保数据的安全性和快捷性,往往会在客户端内设置消息队列,用于承载客户端需要发送给服务器端的数据。
现有的基于消息队列的数据传输方法有kafka、rocketmq,但是这两种方法是面向服务器端使用的,无法在客户端直接调用,并且现有的消息队列不利于数据容量的灵活改变,往往会因为队列空间不足导致频繁的动态扩容,降低数据传输的效率。
发明内容
本发明提供一种基于消息队列的数据传输方法、装置、电子设备及计算机可读存储介质,其主要目的在于提高数据传输的效率。
为实现上述目的,本发明提供的一种基于消息队列的数据传输方法,包括:
接收数据传输请求,根据所述数据传输请求获取待传输数据,并通过所述待传输数据构建组装数据;
获取所述组装数据的优先级,根据所述组装数据的优先级构建目标请求对象;
将所述目标请求对象添加至预设消息队列的消息子队列中,得到数据传输队列,其中,所述预设消息队列中包含多个消息子队列,多个所述消息子队列以链表结构实现;
通过所述数据传输队列将所述待传输数据传输至服务器端。
可选地,所述通过所述待传输数据构建组装数据,包括:
获取用户令牌,以及传输所述待传输数据的接口参数和接口名称;
查询所述待传输数据的数据传输ID,基于所述待传输数据、所述用户令牌、所述接口参数、所述接口名称和所述数据传输ID构建组装数据。
可选地,所述将所述目标请求对象添加至预设消息队列的消息子队列中,得到数据传输队列,包括:
判断所述预设消息队列中第i个所述消息子队列的消息键值是否与所述目标请求对象中的目标参数相等,其中,i的初始值为1,i为正整数;
若相等,则将所述目标请求对象插入所述第i个消息子队列;
若不相等,令i的值加1,再次执行所述判断所述预设消息队列中第i个所述消息子队列的消息键值是否与所述请求对象的目标参数相等的操作。
可选地,所述将所述目标请求对象插入所述第i个消息子队列,包括:
获取所述目标请求对象的请求优先级;
根据所述请求优先级确定所述目标请求对象在所述多个请求对象中的排列顺序;
根据所述排列顺序将所述目标请求对象插入所述第i个消息子队列中。
可选地,所述通过所述数据传输队列将所述待传输数据传输至服务器端,包括:
接收所述服务器端发送的应答协议数据,并从所述应答协议数据中获取接收ID;
判断所述数据传输队列中第k个消息子队列的第一个请求对象的数据传输ID是否与所述接收ID相同,其中,k的初始值为1,k为正整数;
若相同,则将所述第k个消息子队列的第一个请求对象移出所述第k个消息子队列,并基于所述数据传输队列的所述第k个消息子队列的第一个请求对象实现数据传输;
若不相等,令k的值加1,再次执行所述判断所述数据传输队列中第k个消息子队列的第一个请求对象的数据传输ID是否与所述接收ID相同的操作。
可选地,所述基于所述数据传输队列的所述第k个消息子队列的第一个请求对象实现数据传输,包括:
获取将所述待传输数据传输至所述服务器端的传输协议格式;
根据所述传输协议格式和所述数据传输队列的所述第k个消息子队列的第一个请求对象构建协议数据,向所述服务器端发送所述协议数据,实现所述待传输数据的数据传输。
可选地,所述将所述第k个消息子队列的第一个请求对象移出所述第k个消息子队列,包括:
根据所述第k个消息子队列的第一个请求对象的超时时间构建定时器;
当所述定时器触发时,检查所述第一个请求对象是否在所述消息子队列中;
若所述第一个请求对象不在所述第k个消息子队列中,则确定所述第k个消息子队列中的第一个请求对象已经移出所述消息子队列。
为了解决上述问题,本发明还提供一种基于消息队列的数据传输装置,所述装置包括:
数据组装模块,用于接收数据传输请求,根据所述数据传输请求获取待传输数据,并通过所述待传输数据构建组装数据;
请求对象构建模块,用于获取所述组装数据的优先级,根据所述组装数据的优先级构建目标请求对象;
传输队列构建模块,用于将所述目标请求对象添加至预设消息队列的消息子队列中,得到数据传输队列,其中,所述预设消息队列中包含多个消息子队列,多个所述消息子队列以链表结构实现;
数据传输模块,用于通过所述数据传输队列将所述待传输数据传输至服务器端。
为了解决上述问题,本发明还提供一种电子设备,所述电子设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述的基于消息队列的数据传输方法。
为了解决上述问题,本发明还提供一种计算机可读存储介质,包括存储数据区和存储程序区,存储数据区存储创建的数据,存储程序区存储有计算机程序;其中,所述计算机程序被处理器执行时实现如上所述的基于消息队列的数据传输方法。
本发明实施例中,根据数据传输请求获取待传输数据,通过待传输数据构建用于进行数据传输的组装数据,实现将待传输数据的打包工作,之后获取组装数据的优先级,根据组装数据的优先级构建目标请求对象,并将目标请求对象添加至为链表结构的消息子队列中,得到数据传输队列,最后基于数据传输队列将待传输数据发送给服务器端实现数据传输,可以基于客户端构建消息队列进行数据传输,并且由于采用了链表结构的消息队列,增加队列空间的扩展性,提升了数据传输的效率。
附图说明
图1为本发明一实施例提供的一种基于消息队列的数据传输方法的流程示意图;
图2为本发明一实施例提供的基于消息队列的数据传输装置的模块示意图;
图3为本发明一实施例提供的实现基于消息队列的数据传输方法的电子设备的内部结构示意图;
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本申请实施例提供一种基于消息队列的数据传输方法。所述基于消息队列的数据传输方法的执行主体包括但不限于服务端、终端等能够被配置为执行本申请实施例提供的该方法的电子设备中的至少一种。其中,服务器可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。换言之,所述基于消息队列的数据传输方法可以由安装在终端设备或服务端设备的软件或硬件来执行,所述软件可以是区块链平台。所述服务端包括但不限于:单台服务器、服务器集群、云端服务器或云端服务器集群等。
参照图1所示,为本发明一实施例提供的一种基于消息队列的数据传输方法的流程示意图。在本实施例中,所述基于消息队列的数据传输方法包括:
S1、接收数据传输请求,根据所述数据传输请求获取待传输数据,并通过所述待传输数据构建组装数据。
本发明实施例中,所述数据传输请求为用户通过客户端操作触发产生的请求或者服务器基于获取数据信息的目的发送的请求。
本发明实施例中,所述待传输数据为需要从客户端传输至服务器端的数据。例如,在银行构建金融安全系统时,服务器端请求收集客户端的用户信息,则该用户信息作为待传输数据。
本发明实施例中所述组装数据是通过将所述待传输数据按照一定的数据规则组装得到的数据。
本发明实施例中,所述通过所述待传输数据构建组装数据,包括:
获取用户令牌,以及传输所述待传输数据的接口参数和接口名称;
查询所述待传输数据的数据传输ID,基于所述待传输数据、所述用户令牌、所述接口参数、所述接口名称和所述数据传输ID构建组装数据。
其中,所述用户令牌(TOKEN)为已登录客户端的用户凭证,用于识别客户端提供的待传输数据,具有唯一性。
具体的,对于Web形式的客户端,可以通过userAgent函数从客户端网页获取用户令牌。
进一步地,所述接口参数为将在本次数据传输过程中需要调用的客户端接口的具体参数数值按接口定义顺序进行组合得到的参数。
其中,所述接口名称为在本次数据传输过程中需要调用的客户端的具体接口名称。
具体的,所述数据传输ID为客户端与服务器端每进行一次数据传输交互时生成的一个唯一的ID。
本发明实施例中,通过所述用户令牌、所述数据传输ID构建组装数据可以明确数据的传输批次,便于查找待传输数据的来源。
进一步地,所述查询数据传输ID之后,所述方法还包括将所述数据传输ID保存至所述数据传输请求中,得到消息传输请求。
S2、获取所述组装数据的优先级,根据所述组装数据的优先级构建目标请求对象。
本发明实施例中,所述目标请求对象可以为Request对象,为所述客户端中一个封装对象,用于封装所述待传输数据。
本发明实施例中,所述获取所述组装数据的优先级,根据所述组装数据的优先级构建目标请求对象,包括:
获取所述组装数据的目标参数,以及获取所述组装数据的请求函数,所述请求函数包括请求成功回调函数和异常回调函数;
获取所述组装数据的超时时间;
通过所述目标参数、所述传输数组、所述请求函数,以及所述组装数据的请求优先级和超时时间构建所述目标请求对象。
本发明实施例中,所述目标参数(SessionID)为一组按一定规则生成的字符组成的字符串ID值,所述请求优先级为1至10范围内的一个整数数字,数字越大,代表该请求对象的优先级越高,越需要被优先处理。所述超时时间即为接受所述组装数组的服务器的接口响应时间,该接口响应时间越长,超时时间越长。
进一步地,所述请求成功回调函数和所述异常回调函数为将所述目标请求对象中的组装数据发送至服务器端成功后和失败后调用的函数。
本发明实施例中,利用所述组装数据构建目标请求对象可以便于服务器端接收所述组装数据,并确定接收的每个所述组装数据的优先级。
S3、将所述目标请求对象添加至预设消息队列的消息子队列中,得到数据传输队列,其中,所述预设消息队列中包含多个消息子队列,多个所述消息子队列以链表结构实现。
本发明实施例中,所述消息队列的链表结构为单链表结构,用于数据的传输,相较于一维结构的消息队列,更加容易对队列的容量进行扩充,其中,单链表的每一个节点都是一个消息子队列。
其中,所述预设的消息子队列是一个结构体,由消息键值、消息数组和标识请求组成。
进一步地,所述消息键值用于标记所述消息子队列,所述消息数组用于存放所述请求对象,所述标识请求用于标记所述消息子队列正在处理的所述请求对象。
本实施例中,添加目标请求对象的预设消息队列为数据传输队列。
本发明实施例中,所述将所述目标请求对象添加至预设消息队列的消息子队列中,得到数据传输队列,包括:
判断所述预设消息队列中第i个所述消息子队列的消息键值是否与所述目标请求对象中的目标参数相等,其中,i的初始值为1,i为正整数;
若相等,则将所述目标请求对象插入所述第i个消息子队列;
若不相等,令i的值加1,再次执行所述判断所述预设消息队列中第i个所述消息子队列的消息键值是否与所述请求对象的目标参数相等的操作。
进一步地,若所述消息队列中所有的所述消息子队列的消息键值均和所述请求对象中的目标参数不同,则所述方法还包括:
在所述预设消息队列的末尾新建一个新增消息子队列,将所述新增消息子队列的消息键值设置为目标参数,并将所述请求对象插入所述消息队列的新增消息子队列中,得到所述数据传输队列。
进一步地,所述第i个消息子队列包含多个请求对象,所述将所述目标请求对象插入所述第i个消息子队列,包括:
根据所述请求优先级确定所述目标请求对象在所述多个请求对象中的排列顺序;
根据所述排列顺序将所述目标请求对象插入所述第i个消息子队列中。
本发明实施例中,通过获取所述目标请求对象的优先级,可以根据所述目标请求对象的优先级进行加载,避免服务器端亟须的目标请求对象在所述数据传输队列的尾端,迟迟得不到加载。
进一步地,所述请求优先级高的请求对象插入所述消息子队列的位置相比于所述请求优先级低的请求对象插入所述消息子队列的位置靠前,若存在两个所述请求对象的请求优先级相同,则根据请求对象的插入顺序进行排列,即先插入的所述请求对象相较于后插入的所述请求对象在所述消息子队列中的位置更加靠前。
本发明实施例中,将所述目标请求对象添加至消息队列中可以在避免在高并发环境下,由于请求过多来不及同时处理导致的堵塞情况,即将预设消息队列中的请求对象按照预定顺序依次处理,避免同时请求产生堵塞。
S4、通过所述数据传输队列将所述待传输数据传输至服务器端。
本发明实施例中,所述服务器端是用于接收所述待传输信息的设备。
本发明实施例中,所述通过所述数据传输队列将所述待传输数据传输至服务器端之前,所述方法还包括:
将所述消息传输请求发送至所述服务器端,得到应答协议数据,所述应答协议数据中包含接收ID。
本发明实施例中,所述通过所述数据传输队列将所述待传输数据传输至服务器端,包括:
接收所述服务器端发送的应答协议数据,并从所述应答协议数据中获取接收ID;
判断所述数据传输队列中第k个消息子队列的第一个请求对象的数据传输ID是否与所述接收ID相同,其中,k的初始值为1,k为正整数;
若相同,则将所述第k个消息子队列的第一个请求对象移出所述第k个消息子队列,并基于所述数据传输队列的所述第k个消息子队列的第一个请求对象实现数据传输;
若不相等,令k的值加1,再次执行所述判断所述数据传输队列中第k个消息子队列的第一个请求对象的数据传输ID是否与所述接收ID相同的操作。
本发明实施例中,所述应答协议数据和所述请求对象中数据的格式相同。
进一步地,所述应答协议数据中的接收ID值和S1中的所述数据传输ID的值相同。
本发明实施例中,所述基于所述第k个消息子队列的第一个请求对象实现数据传输,包括:
获取将所述待传输数据传输至所述服务器端的传输协议格式;
根据所述传输协议格式和所述数据传输队列的所述第k个消息子队列的第一个请求对象构建协议数据,向所述服务器端发送所述协议数据,实现所述待传输数据的数据传输。
本发明实施例中,所述传输协议格式为:
协议总长+CRC校验和+协议版本+协议头长+协议头+协议体(即组装数据)。
本发明实施例中,所述传输协议格式为一种将组装数据打包发送至服务器的格式,例如TCP传输协议格式,所述传输协议格式即为所述应答协议数据的格式以及所述请求对象中数据的格式。
本发明实施例中,所述将所述第k个消息子队列的第一个请求对象移出所述第k个消息子队列之后,所述方法还包括:
根据所述第k个消息子队列的第一个请求对象的超时时间构建定时器;
当所述定时器触发时,检查所述第一个请求对象是否在所述消息子队列中;
若所述第一个请求对象不在所述第k个消息子队列中,则确定所述第k个消息子队列中的第一个请求对象已经移出所述消息子队列。
进一步的,在本发明另一实施例中,若所述第一个请求对象仍在所述消息子队列中,将所述第一个请求对象移出所述第k个消息子队列,并通过调用所述异常回调函数将所述第k个消息子队列中已移除的第一请求对象的下一个请求对象设置为第一个请求对象。
本发明实施例中,所述定时器用于检查确保所数据传输队列中的数据发送至服务器,通过根据标识请求中的超时时间设置定时器可以避免在数据传输过程中,所述数据传输队列中部分标识请求出现请求超时,即服务器未能在限定时间内接收到客户端的待传输数据。
本发明实施例中,根据数据传输请求获取待传输数据,通过待传输数据构建用于进行数据传输的组装数据,实现将待传输数据的打包工作,之后获取组装数据的优先级,根据组装数据的优先级构建目标请求对象,并将目标请求对象添加至为链表结构的消息子队列中,得到数据传输队列,最后基于数据传输队列将待传输数据发送给服务器端实现数据传输,可以基于客户端构建消息队列进行数据传输,并且由于采用了链表结构的消息队列,增加队列空间的扩展性,提升了数据传输的效率。
如图2所示,是本发明基于消息队列的数据传输装置的模块示意图。
本发明所述基于消息队列的数据传输装置100可以安装于电子设备中。根据实现的功能,所述基于消息队列的数据传输装置可以包括数据组装模块101、请求对象构建模块102、传输队列构建模块103和数据传输模块104。本发明所述模块也可以称之为单元,是指一种能够被电子设备处理器所执行,并且能够完成固定功能的一系列计算机程序段,其存储在电子设备的存储器中。
在本实施例中,关于各模块/单元的功能如下:
所述数据组装模块101,用于接收数据传输请求,根据所述数据传输请求获取待传输数据,并通过所述待传输数据构建组装数据;
请求对象构建模块102,用于获取所述组装数据的优先级,根据所述组装数据的优先级构建目标请求对象;
传输队列构建模块103,用于将所述目标请求对象添加至预设消息队列的消息子队列中,得到数据传输队列,其中,所述预设消息队列中包含多个消息子队列,多个所述消息子队列以链表结构实现;
数据传输模块104,用于通过所述数据传输队列中的目标请求对象将所述待传输数据传输至服务器端。
详细地,本发明实施例中所述基于消息队列的数据传输装置100中所述的各模块在使用时采用与上述图1中所述的基于消息队列的数据传输方法一样的技术手段,并能够产生相同的技术效果,这里不再赘述。
如图3所示,是本发明实现基于消息队列的数据传输方法的电子设备的结构示意图。
所述电子设备可以包括处理器10、存储器11、通信总线12以及通信接口13,还可以包括存储在所述存储器11中并可在所述处理器10上运行的计算机程序,如基于消息队列的数据传输程序。
其中,所述处理器10在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(Central Processing unit,CPU)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述处理器10是所述电子设备的控制核心(ControlUnit),利用各种接口和线路连接整个电子设备的各个部件,通过运行或执行存储在所述存储器11内的程序或者模块(例如执行基于消息队列的数据传输程序等),以及调用存储在所述存储器11内的数据,以执行电子设备的各种功能和处理数据。
所述存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、移动硬盘、多媒体卡、卡型存储器(例如:SD或DX存储器等)、磁性存储器、磁盘、光盘等。所述存储器11在一些实施例中可以是电子设备的内部存储单元,例如该电子设备的移动硬盘。所述存储器11在另一些实施例中也可以是电子设备的外部存储设备,例如电子设备上配备的插接式移动硬盘、智能存储卡(Smart Media Card,SMC)、安全数字(Secure Digital,SD)卡、闪存卡(Flash Card)等。进一步地,所述存储器11还可以既包括电子设备的内部存储单元也包括外部存储设备。所述存储器11不仅可以用于存储安装于电子设备的应用软件及各类数据,例如基于消息队列的数据传输程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
所述通信总线12可以是外设部件互连标准(peripheral componentinterconnect,简称PCI)总线或扩展工业标准结构(extended industry standardarchitecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。所述总线被设置为实现所述存储器11以及至少一个处理器10等之间的连接通信。
所述通信接口13用于上述电子设备与其他设备之间的通信,包括网络接口和用户接口。可选地,所述网络接口可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该电子设备与其他电子设备之间建立通信连接。所述用户接口可以是显示器(Display)、输入单元(比如键盘(Keyboard)),可选地,用户接口还可以是标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备中处理的信息以及用于显示可视化的用户界面。
图3仅示出了具有部件的电子设备,本领域技术人员可以理解的是,图3示出的结构并不构成对所述电子设备的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
例如,尽管未示出,所述电子设备还可以包括给各个部件供电的电源(比如电池),优选地,电源可以通过电源管理装置与所述至少一个处理器10逻辑相连,从而通过电源管理装置实现充电管理、放电管理、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述电子设备还可以包括多种传感器、蓝牙模块、Wi-Fi模块等,在此不再赘述。
应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。
所述电子设备中的所述存储器11存储的基于消息队列的数据传输程序是多个计算机程序的组合,在所述处理器10中运行时,可以实现:
接收数据传输请求,根据所述数据传输请求获取待传输数据,并通过所述待传输数据构建组装数据;
获取所述组装数据的优先级,根据所述组装数据的优先级构建目标请求对象;
将所述目标请求对象添加至预设消息队列的消息子队列中,得到数据传输队列,其中,所述预设消息队列中包含多个消息子队列,多个所述消息子队列以链表结构实现;
通过所述数据传输队列中的目标请求对象将所述待传输数据传输至服务器端。
具体地,所述处理器10对上述计算机程序的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。
进一步地,所述电子设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个非易失性计算机可读取存储介质中。所述计算机可读存储介质可以是易失性的,也可以是非易失性的。例如,所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)。
本发明还提供一种计算机可读存储介质,所述可读存储介质存储有计算机程序,所述计算机程序在被电子设备的处理器所执行时,可以实现:
接收数据传输请求,根据所述数据传输请求获取待传输数据,并通过所述待传输数据构建组装数据;
获取所述组装数据的优先级,根据所述组装数据的优先级构建目标请求对象;
将所述目标请求对象添加至预设消息队列的消息子队列中,得到数据传输队列,其中,所述预设消息队列中包含多个消息子队列,多个所述消息子队列以链表结构实现;
通过所述数据传输队列中的目标请求对象将所述待传输数据传输至服务器端。
在本发明所提供的几个实施例中,应该理解到,所揭露的设备,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。
因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
本申请实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
Claims (10)
1.一种基于消息队列的数据传输方法,其特征在于,所述方法应用于客户端,包括:
接收数据传输请求,根据所述数据传输请求获取待传输数据,并通过所述待传输数据构建组装数据;
获取所述组装数据的优先级,根据所述组装数据的优先级构建目标请求对象;
将所述目标请求对象添加至预设消息队列的消息子队列中,得到数据传输队列,其中,所述预设消息队列中包含多个消息子队列,多个所述消息子队列以链表结构实现;
通过所述数据传输队列将所述待传输数据传输至服务器端。
2.如权利要求1所述的基于消息队列的数据传输方法,其特征在于,所述通过所述待传输数据构建组装数据,包括:
获取用户令牌,以及传输所述待传输数据的接口参数和接口名称;
查询所述待传输数据的数据传输ID,基于所述待传输数据、所述用户令牌、所述接口参数、所述接口名称和所述数据传输ID构建组装数据。
3.如权利要求1所述的基于消息队列的数据传输方法,其特征在于,所述将所述目标请求对象添加至预设消息队列的消息子队列中,包括:
判断所述预设消息队列中第i个所述消息子队列的消息键值是否与所述目标请求对象中的目标参数相等,其中,i的初始值为1,i为正整数;
若相等,则将所述目标请求对象插入所述第i个消息子队列;
若不相等,令i的值加1,再次执行所述判断所述预设消息队列中第i个所述消息子队列的消息键值是否与所述请求对象的目标参数相等的操作。
4.如权利要求3所述的基于消息队列的数据传输方法,其特征在于,所述第i个消息子队列包含多个请求对象,所述将所述目标请求对象插入所述第i个消息子队列,包括;
获取所述目标请求对象的请求优先级;
根据所述请求优先级确定所述目标请求对象在所述多个请求对象中的排列顺序;
根据所述排列顺序将所述目标请求对象插入所述第i个消息子队列中。
5.如权利要求1至3中任一项所述的基于消息队列的数据传输方法,其特征在于,所述通过所述数据传输队列将所述待传输数据传输至服务器端,包括:
接收所述服务器端发送的应答协议数据,并从所述应答协议数据中获取接收ID;
判断所述数据传输队列中第k个消息子队列的第一个请求对象的数据传输ID是否与所述接收ID相同,其中,k的初始值为1,k为正整数;
若相同,则将所述第k个消息子队列的第一个请求对象移出所述第k个消息子队列,并基于所述数据传输队列的所述第k个消息子队列的第一个请求对象实现数据传输;
若不相等,令k的值加1,再次执行所述判断所述数据传输队列中第k个消息子队列的第一个请求对象的数据传输ID是否与所述接收ID相同的操作。
6.如权利要求5所述的基于消息队列的数据传输方法,其特征在于,所述基于所述数据传输队列的所述第k个消息子队列的第一个请求对象实现数据传输,包括:
获取将所述待传输数据传输至所述服务器端的传输协议格式;
根据所述传输协议格式和所述数据传输队列的所述第k个消息子队列的第一个请求对象构建协议数据,向所述服务器端发送所述协议数据,实现所述待传输数据的数据传输。
7.如权利要求5所述的基于消息队列的数据传输方法,其特征在于,所述将所述第k个消息子队列的第一个请求对象移出所述第k个消息子队列之后,所述方法还包括:
根据所述第k个消息子队列的第一个请求对象的超时时间构建定时器;
当所述定时器触发时,检查所述第一个请求对象是否在所述消息子队列中;
若所述第一个请求对象不在所述第k个消息子队列中,则确定所述第k个消息子队列中的第一个请求对象已经移出所述消息子队列。
8.一种基于消息队列的数据传输装置,其特征在于,所述装置包括:
数据组装模块,用于接收数据传输请求,根据所述数据传输请求获取待传输数据,并通过所述待传输数据构建组装数据;
请求对象构建模块,用于获取所述组装数据的优先级,根据所述组装数据的优先级构建目标请求对象;
传输队列构建模块,用于将所述目标请求对象添加至预设消息队列的消息子队列中,得到数据传输队列,其中,所述预设消息队列中包含多个消息子队列,多个所述消息子队列以链表结构实现;
数据传输模块,用于通过所述数据传输队列将所述待传输数据传输至服务器端。
9.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至7中任一项所述的基于消息队列的数据传输方法。
10.一种计算机可读存储介质,包括存储数据区和存储程序区,存储数据区存储创建的数据,存储程序区存储有计算机程序;其中,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的基于消息队列的数据传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111349199.5A CN114035987A (zh) | 2021-11-15 | 2021-11-15 | 基于消息队列的数据传输方法、装置、电子设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111349199.5A CN114035987A (zh) | 2021-11-15 | 2021-11-15 | 基于消息队列的数据传输方法、装置、电子设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114035987A true CN114035987A (zh) | 2022-02-11 |
Family
ID=80144393
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111349199.5A Pending CN114035987A (zh) | 2021-11-15 | 2021-11-15 | 基于消息队列的数据传输方法、装置、电子设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114035987A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115037758A (zh) * | 2022-04-27 | 2022-09-09 | 浪潮通信技术有限公司 | 消息同步方法及服务器 |
CN116155831A (zh) * | 2022-12-28 | 2023-05-23 | 河南辉煌科技股份有限公司 | 一种用于铁路生产管理系统的数据传输方法和系统 |
CN116700940A (zh) * | 2023-08-08 | 2023-09-05 | 成都数智创新精益科技有限公司 | 一种基于封装类的请求处置方法及系统及装置及介质 |
CN116155831B (zh) * | 2022-12-28 | 2024-05-03 | 河南辉煌科技股份有限公司 | 一种用于铁路生产管理系统的数据传输方法和系统 |
-
2021
- 2021-11-15 CN CN202111349199.5A patent/CN114035987A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115037758A (zh) * | 2022-04-27 | 2022-09-09 | 浪潮通信技术有限公司 | 消息同步方法及服务器 |
CN116155831A (zh) * | 2022-12-28 | 2023-05-23 | 河南辉煌科技股份有限公司 | 一种用于铁路生产管理系统的数据传输方法和系统 |
CN116155831B (zh) * | 2022-12-28 | 2024-05-03 | 河南辉煌科技股份有限公司 | 一种用于铁路生产管理系统的数据传输方法和系统 |
CN116700940A (zh) * | 2023-08-08 | 2023-09-05 | 成都数智创新精益科技有限公司 | 一种基于封装类的请求处置方法及系统及装置及介质 |
CN116700940B (zh) * | 2023-08-08 | 2023-10-03 | 成都数智创新精益科技有限公司 | 一种基于封装类的请求处置方法及系统及装置及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114035987A (zh) | 基于消息队列的数据传输方法、装置、电子设备及介质 | |
CN112667414A (zh) | 基于消息队列的消息消费方法、装置、计算机设备及介质 | |
CN112528307A (zh) | 服务请求校验方法、装置、电子设备及存储介质 | |
CN111880948A (zh) | 数据刷新方法、装置、电子设备及计算机可读存储介质 | |
CN112702228A (zh) | 服务限流响应方法、装置、电子设备及可读存储介质 | |
CN113890712A (zh) | 数据传输方法、装置、电子设备及可读存储介质 | |
CN112015815B (zh) | 数据同步方法、装置及计算机可读存储介质 | |
CN113468175A (zh) | 数据压缩方法、装置、电子设备及存储介质 | |
CN112256472A (zh) | 分布式数据调取方法、装置、电子设备及存储介质 | |
CN115687384A (zh) | Uuid标识生成方法、装置、设备及存储介质 | |
CN114820132A (zh) | 订单派发方法、装置、电子设备及存储介质 | |
CN114185588A (zh) | 增量包生成方法、装置、设备及存储介质 | |
CN111984202A (zh) | 一种数据处理方法、装置、电子设备和存储介质 | |
CN113452785B (zh) | 基于离线资源的服务访问方法、装置、电子设备及介质 | |
CN115002011B (zh) | 流量双向测试方法、装置、电子设备及存储介质 | |
CN115002100B (zh) | 文件传输方法、装置、电子设备及存储介质 | |
CN117061072B (zh) | 报文传输方法、装置、设备及存储介质 | |
CN112596717B (zh) | 多数据打包方法、装置、电子设备及计算机可读存储介质 | |
CN113360375B (zh) | 交易测试方法、装置、电子设备及存储介质 | |
CN113704000A (zh) | 服务访问优化方法、装置、设备及介质 | |
CN116527771A (zh) | 业务信息快速传递方法、装置、设备及存储介质 | |
CN114253525A (zh) | 轻量化组件总线实现方法、装置、电子设备及介质 | |
CN116610465A (zh) | 基于事件通知的消息发送方法、装置、电子设备及介质 | |
CN114138316A (zh) | 增量包生成及下载方法、装置、电子设备及可读存储介质 | |
CN115033605A (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 |