CN113422760B - 数据传输方法、装置、电子装置和存储介质 - Google Patents

数据传输方法、装置、电子装置和存储介质 Download PDF

Info

Publication number
CN113422760B
CN113422760B CN202110650193.5A CN202110650193A CN113422760B CN 113422760 B CN113422760 B CN 113422760B CN 202110650193 A CN202110650193 A CN 202110650193A CN 113422760 B CN113422760 B CN 113422760B
Authority
CN
China
Prior art keywords
data
transmission
transmitted
queue
transmitting
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.)
Active
Application number
CN202110650193.5A
Other languages
English (en)
Other versions
CN113422760A (zh
Inventor
叶琛
范渊
杨勃
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
DBAPPSecurity Co Ltd
Original Assignee
DBAPPSecurity Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by DBAPPSecurity Co Ltd filed Critical DBAPPSecurity Co Ltd
Priority to CN202110650193.5A priority Critical patent/CN113422760B/zh
Publication of CN113422760A publication Critical patent/CN113422760A/zh
Application granted granted Critical
Publication of CN113422760B publication Critical patent/CN113422760B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/562Brokering proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols

Abstract

本申请涉及一种数据传输方法,其中,该数据传输方法包括:获取初始数据以及数据传输需求,所述初始数据至少包括HTTP协议报文;基于所述数据传输需求对所述初始数据进行解析,得到待传输数据,所述待传输数据可通过通用通信协议进行传输;将所述待传输数据传输给数据处理端。通过获取数据传输需求并基于所述数据传输需求对初始数据进行解析,然后再传输给数据处理端,使得后端系统不需要对传输数据进行解析,解决了后端系统计算资源紧张,数据处理效率不高的问题,降低了后端系统的计算压力,提高了数据处理的效率。

Description

数据传输方法、装置、电子装置和存储介质
技术领域
本申请涉及计算机网络领域,特别是涉及数据传输方法、装置、电子装置和存储介质。
背景技术
NGINX服务器具有较高的HTTP处理能力和反向代理能力,一般会作为WEB服务器或者反向代理服务器部署在网络中。基于NGINX服务器,可以衍生出各种针对HTTP数据的应用,例如流量日志统计等。当系统中需要对HTTP数据进行处理时,常规的方法是将处理模块嵌入NGINX进程,直接对HTTP数据进行处理。但是,直接在NGINX进程中进行处理需要消耗NGINX服务器的计算资源,尤其是在面对重负荷的数据处理任务时会导致NGINX服务器的性能大幅降低。为此,需要将HTTP数据传输到独立的后端系统中,进行分布式处理,从而在不占用NGINX服务器资源的情况下,对HTTP数据进行处理。
为了将HTTP数据传输到独立的后端系统,传统方式都是通过NGINX服务器自带的模块,将HTTP数据以HTTP协议传输到后端系统。但是,由于通过HTTP协议传输数据需要后端系统先基于HTTP协议对数据进行解析,然后才能进行数据处理,导致后端系统计算资源紧张,数据处理效率不高。
针对相关技术中存在的后端系统计算资源紧张,数据处理效率不高的问题,目前还没有提出有效的解决方案。
发明内容
在本实施例中提供了一种数据传输方法、装置、电子装置和存储介质,以解决相关技术中后端系统计算资源紧张,数据处理效率不高的问题。
第一个方面,在本实施例中提供了一种数据传输方法,应用于NGINX服务器,包括:
获取初始数据以及数据传输需求,所述初始数据至少包括HTTP协议报文;
基于所述数据传输需求对所述初始数据进行解析,得到待传输数据,所述待传输数据可通过通用通信协议进行传输;
将所述待传输数据传输给数据处理端。
在其中的一些实施例中,所述基于所述数据传输需求对所述初始数据进行解析,得到待传输数据包括:
采用key/value方式对所述初始数据进行解析,并基于所述数据传输需求提取感兴趣数据,得到待传输数据。
在其中的一些实施例中,所述将所述待传输数据传输给数据处理端包括:
检测是否存在传输通道,若存在传输通道,则通过所述传输通道将所述待传输数据传输给数据处理端,所述传输通道为向数据处理端传输数据的连接通道;
若不存在传输通道,则基于所述数据传输需求建立传输通道并将所述待传输数据传输给数据处理端。
在其中的一些实施例中,所述将所述待传输数据传输给数据处理端还包括:
基于所述数据传输需求获取传输延时需求,所述传输延时需求包括即时传输或延时传输;
基于所述传输延时需求将所述待传输数据传输给数据处理端。
在其中的一些实施例中,所述将所述待传输数据传输给数据处理端还包括:
将所述待传输数据传入待发送队列,所述待发送队列为所述待传输数据的集合;
判断所述传输通道中是否存在已发送队列,所述已发送队列为传输通道中的正在传输的队列;
若所述传输通道中不存在所述已发送队列,则将所述待发送队列通过所述传输通道传输给所述数据处理端;
若所述传输通道中存在所述已发送队列,则中止本次传输,重新执行上述判断所述传输通道中是否存在已发送队列的步骤。
在其中的一些实施例中,所述若所述传输通道中存在所述已发送队列,则中止本次传输,重新执行上述判断所述传输通道中是否存在已发送队列的步骤还包括:
设置等待阈值,若所述待发送队列超过所述等待阈值规定的时间仍未发送,则将所述待发送队列传输给所述数据处理端或终止本次传输。
在其中的一些实施例中,所述通用通信协议包括HTTP协议、TCP协议以及UDP协议。
第二个方面,在本实施例中提供了一种数据传输装置,应用于NGINX服务器,包括:
获取模块,用于获取初始数据以及数据传输需求,所述初始数据至少包括HTTP协议报文;
解析模块,用于基于所述数据传输需求对所述初始数据进行解析,得到待传输数据,所述待传输数据可通过通用通信协议进行传输;
传输模块,用于将所述待传输数据传输给数据处理端。
第三个方面,在本实施例中提供了一种电子装置,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一个方面所述的数据传输方法。
第四个方面,在本实施例中提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一个方面所述的数据传输方法。
与相关技术相比,在本实施例中提供的数据传输方法、装置、电子装置和存储介质,获取初始数据以及数据传输需求,所述初始数据至少包括HTTP协议报文;基于所述数据传输需求对所述初始数据进行解析,得到待传输数据,所述待传输数据可通过通用通信协议进行传输;将所述待传输数据传输给数据处理端。通过获取数据传输需求并基于所述数据传输需求对初始数据进行解析,然后再传输给数据处理端,使得后端系统不需要对传输数据进行解析,解决了后端系统计算资源紧张,数据处理效率不高的问题,降低了后端系统的计算压力,提高了数据处理的效率。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是本发明一实施例的数据传输方法的终端的硬件结构图;
图2是本发明一实施例的数据传输方法的流程示意图;
图3是本发明一实施例的单个HTTP协议报文的封装结构图;
图4是本发明一实施例的单个HTTP协议报文头部的封装结构图;
图5是本发明一实施例的单个HTTP协议报文数据的封装结构图;
图6是本发明一实施例的待发送队列传输方法的流程示意图;
图7是本发明一实施例的响应队列传输方法的流程示意图;
图8是本发明一实施例的数据传输装置的结构示意图。
具体实施方式
为更清楚地理解本申请的目的、技术方案和优点,下面结合附图和实施例,对本申请进行了描述和说明。
除另作定义外,本申请所涉及的技术术语或者科学术语应具有本申请所属技术领域具备一般技能的人所理解的一般含义。在本申请中的“一”、“一个”、“一种”、“该”、“这些”等类似的词并不表示数量上的限制,它们可以是单数或者复数。在本申请中所涉及的术语“包括”、“包含”、“具有”及其任何变体,其目的是涵盖不排他的包含;例如,包含一系列步骤或模块(单元)的过程、方法和系统、产品或设备并未限定于列出的步骤或模块(单元),而可包括未列出的步骤或模块(单元),或者可包括这些过程、方法、产品或设备固有的其他步骤或模块(单元)。在本申请中所涉及的“连接”、“相连”、“耦接”等类似的词语并不限定于物理的或机械连接,而可以包括电气连接,无论是直接连接还是间接连接。在本申请中所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。通常情况下,字符“/”表示前后关联的对象是一种“或”的关系。在本申请中所涉及的术语“第一”、“第二”、“第三”等,只是对相似对象进行区分,并不代表针对对象的特定排序。
在本实施例中提供的方法实施例可以在终端、计算机或者类似的运算装置中执行。比如在终端上运行,图1是本实施例的数据传输方法的终端的硬件结构框图。如图1所示,终端可以包括一个或多个(图1中仅示出一个)处理器102和用于存储数据的存储器104,其中,处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置。上述终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述终端的结构造成限制。例如,终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示出的不同配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如在本实施例中的数据传输方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络包括终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(NetworkInterface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
请参阅图2,图2为本发明一实施例的数据传输方法的流程示意图。
在本实施例中,数据传输方法包括:
S202:获取初始数据以及数据传输需求,初始数据至少包括HTTP协议报文。
示例性地,在NGINX服务器中设置第三方模块,用于获取NGINX服务器中的数据作为初始数据,该初始数据可以是HTTP协议报文。具体的,NGINX服务器接收来自客户端的数据,生成HTTP请求对象,该HTTP请求对象包含了客户端数据的所有信息。NGINX服务器对HTTP请求对象进行处理,并依次调用与该HTTP请求对象相关的处理器。在NGINX服务器完成对客户端数据的处理工作后,第三方模块获取该HTTP请求对象,作为初始数据。可以理解的,第三方模块获取该HTTP请求对象后,需要通过HTTP协议才能将该HTTP请求对象传输给数据处理端,数据处理端需要基于HTTP协议对该HTTP请求对象进行解析后才能对该HTTP请求对象进行处理,导致数据处理端的计算资源紧张,处理效率不高。
示例性地,第三方模块还用于获取数据传输需求。具体的,数据传输需求可以基于系统配置确定,也可以人为进行设置,本发明对此不作限制。基于数据传输需求可以确定第三方模块向数据处理端传输数据时的数据格式、传输时间、传输方式等。
S204:基于数据传输需求对初始数据进行解析,得到待传输数据,待传输数据可通过通用通信协议进行传输。
示例性地,第三方模块基于数据传输需求,确定向数据处理端传输数据的数据格式、传输时间、传输方式等,在此基础上对初始数据进行解析,使得解析后的数据能够按照数据传输需求通过通用通信协议进行传输。其中,通用通信协议是指第三方模块与数据处理端之间进行数据传输的规则。若通信协议是HTTP协议,则数据处理端需要先基于HTTP协议对传输数据进行解析,导致数据处理端不能专注于数据处理的功能。同时,由于HTTP通信过程中大部分时间都是在等待数据传输,而数据的处理只需要花费少量的时间,导致基于HTTP协议对数据进行传输的效率较低。通过通用通信协议,数据处理端可以通过HTTP协议以外的其他协议接收传输数据,不需要对HTTP协议解析功能的支持。可以理解的,待传输数据可以通过TCP协议、IP协议、UDP协议等通用通信协议进行传输,而非局限于某一种通信协议。第三方模块可以基于网络配置情况和传输需求选择通信协议,也可以人为进行选择。例如,当传输小型文件时,可以选择TFTP协议作为通信协议以简化传输过程;在传输过程中出现错误需要对错误信息进行纠正时,可以选择TCP协议作为通信协议以主动纠正错误;当传输网络存在不稳定的情形时,可以选择UDP协议作为通信协议以节省网络带宽,提高缓冲速度。
S206:将待传输数据传输给数据处理端。
示例性地,第三方模块将解析后的待传输数据传输给数据处理端,数据处理端接收待传输数据,并对待传输数据进行处理。
上述数据传输方法,获取初始数据以及数据传输需求,初始数据至少包括HTTP协议报文;基于数据传输需求对初始数据进行解析,得到待传输数据,待传输数据可通过通用通信协议进行传输;将待传输数据传输给数据处理端。通过获取数据传输需求并基于数据传输需求对初始数据进行解析,然后再传输给数据处理端,使得后端系统不需要对传输数据进行解析,解决了后端系统计算资源紧张,数据处理效率不高的问题,降低了后端系统的计算压力,提高了数据处理的效率。
在另一个实施例中,基于数据传输需求对初始数据进行解析,得到待传输数据包括:
采用key/value方式对初始数据进行解析,并基于数据传输需求提取感兴趣数据,得到待传输数据。
示例性地,通过key/value方式对初始数据进行解析。其中,key是关键字,value是值,key/value是一种关键字和值对应的数据存储形式,适用于通过关键字对值进行查询。例如,key1表示“姓名”,value1表示“张三”,key2表示“年龄”,value2表示“24岁”,key1/value1和key2/value2分别表示了一种关键字和值的对应的存储形式:姓名/张三,年龄/24岁。若需要获取年龄数据,只需要访问key2所在的存储单元,就可以得到value2的年龄数据的存储单元。基于key/value方式对初始数据进行解析,可以在系统需要访问数据时直接访问对应的key,进而得到相关数据。可以理解的,本实施例还可以通过特征解析、编码解析等方法对初始数据进行解析,得到待传输数据,本发明对此不作赘述。例如,提取初始数据的数据特征并基于目标数据的特征对该数据特征进行匹配,从而得到目标数据,将该目标数据作为待传输数据。
示例性地,获取初始数据和数据传输需求后,基于数据传输需求获取初始数据中的感兴趣数据,并传输给数据处理端。基于数据传输需求提取感兴趣数据可以使得数据处理端只接收到需要的数据,避免了数据处理端需要通过HTTP协议再次对传输数据进行解析,降低了数据处理端的计算压力。
示例性地,采用key/value方式对初始数据进行解析,并基于数据传输需求提取感兴趣数据,得到待传输数据包括以下步骤:
步骤1:基于数据传输需求设置请求ID。
具体的,请求ID为表示具体的数据传输需求的标识,例如,数据处理端需要获取HTTP协议报文中的协议名、主机名、端口、对象路径等信息时,则需要对HTTP协议报文进行地址解析,此时可以将请求ID设置为地址解析。
步骤2:基于请求ID提取HTTP协议报文中感兴趣数据。
具体的,基于请求ID对HTTP协议报文进行解析,以获取感兴趣数据,得到HTTP协议报文的字段。例如,针对“http://hangzhouview.com:8080/index.htm”这条报文,基于请求ID“地址解析”,可以对其进行地址解析,得到感兴趣数据。解析后提取到的HTTP协议报文字段依次为:协议名:“http”、主机名:“hangzhouview”、端口:“8080”、对象路径:“/index.htm”。
步骤3:采用key/value方式对解析后的HTTP协议报文进行封装,得到待传输数据。
请参阅图3-5,图3为本发明一实施例的单个HTTP协议报文的封装结构图。具体的,将请求ID作为HTTP协议报文的头部数据,将提取到的感兴趣数据字段作为HTTP协议报文的主体数据,按照上述方法进行封装,得到待传输数据。图4是本发明一实施例的单个HTTP协议报文头部的封装结构图。具体的,头部数据包括头部类型、请求ID、头部长度等控制字段。其中,头部类型用来表示头部数据的数据类型,例如请求、响应、连接控制等。请求ID表示具体的数据传输需求的标识,例如“地址解析”、“域名解析”等。头部长度表示头部数据的数据长度。可以理解的,控制字段并不限于上述类型,本发明对此不作限制。图5是本发明一实施例的单个HTTP协议报文数据的封装结构图。基于请求ID对HTTP协议报文进行解析,获取到的感兴趣数据会以若干数据字段的形式呈现,对每个数据字段按照图5的格式进行封装。其中,数据名表示所传输的数据的名称,数据类型表示该数据的类型,例如整型、字符串、二进制等,数据长度表示该数据的数据长度,数据内容表示该数据的具体内容。
具体的,通过key/value方式对解析后的HTTP协议报文进行封装,在需要访问HTTP协议报文时,可以只访问key所对应的头部数据,即可获取value所对应的主体数据。在一个具体实施例中,第三方模块为数据转发端,数据转发端向数据处理端传输若干待传输数据,数据处理端接收待传输数据并进行处理,向数据转发端传输响应数据。在上述过程中,待传输数据需要和响应数据一一对应,导致数据处理端只能按照传输顺序逐个发送响应数据。通过key/value方式对解析后的HTTP协议报文进行封装后,数据处理端可以将处理完成的响应数据先传输给数据转发端,无需按照传输顺序。数据转发端在需要访问待传输数据对应的响应数据时,只需要获取待传输数据的头部数据,然后基于该头部数据在响应数据中查找对应的目标响应数据即可。
本实施例通过key/value方式对初始数据进行解析,并基于数据传输需求提取感兴趣数据,得到待传输数据,解决了当数据处理端只需要部分感兴趣数据时,直接传输原始的HTTP协议报文会导致数据冗余的问题。本实施例可以根据数据传输需求传输数据处理端感兴趣的字段,也可以传输原始的HTTP协议报文,还可以在上述传输数据上增加额外数据进行传输。同时,由于数据转发端已经基于数据传输需求对HTTP协议报文协议进行了解析,数据处理端无需对待传输数据进行解析,提高了数据处理的效率。
在另一个实施例中,将待传输数据传输给数据处理端包括:
步骤1:检测是否存在传输通道,若存在传输通道,则通过传输通道将待传输数据传输给数据处理端,传输通道为向数据处理端传输数据的连接通道;
步骤2:若不存在传输通道,则基于数据传输需求建立传输通道并将待传输数据传输给数据处理端。
示例性地,在传输待传输数据时,第三方模块先检测其与数据处理端之间是否存在传输通道,该传输通道可以是基于TCP协议的连接通道,也可以是基于其他协议的连接通道,本发明对此不作限制。若第三方模块检测到传输通道,此时该传输通道可以作为第三方模块向数据处理端传输待传输数据的连接通道,因此可以直接通过该传输通道将待传输数据发送给数据处理端。若第三方模块没有检测到传输通道,由于第三方模块和数据处理端之间没有可以直接传输待传输数据的连接通道,因此需要先基于传输协议建立传输通道,然后再将待传输数据通过建立的传输通道传输给数据处理端。
在一个具体实施例中,传输通道为TCP连接通道。第三方模块向数据处理端发送检测报文,用以检测第三方模块和数据处理端之间是否存在TCP连接通道。若在规定时间内第三方模块没有接收到数据处理端反馈的响应报文,则表明第三方模块和数据处理端之间不存在TCP连接通道,因此需要在第三方模块和数据处理端之间建立TCP连接通道。具体的,数据处理端进入监听状态,用以准备接受来自第三方模块的连接;第三方模块调用CONNECT进行主动连接,数据处理端获取将在TCP连接通道中发送的数据的初始序列号;数据处理端确认初始序列号,同时在同一连接中发送包含初始序列号的报文;第三方模块收到响应报文后,发送确认报文,并建立TCP连接;数据处理端收到确认报文后,建立TCP连接。至此,第三方模块与数据处理端之间建立连接通道,第三方模块可基于该连接通道将待传输数据传输给数据处理端。
在另一个实施例中,将待传输数据传输给数据处理端还包括:
步骤1:基于数据传输需求获取传输延时需求,传输延时需求包括即时传输或延时传输;
步骤2:基于传输延时需求将待传输数据传输给数据处理端。
具体的,根据当前的网络配置,确定数据传输延时需求。在一个具体实施例中,根据网络拥塞程度和网络传输功率,确定数据传输延时需求。如果当前网络传输通道不存在拥塞情形,则获取即时传输需求,将待传输数据通过传输通道直接传输给数据处理端。如果当前网络中存在拥塞情形,则获取延时传输需求,等待传输。网络中的拥塞程度越高,网络传输功率越低,延时传输需求中的等待时间越长。
本实施例通过获取传输延时需求,从而可以更加合理的分配网络资源,在网络传输通道空载时即时传输数据,在网络传输通道拥塞时合理规划,延时传输数据,避免大量数据同时涌入传输通道。
在另一个实施例中,将待传输数据传输给数据处理端包括:
步骤1:将待传输数据传入待发送队列,待发送队列为待传输数据的集合;
步骤2:判断传输通道中是否存在已发送队列,已发送队列为传输通道中的正在传输的队列;
步骤3:若传输通道中不存在已发送队列,则将待发送队列通过传输通道传输给数据处理端;
步骤4:若传输通道中存在已发送队列,则中止本次传输,重新执行上述判断传输通道中是否存在已发送队列的步骤。
请参见图6,图6是本发明一实施例的待发送队列传输方法的流程示意图。示例性地,待传输数据为数据转发端解析HTTP协议报文得到的HTTP请求。将HTTP请求传入待发送队列,该待发送队列可以理解为一个HTTP请求的集合。数据转发端获取传输通道的配置情况,判断传输通道中是否存在已经发送的请求队列。如果传输通道中不存在上述请求队列,则直接将待发送队列通过传输通道传输给数据处理端。如果传输通道中已经存在请求队列,则暂停本次传输,在经过一定的时间间隔后重新判断传输通道中是否存在已发送的请求队列,并执行上述步骤。
可以理解的,若数据转发端传输的是单个HTTP请求,在每次与数据处理端交互存在拥塞情形时都需要等待传输通道空置,无法充分利用传输通道资源。而且,当系统中存在大量并发的HTTP请求时,会产生大量的传输通道。本实施例通过队列的形式传输数据,交互一次可以传输多个HTTP请求,不仅大幅降低了等待传输的时间,而且只需要使用一条传输通道即可,降低了对网络资源的消耗。
可选的,本实施例还公开了数据处理端接收响应队列的过程。请参见图7,图7是本发明一实施例的响应队列传输方法的流程示意图。数据转发端在将待发送队列传输给数据处理端后,将该待发送队列保存为待处理队列。数据处理端接收待发送队列后对发送队列中的HTTP请求进行处理,处理完成后向数据转发端传输响应队列。数据转发端在收到接收响应队列的指令后,将响应队列中的响应数据的请求ID与待处理队列中的HTTP请求的请求ID进行匹配。如果响应队列中的请求ID能够与待处理队列中的请求ID进行匹配,则说明该响应队列是该待处理队列对应的响应队列,数据转发端基于匹配结果确定返回值,该返回值可以用于确定数据转发端是接收该响应队列,还是拒接接收该响应队列。如果响应队列中的请求ID不能与待处理队列中的请求ID进行匹配,说明该响应队列是错误数据,数据处理端执行放弃操作。可以理解的,请求ID是HTTP请求和响应数据的头部数据,基于key/value的方式进行查找和匹配时,不需要响应队列中的响应数据和待处理队列中的HTTP请求的顺序一致,只需要保证每个HTTP请求都能在响应队列中找到对应且唯一的响应数据即可,从而使得数据处理端不需要按照顺序逐个处理和传输,提高了数据处理和传输的效率。
可选的,本实施例还公开了关闭传输通道的方法。具体的,当检测到发送队列为空时,设置时间阈值,在超过时间阈值规定的时间后对当前发送队列再次进行检测。若当前发送队列为空,则关闭当前的传输通道,从而减少网络资源的占用。
在一个实施例中,若传输通道中存在已发送队列,则中止本次传输,重新执行上述判断传输通道中是否存在已发送队列的步骤还包括:
设置等待阈值,若待发送队列超过等待阈值规定的时间仍未发送,则将待发送队列传输给数据处理端或终止本次传输。
具体的,当待发送队列长时间未能传输时,可能是传输通道存在拥塞或者传输通道判断出现错误等情形。因此,根据系统中的配置情况,直接将待发送队列传输给数据处理端,或者终止本次传输。
在一个实施例中,通用通信协议包括HTTP协议、TCP协议以及UDP协议。
可以理解的,通用通信协议包括HTTP协议、TCP/IP协议、UDP协议、ICMP协议等,本发明对此不作限制。
需要说明的是,在上述流程中或者附图中的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或者描述的步骤。
在本实施例中还提供了一种数据传输装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。以下所使用的术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管在以下实施例中所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图8是本实施例的数据传输装置的结构框图,如图8所示,该装置包括:
获取模块,用于获取初始数据以及数据传输需求,初始数据至少包括HTTP协议报文;
解析模块,用于基于数据传输需求对初始数据进行解析,得到待传输数据,待传输数据可通过通用通信协议进行传输;
解析模块,还用于采用key/value方式对初始数据进行解析,并基于数据传输需求提取感兴趣数据,得到待传输数据;
传输模块,用于将待传输数据传输给数据处理端;
传输模块,还用于检测是否存在传输通道,若存在传输通道,则通过传输通道将待传输数据传输给数据处理端,传输通道为向数据处理端传输数据的连接通道;
若不存在传输通道,则基于数据传输需求建立传输通道并将待传输数据传输给数据处理端;
传输模块,还用于基于数据传输需求获取传输延时需求,传输延时需求包括即时传输或延时传输;
基于传输延时需求将待传输数据传输给数据处理端;
传输模块,还用于将待传输数据传入待发送队列,待发送队列为待传输数据的集合;
判断传输通道中是否存在已发送队列,已发送队列为传输通道中的正在传输的队列;
若传输通道中不存在已发送队列,则将待发送队列通过传输通道传输给数据处理端;
若传输通道中存在已发送队列,则中止本次传输,重新执行上述判断传输通道中是否存在已发送队列的步骤;
传输模块,还用于设置等待阈值,若待发送队列超过等待阈值规定的时间仍未发送,则将待发送队列传输给数据处理端或终止本次传输;
需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
在本实施例中还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,获取初始数据以及数据传输需求,初始数据至少包括HTTP协议报文;
S2,基于数据传输需求对初始数据进行解析,得到待传输数据,待传输数据可通过通用通信协议进行传输;
S3,将待传输数据传输给数据处理端。
需要说明的是,在本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,在本实施例中不再赘述。
此外,结合上述实施例中提供的数据传输方法,在本实施例中还可以提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种数据传输方法。
应该明白的是,这里描述的具体实施例只是用来解释这个应用,而不是用来对它进行限定。根据本申请提供的实施例,本领域普通技术人员在不进行创造性劳动的情况下得到的所有其它实施例,均属本申请保护范围。
显然,附图只是本申请的一些例子或实施例,对本领域的普通技术人员来说,也可以根据这些附图将本申请适用于其他类似情况,但无需付出创造性劳动。另外,可以理解的是,尽管在此开发过程中所做的工作可能是复杂和漫长的,但是,对于本领域的普通技术人员来说,根据本申请披露的技术内容进行的某些设计、制造或生产等更改仅是常规的技术手段,不应被视为本申请公开的内容不足。
“实施例”一词在本申请中指的是结合实施例描述的具体特征、结构或特性可以包括在本申请的至少一个实施例中。该短语出现在说明书中的各个位置并不一定意味着相同的实施例,也不意味着与其它实施例相互排斥而具有独立性或可供选择。本领域的普通技术人员能够清楚或隐含地理解的是,本申请中描述的实施例在没有冲突的情况下,可以与其它实施例结合。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对专利保护范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (9)

1.一种数据传输方法,应用于NGINX服务器,其特征在于,包括:
基于第三方模块获取初始数据以及数据传输需求,所述初始数据至少包括HTTP协议报文,所述第三方模块设置于NGINX服务器中;
基于所述数据传输需求对所述初始数据进行解析,得到待传输数据,所述待传输数据可通过通用通信协议进行传输;
将所述待传输数据传输给数据处理端;
所述基于所述数据传输需求对所述初始数据进行解析,得到待传输数据包括:
采用key/value方式对所述初始数据进行解析,并基于所述数据传输需求提取感兴趣数据,得到待传输数据。
2.根据权利要求1所述的数据传输方法,其特征在于,所述将所述待传输数据传输给数据处理端包括:
检测是否存在传输通道,若存在传输通道,则通过所述传输通道将所述待传输数据传输给数据处理端,所述传输通道为向数据处理端传输数据的连接通道;
若不存在传输通道,则基于所述数据传输需求建立传输通道并将所述待传输数据传输给数据处理端。
3.根据权利要求1所述的数据传输方法,其特征在于,所述将所述待传输数据传输给数据处理端还包括:
基于所述数据传输需求获取传输延时需求,所述传输延时需求包括即时传输或延时传输;
基于所述传输延时需求将所述待传输数据传输给数据处理端。
4.根据权利要求1所述的数据传输方法,其特征在于,所述将所述待传输数据传输给数据处理端还包括:
将所述待传输数据传入待发送队列,所述待发送队列为所述待传输数据的集合;
判断传输通道中是否存在已发送队列,所述已发送队列为传输通道中的正在传输的队列;
若所述传输通道中不存在所述已发送队列,则将所述待发送队列通过所述传输通道传输给所述数据处理端;
若所述传输通道中存在所述已发送队列,则中止本次传输,重新执行上述判断所述传输通道中是否存在已发送队列的步骤。
5.根据权利要求4所述的数据传输方法,其特征在于,所述若所述传输通道中存在所述已发送队列,则中止本次传输,重新执行上述判断所述传输通道中是否存在已发送队列的步骤还包括:
设置等待阈值,若所述待发送队列超过所述等待阈值规定的时间仍未发送,则将所述待发送队列传输给所述数据处理端或终止本次传输。
6.根据权利要求1所述的数据传输方法,其特征在于,所述通用通信协议包括HTTP协议、TCP协议以及UDP协议。
7.一种数据传输装置,应用于NGINX服务器,其特征在于,包括:
获取模块,用于基于第三方模块获取初始数据以及数据传输需求,所述初始数据至少包括HTTP协议报文,所述第三方模块设置于NGINX服务器中;
解析模块,用于基于所述数据传输需求对所述初始数据进行解析,得到待传输数据,所述待传输数据可通过通用通信协议进行传输;
传输模块,用于将所述待传输数据传输给数据处理端;
所述解析模块,还用于采用key/value方式对所述初始数据进行解析,并基于所述数据传输需求提取感兴趣数据,得到待传输数据。
8.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1至6中任一项所述的数据传输方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的数据传输方法的步骤。
CN202110650193.5A 2021-06-10 2021-06-10 数据传输方法、装置、电子装置和存储介质 Active CN113422760B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110650193.5A CN113422760B (zh) 2021-06-10 2021-06-10 数据传输方法、装置、电子装置和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110650193.5A CN113422760B (zh) 2021-06-10 2021-06-10 数据传输方法、装置、电子装置和存储介质

Publications (2)

Publication Number Publication Date
CN113422760A CN113422760A (zh) 2021-09-21
CN113422760B true CN113422760B (zh) 2023-04-07

Family

ID=77788281

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110650193.5A Active CN113422760B (zh) 2021-06-10 2021-06-10 数据传输方法、装置、电子装置和存储介质

Country Status (1)

Country Link
CN (1) CN113422760B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114039963A (zh) * 2021-11-08 2022-02-11 浙江岩华文化科技有限公司 数据传输方法、装置、电子装置和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110022289A (zh) * 2018-01-10 2019-07-16 北龙中网(北京)科技有限责任公司 数据传输方法、装置及系统
CN110493030A (zh) * 2019-07-05 2019-11-22 中国平安财产保险股份有限公司 网络优化方法、装置、计算机设备及存储介质
US10574794B1 (en) * 2019-07-12 2020-02-25 Coupang Corp. Systems and methods for interfacing networks regardless of communication scheme
CN111857737A (zh) * 2020-07-28 2020-10-30 苏州华望信息科技有限公司 基于SysML模型语义web系统的动静态资源分离方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101986659B (zh) * 2010-10-27 2014-04-16 青岛普加智能信息有限公司 数据实时传输的方法及系统
CN105577431A (zh) * 2015-12-11 2016-05-11 青岛云成互动网络有限公司 一种基于互联网应用的用户信息识别分类方法和系统
CN106411907A (zh) * 2016-10-13 2017-02-15 广西咪付网络技术有限公司 一种数据传输方法和系统
US11146508B2 (en) * 2017-05-12 2021-10-12 Xilinx, Inc. Data processing system
US11704300B2 (en) * 2017-06-23 2023-07-18 Charter Communications Operating, Llc Apparatus and methods for packetized data management and delivery in a digital content distribution network
CN108111634B (zh) * 2018-02-28 2020-11-20 北京焦点新干线信息技术有限公司 一种基于websocket协议与http协议的即时数据传输方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110022289A (zh) * 2018-01-10 2019-07-16 北龙中网(北京)科技有限责任公司 数据传输方法、装置及系统
CN110493030A (zh) * 2019-07-05 2019-11-22 中国平安财产保险股份有限公司 网络优化方法、装置、计算机设备及存储介质
US10574794B1 (en) * 2019-07-12 2020-02-25 Coupang Corp. Systems and methods for interfacing networks regardless of communication scheme
CN111857737A (zh) * 2020-07-28 2020-10-30 苏州华望信息科技有限公司 基于SysML模型语义web系统的动静态资源分离方法

Also Published As

Publication number Publication date
CN113422760A (zh) 2021-09-21

Similar Documents

Publication Publication Date Title
CN107911237B (zh) 一种基于dpdk的用户空间内数据包快速检测方法
CN113411313B (zh) 数据传输方法、装置和系统
US20130094501A1 (en) Processing data packets in performance enhancing proxy (pep) environment
CN106612284B (zh) 一种流数据的传输方法和装置
US20140317071A1 (en) Method and device for transferring file
JP2002538731A (ja) 高性能ネットワークインターフェースにおけるダイナミックな構文解析
CN113835902B (zh) 一种数据处理方法、装置、计算机设备及存储介质
EP2868066B1 (en) Method for socket management involving a bearer independent protocol
CN113422760B (zh) 数据传输方法、装置、电子装置和存储介质
JP2002538721A (ja) 高性能ネットワークインターフェースにおけるネットワークトラフィックを分類するための方法および装置
CN111277599B (zh) 一种远程调用处理方法及装置
CN111064729B (zh) 报文的处理方法及装置、存储介质和电子装置
CN112436998A (zh) 一种数据传输方法及电子设备
WO2023125056A1 (zh) 网络数据的控制方法、装置和存储介质及电子设备
WO2023173876A1 (zh) 数据通信方法、装置、设备和介质
CN114338477B (zh) 一种通信链路监控方法、装置、设备及存储介质
US9577669B2 (en) Methods, systems, and computer readable media for optimized message decoding
CN109766347B (zh) 一种数据更新方法、装置、系统、计算机设备及存储介质
CN112989315B (zh) 物联网终端的指纹生成方法、装置、设备和可读存储介质
CN111526137B (zh) 兼容服务器和客户端模式的网络加速器及数据处理方法
CN110493081B (zh) 游戏客户端的网络流量确定方法、装置、设备及存储介质
CN113630417A (zh) 基于waf的数据发送方法、装置、电子装置和存储介质
CN113490154A (zh) 广播数据传输方法、装置、终端设备及存储介质
CN107548105B (zh) 一种基于udp的数据传输确认方法和基站
CN115801629B (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
GR01 Patent grant
GR01 Patent grant