CN112532714A - 一种数据处理方法、处理装置、服务器及存储介质 - Google Patents

一种数据处理方法、处理装置、服务器及存储介质 Download PDF

Info

Publication number
CN112532714A
CN112532714A CN202011338455.6A CN202011338455A CN112532714A CN 112532714 A CN112532714 A CN 112532714A CN 202011338455 A CN202011338455 A CN 202011338455A CN 112532714 A CN112532714 A CN 112532714A
Authority
CN
China
Prior art keywords
data
communication link
rule table
quintuple
forwarding
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
Application number
CN202011338455.6A
Other languages
English (en)
Other versions
CN112532714B (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.)
Beijing Kingsoft Cloud Network Technology Co Ltd
Original Assignee
Beijing Kingsoft Cloud Network Technology 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 Beijing Kingsoft Cloud Network Technology Co Ltd filed Critical Beijing Kingsoft Cloud Network Technology Co Ltd
Priority to CN202011338455.6A priority Critical patent/CN112532714B/zh
Publication of CN112532714A publication Critical patent/CN112532714A/zh
Application granted granted Critical
Publication of CN112532714B publication Critical patent/CN112532714B/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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1031Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests

Abstract

本发明实施例提供了一种数据处理方法、处理装置、服务器及存储介质,其中方法包括:接收数据发送端通过第一通信链路发送的流量数据,并获取第一通信链路的数据流向标识;在第一通信链路的数据流向标识存在于预先建立的数据转发规则表中的情况下,通过数据流向标识在数据转发规则表中查找与数据发送端对应的数据接收端;利用内核态的内核虚拟机将流量数据通过第二通信链路转发至查找到的数据接收端。本发明实施例的数据处理方法能够进一步提高负载均衡服务器的数据转发速度。

Description

一种数据处理方法、处理装置、服务器及存储介质
技术领域
本发明涉及网络通信技术领域,特别是涉及一种数据处理方法、处理装置、服务器及存储介质。
背景技术
负载均衡服务器是对多台后端服务器进行流量分发的网络服务设备,它通常以中间代理的方式对客户端与业务服务器之间的WebSocket链路中的数据进行转发。其中WebSocket是一种在TCP(Transmission Control Protocol,传输控制协议)连接上进行全双工通信的协议。
现有的基于Tengine的负载均衡服务器进行WebSocket链路数据转发的具体过程为:负载均衡服务器转发由客户端发送的WebSocket握手报文至业务服务器,使业务服务器与客户端之间建立WebSocket连接,然后对业务服务器与客户端之间的数据进行转发。Tengine是一项开源的Web服务器技术,它在Nginx(一种Web服务器技术)的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。
由于Tengine的技术特性,基于Tengine的负载均衡服务器需要在用户态进行数据转发,当负载均衡服务器从网卡接收数据后数据缓存于内核态内存空间,这就存在一个数据从内核态的内存空间拷贝至用户态的内存空间的过程,这对负载均衡服务器的性能损耗较大,使得负载均衡服务器的数据转发速度下降。
发明内容
本发明实施例的目的在于提供一种数据处理方法、处理装置、服务器及存储介质,以进一步提高负载均衡服务器的数据转发速度。具体技术方案如下:
第一方面,本发明实施例提供了一种数据处理方法,所述方法应用于基于Tengine的负载均衡服务器,所述方法包括:
接收数据发送端通过第一通信链路发送的流量数据,并获取所述第一通信链路的数据流向标识,所述数据发送端为客户端或业务服务器;
在所述第一通信链路的数据流向标识存在于预先建立的数据转发规则表中的情况下,通过所述数据流向标识在所述数据转发规则表中查找与所述数据发送端对应的数据接收端;所述数据转发规则表中记录有:所述第一通信链路的数据流向标识与第二通信链路的数据流向标识之间的对应关系,其中,所述第一通信链路和所述第二通信链路分别位于所述负载均衡服务器的数据接收侧和数据转发侧;
利用内核态的内核虚拟机将所述流量数据通过所述第二通信链路转发至查找到的数据接收端,。
可选的,所述方法应用于基于Tengine的负载均衡服务器,所述方法包括:
接收数据发送端通过第一通信链路发送的流量数据,并获取所述第一通信链路的数据流向标识,所述数据发送端为客户端或业务服务器;
在所述第一通信链路的数据流向标识存在于预先建立的数据转发规则表中的情况下,通过所述数据流向标识在所述数据转发规则表中查找与所述数据发送端对应的数据接收端;所述数据转发规则表中记录有:所述第一通信链路的数据流向标识与第二通信链路的数据流向标识之间的对应关系,其中,所述第一通信链路和所述第二通信链路分别位于所述负载均衡服务器的数据接收侧和数据转发侧;
利用内核态的内核虚拟机将所述流量数据通过所述第二通信链路转发至查找到的数据接收端,。
可选的,所述接收数据发送端通过第一通信链路发送的流量数据,并获取所述第一通信链路的数据流向标识之前,所述方法还包括:
接收客户端发送的WebSocket握手报文;
基于各个业务服务器的运行状态,确定待与所述客户端建立WebSocket连接的目的业务服务器,并建立所述数据转发规则表;
将所述WebSocket握手报文转发至所述目的业务服务器,使所述目的业务服务器与所述客户端之间建立WebSocket连接。
可选的,所述接收数据发送端通过第一通信链路发送的流量数据,并获取所述第一通信链路的数据流向标识的步骤,包括:
接收客户端通过第一通信链路发送的第一流量数据并获取所述第一通信链路的数据流向标识;
则所述在所述第一通信链路的数据流向标识存在于预先建立的数据转发规则表中的情况下,通过所述数据流向标识在所述数据转发规则表中查找与所述数据发送端对应的数据接收端的步骤,包括:
在预先建立的数据转发规则表中记录有所述第一通信链路的数据流向标识的情况下,确定所述第一通信链路和所述第二通信链路组成WebSocket连接;
则所述利用内核态的内核虚拟机将所述流量数据通过所述第二通信链路转发至查找到的数据接收端的步骤,包括:
利用内核态的内核虚拟机将所述第一流量数据通过所述第二通信链路转发至目的业务服务器。
可选的,所述方法还包括:
接收目的服务器通过所述第二通信链路返回的第二流量数据,并利用内核态的内核虚拟机将所述第二流量数据通过所述第一通信链路转发至所述客户端。
可选的,所述建立所述数据转发规则表的步骤,包括:
在所述内核虚拟机的内核态内存空间中建立所述数据转发规则表。
可选的,所述方法还包括:
接收客户端发送的WebSocket连接释放报文;
将所述WebSocket连接释放报文转发至与所述客户端对应的目的业务服务器;
在所述数据转发规则表中删除组成所述WebSocket连接的第一通信链路和第二通信链路的五元组。
第二方面,本发明实施例提供了一种数据处理装置,所述装置应用于基于Tengine的负载均衡服务器,所述装置包括:
第一接收模块,用于接收数据发送端通过第一通信链路发送的流量数据,并获取所述第一通信链路的数据流向标识,所述数据发送端为客户端或业务服务器;
查找模块,用于在所述第一通信链路的数据流向标识存在于预先建立的数据转发规则表中的情况下,通过所述数据流向标识在所述数据转发规则表中查找与所述数据发送端对应的数据接收端;所述数据转发规则表中记录有:所述第一通信链路的数据流向标识与第二通信链路的数据流向标识之间的对应关系,其中,所述第一通信链路和所述第二通信链路分别位于所述负载均衡服务器的数据接收侧和数据转发侧;
第一转发模块,用于利用内核态的内核虚拟机将所述流量数据通过所述第二通信链路转发至查找到的数据接收端,。
可选的,所述数据流向标识为五元组,所述数据转发规则表中记录有:第一五元组与第二五元组之间的对应关系,所述第一五元组为所述第一通信链路的五元组,所述第二五元组为第二通信链路的五元组,所述装置还包括:
判断模块,用于判断所述数据转发规则表中是否记录有所述第一五元组;
则所述查找模块具体用于:
如果所述数据转发规则表中记录有所述第一五元组,则在所述数据转发规则表中查找与所述第一五元组对应的第二五元组;
根据所述第二五元组中的信息确定待进行数据转发的数据接收端。
第二转发模块,用于如果所述数据转发规则表中未记录所述第一五元组,则通过负载均衡服务器的系统内核网络协议栈对所述流量数据进行转发。
可选的,所述装置还包括:
第二接收模块,用于接收客户端发送的WebSocket握手报文;
建立模块,用于基于各个业务服务器的运行状态,确定待与所述客户端建立WebSocket连接的目的业务服务器,并建立所述数据转发规则表;
第三转发模块,用于将所述WebSocket握手报文转发至所述目的业务服务器,使所述目的业务服务器与所述客户端之间建立WebSocket连接。
可选的,所述第一接收模块具体用于:
接收客户端通过第一通信链路发送的第一流量数据;
则所述查找模块具体用于:
在预先建立的数据转发规则表中记录有所述第一通信链路的数据流向标识的情况下,确定所述第一通信链路和所述第二通信链路组成WebSocket连接;
则所述第一转发模块具体用于:
利用内核态的内核虚拟机将所述第一流量数据通过所述第二通信链路转发至目的业务服务器。
可选的,所述第一转发模块具体用于:
接收目的服务器通过所述第二通信链路返回的第二流量数据,并利用内核态的内核虚拟机将所述第二流量数据通过所述第一通信链路转发至所述客户端。
可选的,所述建立模块具体用于:
在所述内核虚拟机的内核态内存空间中建立所述数据转发规则表。
可选的,所述第一接收模块具体用于:
接收客户端发送的WebSocket连接释放报文;
所述第一转发模块具体用于:
将所述WebSocket连接释放报文转发至与所述客户端对应的目的业务服务器;
所述装置还包括:
删除模块,用于在所述数据转发规则表中删除组成所述WebSocket连接的第一通信链路和第二通信链路的五元组。
第三方面,本发明实施例提供了一种服务器,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令以实现上述第一方面提供的数据处理方法的方法步骤。
第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现上述第一方面提供的数据处理方法的方法步骤。
第五方面,本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面提供的数据处理方法的方法步骤。
第六方面,本发明实施例还提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面提供的数据处理方法的方法步骤。
本发明实施例提供的一种数据处理方法、处理装置、服务器及存储介质,由于负载均衡服务器中预先建立有数据转发规则表,该数据转发规则表中记录有第一通信链路的数据流向标识与第二通信链路的数据流向标识之间的对应关系,因此在负载均衡服务器接收数据发送端通过第一通信链路发送的流量数据,并获取所述第一通信链路的数据流向标识后,能够直接利用数据流向标识在数据转发规则表中查找与该数据发送端对应的数据接收端。并且,本发明实施例利用内核态的内核虚拟机,直接将流量数据在内核态转发至上述查找到的数据接收端,不需要再在用户态进行数据转发,省去了流量数据从内核态的内存空间拷贝至用户态的内存空间的过程,降低了负载均衡服务器因拷贝过程而产生的性能损耗,使得负载均衡服务器的数据转发速度得到进一步提高。并且,由于本发明实施例在内核态对流量数据进行转发,因此转发过程中不再依赖内核协议栈上层的Socket(套接字)等数据结构,Tengine进程可以无需等待与业务流量处理相关的进程退出即可释放Tengine进程所持有的Socket等资源,不会影响与业务流量处理相关的进程,因此更容易实现与业务流量处理相关的进程的平滑退出、升级、改变配置等操作,提高了对与业务流量处理相关的进程操作的灵活程度。当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的数据处理方法的第一种流程示意图;
图2为本发明实施例提供的数据处理方法的第二种流程示意图;
图3为本发明实施例提供的数据处理方法的第三种流程示意图;
图4为本发明实施例提供的数据处理方法的第四种流程示意图;
图5为本发明实施例的数据处理方法中流量数据流经路径示意图;
图6为现有的数据处理方法中流量数据流经路径示意图;
图7为本发明实施例提供的数据处理装置的第一种结构示意图;
图8为本发明实施例提供的数据处理装置的第二种结构示意图;
图9为本发明实施例提供的数据处理装置的第三种结构示意图;
图10为本发明实施例提供的一种服务器的结构示意图;。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种数据处理方法,该方法可以包括以下步骤:
S101,接收数据发送端通过第一通信链路发送的流量数据,并获取第一通信链路的数据流向标识。
本发明实施例可以应用于基于Tengine技术的负载均衡服务器,负载均衡服务器用于转发客户端与业务服务器之间的业务流量数据,下文简称为流量数据。本发明实施例的客户端可以是用户终端中的某个应用程序(APP),用户终端例如可以是智能手机、平板电脑等安装有操作系统的用户端设备,业务服务器可以是用于处理真实业务的服务器,因此也可以称为真实服务器。可以理解的是,客户端可以与业务服务器之间进行数据交互,即,客户端可以向业务服务器发送数据,业务服务器也可以向客户端回传数据,因此对于负载均衡服务器而言,本发明实施例的数据发送端可以是客户端,也可以是业务服务器。
负载均衡服务器作为转发节点,它与客户端之间形成了一条通信链路,它与业务服务器之间也形成了一条通信链路,下文将以第一通信链路和第二通信链路进行区分,这两条通信链路共同组成了客户端与业务服务器之间的数据传输通道。
数据流向标识可以用于标识通信链路的数据流向,例如一条通信链路的数据流向是从A节点到B节点,则可以将A节点和B节点的节点信息作为数据流向标识,上述节点信息中例如可以包括节点的IP地址,节点的端口号等信息。
S102,在第一通信链路的数据流向标识存在于预先建立的数据转发规则表中的情况下,通过数据流向标识在数据转发规则表中查找与数据发送端对应的数据接收端。
本发明实施例可以预先建立一张数据转发规则表,该数据转发规则表中记录有:第一通信链路的数据流向标识与第二通信链路的数据流向标识之间的对应关系。这样在获取第一通信链路的数据流向标识后,便可以在该数据转发规则表中通过上述数据流向标识查找到与数据发送端对应的数据接收端。并且,本发明实施例中的数据转发规则表记录的可以是已建立WebSocket连接的通信链路之间的对应关系,未建立WebSocket连接的通信链路则不记录其中,从而使本发明实施例的数据处理方法可以更好地用于需要保持长连接的应用场景,如视频直播、在线游戏等应用场景。
不难理解的是,上述数据转发规则表中所记录的对应关系可以是双向的,具体地,数据转发规则表中可以记录有:当流量数据从客户端发送至业务服务器时,客户端和负载均衡服务器组成的通信链路的数据流向标识,与负载均衡服务器和业务服务器组成的通信链路的数据流向标识之间的对应关系;以及,当流量数据从业务服务器发送至客户端时,业务服务器和负载均衡服务器组成的通信链路的数据流向标识,与负载均衡服务器和客户端组成的通信链路的数据流向标识之间的对应关系。这种对应关系可以用于指示流量数据的转发路径。
可见,本发明实施例所指的第一通信链路和第二通信链路,可以分别位于负载均衡服务器的数据接收侧和数据转发侧。
S103,利用内核态的内核虚拟机将流量数据通过第二通信链路转发至查找到的数据接收端。
现有的基于Tengine的负载均衡服务器通常是在用户态进行流量数据的转发,而本发明实施例在查找到数据接收端后,巧妙地将流量数据利用内核态的内核虚拟机进行转发,省去了流量数据从内核态的内存空间拷贝至用户态的内存空间的过程。具体地,可以在负载均衡服务器上安装eBPF(extended Berkeley Packet Filter,伯克利扩展数据包过滤器)框架,再利用eBPF框架在负载均衡服务器中创建内核虚拟机,该内核虚拟机运行在内核态,然后将流量数据通过内核虚拟机转发至对应的数据接收端。eBPF起源于BPF(BerkeleyPacket Filter,伯克利数据包过滤器),它提供了内核的数据包过滤机制,eBPF可以在Linux内核中运行沙盒程序,而无需更改内核源代码或加载内核模块。eBPF为现有技术,用于实现本发明实施例中的内核虚拟机。
负载均衡服务器中的网卡在接收流量数据后通常缓存在内核态的内存空间,通过本发明实施例,负载均衡服务器无需再将流量数据从内核态的内存空间拷贝至用户态的内存空间,而是直接在内核态的内存空间中进行处理。可见,本发明实施例省去了流量数据从内核态的内存空间拷贝至用户态的内存空间的过程,降低了负载均衡服务器因上述拷贝过程而带来的性能损耗,使得负载均衡服务器的数据转发速度得到进一步提高。
作为本发明实施例一种可选的实施方式,数据流向标识具体可以为五元组,则数据转发规则表中具体可以记录有:第一五元组与第二五元组之间的对应关系。其中,第一五元组可以为第一通信链路的五元组,即负载均衡服务器的数据接收侧通信链路的五元组,第二五元组可以为第二通信链路的五元组,即负载均衡服务器的数据转发侧通信链路的五元组。五元组为通信术语,通常包含源IP地址,源端口,目的IP地址,目的端口和传输层协议五项信息。其中,当客户端向业务服务器发送流量数据时,第一五元组中可以包含:客户端的IP地址,客户端的端口号,负载均衡服务器的IP地址,负载均衡服务器的的端口号,以及传输层协议(例如TCP协议);第二五元组中可以包含:负载均衡服务器的IP地址,负载均衡服务器的端口号,业务服务器的IP地址,业务服务器的端口号,以及传输层协议。当业务服务器向客户端发送流量数据时,第一五元组中可以包含:业务服务器的IP地址,业务服务器的端口号,负载均衡服务器的IP地址,负载均衡服务器的端口号,以及传输层协议;第二五元组中可以包含:负载均衡服务器的IP地址,负载均衡服务器的的端口号,客户端的IP地址,客户端的端口号,以及传输层协议。
作为本发明实施例一种可选的实施方式,如图2所示,该数据处理方法还可以包括:
S201,判断数据转发规则表中是否记录有第一五元组。
该步骤可以在上述步骤S101之后进行。负载均衡服务器可以判断数据转发规则表中是否记录有上述第一五元组,从而根据判断结果执行不同的步骤。
S202,如果数据转发规则表中记录有第一五元组,则在数据转发规则表中查找与第一五元组对应的第二五元组。
S203,根据第二五元组中的信息确定待进行数据转发的数据接收端。
如前文所述,五元组中记录有源IP地址,源端口,目的IP地址,目的端口等信息,因此,本发明实施例可以在数据转发规则表中查找与第一五元组对应的第二五元组,再根据第二五元组中的信息确定待进行数据转发的数据接收端,然后再将流量数据利用内核态的内核虚拟机转发至确定好的数据接收端,从而提高流量数据的转发速度。
S204,如果数据转发规则表中未记录第一五元组,则通过负载均衡服务器的系统内核网络协议栈对流量数据进行转发。
如果数据转发规则表中未记录第一五元组,表明该五元组的链路不是WebSocket链路,无需在内核态对流量数据进行转发,因此,可以通过负载均衡服务器的系统内核网络协议栈对流量数据进行转发,利用系统内核网络协议栈进行数据转发为现有技术,本发明实施例不再赘述。
作为本发明实施例一种可选的实施方式,如图3所示,该数据处理方法还可以包括:
S301,接收客户端发送的WebSocket握手报文。
该步骤可以在上述步骤S101之前进行。当客户端需要与业务服务器建立WebSocket连接时,可以向业务服务器发送WebSocket握手报文,则负载均衡服务器可以接收该WebSocket握手报文。
S302,基于各个业务服务器的运行状态,确定待与客户端建立WebSocket连接的目的业务服务器,并建立数据转发规则表。
本发明实施例中,可以存在多个能够为客户端提供服务的业务服务器,为了更好的为客户端提供服务,负载均衡服务器可以检测各个业务服务器的运行状态,例如业务服务器当前的负载情况、内存占用率等,从而确定出一台用于与客户端建立WebSocket连接的业务服务器,即待与客户端建立WebSocket连接的目的业务服务器。通常而言,负载均衡服务器应该选择运行状态良好的服务器为客户端提供服务,例如负载低的、内存占用率低的服务器。
负载均衡服务器此时便已确定了客户端-负载均衡服务器-业务服务器之间的WebSocket连接通道,如果还未建立数据转发规则表,则可以建立数据转发规则表,并将第一五元组与第二五元组之间的对应关系记录在数据转发规则表中;如果已经建立建立了数据转发规则表,则可以直接将上述第一五元组与第二五元组之间的对应关系添加在数据转发规则表中。具体地,上述对应关系可以以第一五元组为key(键),第二五元组为value(值)的方式,即key-value方式保存在数据转发规则表中。
作为本发明实施例一种可选的实施方式,可以在内核虚拟机的内核态内存空间中建立数据转发规则表,这样,负载均衡服务器便可以直接在内核态内存空间中读取数据转发规则表,提高了读取速度,从而进一步提高流量数据的转发速度。
S303,将WebSocket握手报文转发至目的业务服务器,使目的业务服务器与客户端之间建立WebSocket连接。
负载均衡服务器可以将WebSocket握手报文转发至确定好的目的业务服务器,目的业务服务器接收WebSocket握手报文后,向客户端返回回应报文,与客户端建立WebSocket连接,从而使本发明实施例的数据处理方法用于需要保持长连接的应用场景。
在本发明一种可选的实施方式中,当数据发送端为客户端时,负载均衡服务器接收客户端通过第一通信链路发送的第一流量数据并获取第一通信链路的数据流向标识后,由于数据转发规则表中记录的是已经建立WebSocket连接的通信链路的数据流向标识(具体可以为五元组),因此,如果该第一通信链路的数据流向标识已经记录在预先建立的数据转发规则表中,则表明客户端与目的业务服务器之间已经建立了WebSocket连接,即第一通信链路和第二通信链路组成了WebSocket连接,此时,负载均衡服务器可以直接利用内核态的内核虚拟机将第一流量数据通过第二通信链路转发至目的业务服务器,从而进一步提高流量数据的转发速度。
在本发明一种可选的实施方式中,负载均衡服务器还可以接收目的服务器通过第二通信链路返回的第二流量数据,该第二流量数据可以是客户端所请求的数据,然后负载均衡服务器同样可以查找第二通信链路的五元组是否记录在数据转发规则表中,如果是,负载均衡服务器可以直接利用内核态的内核虚拟机将第二流量数据通过第一通信链路转发至客户端,实现整个WebSocket连接通道的数据传输。
在本发明一种可选的实施方式中,如图4所示,本发明实施例的数据处理方法还可以包括:
S401,接收客户端发送的WebSocket连接释放报文。
当客户端不再需要与目的业务服务器建立WebSocket连接时,可以向目的业务服务器发送WebSocket连接释放报文,以请求目的业务服务器取消与该客户端的WebSocket连接,则负载均衡服务器可以接收该WebSocket连接释放报文。
S402,将WebSocket连接释放报文转发至与客户端对应的目的业务服务器。
容易理解的是,负载均衡服务器在接收客户端发送的WebSocket连接释放报文后,可以将该报文转发给与客户端对应的目的业务服务器,并且,该转发过程同样可以在内核态完成,即,负载均衡服务器利用内核态的内核虚拟机将WebSocket连接释放报文转发至与客户端对应的目的业务服务器,从而提高该报文的转发速度。
S403,在数据转发规则表中删除组成WebSocket连接的第一通信链路和第二通信链路的五元组。
由于数据转发规则表会占用负载均衡服务器一定的内存空间,因此出于资源回收的目的,在负载均衡服务器转发WebSocket连接释放报文后,负载均衡服务器可以在数据转发规则表中删除组成WebSocket连接的第一通信链路和第二通信链路的五元组,从而节省负载均衡服务器的内存空间,提高负载均衡服务器的性能。
本发明实施例提供的数据处理方法,由于负载均衡服务器中预先建立有数据转发规则表,该数据转发规则表中记录有第一通信链路的数据流向标识与第二通信链路的数据流向标识之间的对应关系,因此在负载均衡服务器接收数据发送端通过第一通信链路发送的流量数据,并获取第一通信链路的数据流向标识后,能够直接利用数据流向标识在数据转发规则表中查找与该数据发送端对应的数据接收端,并且,本发明实施例利用内核态的内核虚拟机,如图5所示,在负载均衡服务器的网卡接收流量数据(如图中虚线所示)后,直接将流量数据在基于eBPF的内核虚拟机中转发至上述查找到的数据接收端,而不是如图6所示的现有的经过内核协议栈和Tengine在用户态对进行流量数据(如图中虚线所示)转发过程,省去了流量数据从内核态的内存空间拷贝至用户态的内存空间的过程,降低了负载均衡服务器因拷贝过程而产生的性能损耗,使得负载均衡服务器的数据转发速度得到进一步提高。并且,由于本发明实施例在内核态对流量数据进行转发,因此转发过程中不再依赖内核协议栈上层的Socket等数据结构,Tengine进程可以无需等待与业务流量处理相关的进程退出即可释放Tengine进程所持有的Socket等资源,不会影响与业务流量处理相关的进程,因此更容易实现与业务流量处理相关的进程的平滑退出、升级、改变配置等操作,提高了对与业务流量处理相关的进程操作的灵活程度。
相应于上面的方法实施例,本发明实施例还提供了相应的装置实施例。
如图7所示,本发明实施例提供了一种数据处理装置,该装置应用于基于Tengine的负载均衡服务器,包括:
第一接收模块701,用于接收数据发送端通过第一通信链路发送的流量数据,并获取第一通信链路的数据流向标识,数据发送端为客户端或业务服务器。
查找模块702,用于在第一通信链路的数据流向标识存在于预先建立的数据转发规则表中的情况下,通过数据流向标识在数据转发规则表中查找与数据发送端对应的数据接收端;数据转发规则表中记录有:第一通信链路的数据流向标识与第二通信链路的数据流向标识之间的对应关系,其中,第一通信链路和第二通信链路分别位于负载均衡服务器的数据接收侧和数据转发侧。
第一转发模块703,用于利用内核态的内核虚拟机将流量数据通过第二通信链路转发至查找到的数据接收端,内核虚拟机的进程基于eBPF技术创建。
在本发明一种可选的实施方式中,在图7所示装置结构的基础上,如图8所示,本发明的数据处理装置还可以包括:
判断模块801,用于判断数据转发规则表中是否记录有第一五元组。
则查找模块具体用于:
如果数据转发规则表中记录有第一五元组,则在数据转发规则表中查找与第一五元组对应的第二五元组;
根据第二五元组中的信息确定待进行数据转发的数据接收端。
第二转发模块802,用于如果数据转发规则表中未记录第一五元组,则通过负载均衡服务器的系统内核网络协议栈对流量数据进行转发。
在本发明一种可选的实施方式中,在图7所示装置结构的基础上,如图9所示,本发明的数据处理装置还可以包括:
第二接收模块901,用于接收客户端发送的WebSocket握手报文。
建立模块902,用于基于各个业务服务器的运行状态,确定待与客户端建立WebSocket连接的目的业务服务器,并建立数据转发规则表。
第三转发模块903,用于将WebSocket握手报文转发至目的业务服务器,使目的业务服务器与客户端之间建立WebSocket连接。
在本发明一种可选的实施方式中,第一接收模块具体用于:
接收客户端通过第一通信链路发送的第一流量数据;
则查找模块具体用于:
在预先建立的数据转发规则表中记录有第一通信链路的数据流向标识的情况下,确定第一通信链路和第二通信链路组成WebSocket连接;
则第一转发模块具体用于:
利用内核态的内核虚拟机将第一流量数据通过第二通信链路转发至目的业务服务器。
在本发明一种可选的实施方式中,第一转发模块具体用于:
接收目的服务器通过第二通信链路返回的第二流量数据,并利用内核态的内核虚拟机将第二流量数据通过第一通信链路转发至客户端。
在本发明一种可选的实施方式中,建立模块具体用于:
在内核虚拟机的内核态内存空间中建立数据转发规则表。
在本发明一种可选的实施方式中,第一接收模块具体用于:
接收客户端发送的WebSocket连接释放报文;
第一转发模块具体用于:
将WebSocket连接释放报文转发至与客户端对应的目的业务服务器;
装置还包括:
删除模块,用于在数据转发规则表中删除组成WebSocket连接的第一通信链路和第二通信链路的五元组。
本发明实施例提供的数据处理装置,由于负载均衡服务器中预先建立有数据转发规则表,该数据转发规则表中记录有第一通信链路的数据流向标识与第二通信链路的数据流向标识之间的对应关系,因此在负载均衡服务器的第一接收模块接收数据发送端通过第一通信链路发送的流量数据,并获取第一通信链路的数据流向标识后,能够通过查找模块直接利用数据流向标识在数据转发规则表中查找与该数据发送端对应的数据接收端,并且,本发明实施例利用内核态的内核虚拟机,在负载均衡服务器的网卡接收流量数据后,直接将流量数据在基于eBPF的内核虚拟机中转发至上述查找到的数据接收端,省去了流量数据从内核态的内存空间拷贝至用户态的内存空间的过程,降低了负载均衡服务器因拷贝过程而产生的性能损耗,使得负载均衡服务器的数据转发速度得到进一步提高。并且,由于本发明实施例的第一转发模块在内核态对流量数据进行转发,因此转发过程中不再依赖内核协议栈上层的Socket等数据结构,Tengine进程可以无需等待与业务流量处理相关的进程退出即可释放Tengine进程所持有的Socket等资源,不会影响与业务流量处理相关的进程,因此更容易实现与业务流量处理相关的进程的平滑退出、升级、改变配置等操作,提高了对与业务流量处理相关的进程操作的灵活程度。
本发明实施例还提供了一种服务器,如图10所示,该服务器1000包括处理器1001和机器可读存储介质1002,机器可读存储介质存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令实现以下步骤:
接收数据发送端通过第一通信链路发送的流量数据,并获取第一通信链路的数据流向标识,数据发送端为客户端或业务服务器;
在第一通信链路的数据流向标识存在于预先建立的数据转发规则表中的情况下,通过数据流向标识在数据转发规则表中查找与数据发送端对应的数据接收端;数据转发规则表中记录有:第一通信链路的数据流向标识与第二通信链路的数据流向标识之间的对应关系,其中,第一通信链路和第二通信链路分别位于负载均衡服务器的数据接收侧和数据转发侧;
利用内核态的内核虚拟机将流量数据通过第二通信链路转发至查找到的数据接收端,内核虚拟机的进程基于eBPF技术创建。
机器可读存储介质可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本发明实施例提供的服务器,由于预先建立有数据转发规则表,该数据转发规则表中记录有第一通信链路的数据流向标识与第二通信链路的数据流向标识之间的对应关系,因此在负载均衡服务器接收数据发送端通过第一通信链路发送的流量数据,并获取第一通信链路的数据流向标识后,能够直接利用数据流向标识在数据转发规则表中查找与该数据发送端对应的数据接收端,并且,本发明实施例利用内核态的内核虚拟机,直接将流量数据在内核态转发至上述查找到的数据接收端,不需要再在用户态进行数据转发,省去了流量数据从内核态的内存空间拷贝至用户态的内存空间的过程,降低了负载均衡服务器因拷贝过程而产生的性能损耗,使得负载均衡服务器的数据转发速度得到进一步提高。并且,由于本发明实施例在内核态对流量数据进行转发,因此转发过程中不再依赖协议栈上层的Socket等数据结构,Tengine进程可以无需等待与业务流量处理相关的进程退出即可释放Tengine进程所持有的Socket等资源,不会影响与业务流量处理相关的进程,因此更容易实现与业务流量处理相关的进程的平滑退出、升级、改变配置等操作,提高了对与业务流量处理相关的进程操作的灵活程度。
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时,用以执行如下步骤:
接收数据发送端通过第一通信链路发送的流量数据,并获取第一通信链路的数据流向标识,数据发送端为客户端或业务服务器;
在第一通信链路的数据流向标识存在于预先建立的数据转发规则表中的情况下,通过数据流向标识在数据转发规则表中查找与数据发送端对应的数据接收端;数据转发规则表中记录有:第一通信链路的数据流向标识与第二通信链路的数据流向标识之间的对应关系,其中,第一通信链路和第二通信链路分别位于负载均衡服务器的数据接收侧和数据转发侧;
利用内核态的内核虚拟机将流量数据通过第二通信链路转发至查找到的数据接收端,内核虚拟机的进程基于eBPF技术创建。
本发明实施例提供的计算机可读存储介质,由于负载均衡服务器中预先建立有数据转发规则表,该数据转发规则表中记录有第一通信链路的数据流向标识与第二通信链路的数据流向标识之间的对应关系,因此在负载均衡服务器的第一接收模块接收数据发送端通过第一通信链路发送的流量数据,并获取第一通信链路的数据流向标识后,能够通过查找模块直接利用数据流向标识在数据转发规则表中查找与该数据发送端对应的数据接收端,并且,本发明实施例利用内核态的内核虚拟机,在负载均衡服务器的网卡接收流量数据后,直接将流量数据在基于eBPF的内核虚拟机中转发至上述查找到的数据接收端,省去了流量数据从内核态的内存空间拷贝至用户态的内存空间的过程,降低了负载均衡服务器因拷贝过程而产生的性能损耗,使得负载均衡服务器的数据转发速度得到进一步提高。并且,由于本发明实施例的第一转发模块在内核态对流量数据进行转发,因此转发过程中不再依赖内核协议栈上层的Socket等数据结构,Tengine进程可以无需等待与业务流量处理相关的进程退出即可释放Tengine进程所持有的Socket等资源,不会影响与业务流量处理相关的进程,因此更容易实现与业务流量处理相关的进程的平滑退出、升级、改变配置等操作,提高了对与业务流量处理相关的进程操作的灵活程度。
本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行以下步骤:
接收数据发送端通过第一通信链路发送的流量数据,并获取第一通信链路的数据流向标识,数据发送端为客户端或业务服务器;
在第一通信链路的数据流向标识存在于预先建立的数据转发规则表中的情况下,通过数据流向标识在数据转发规则表中查找与数据发送端对应的数据接收端;数据转发规则表中记录有:第一通信链路的数据流向标识与第二通信链路的数据流向标识之间的对应关系,其中,第一通信链路和第二通信链路分别位于负载均衡服务器的数据接收侧和数据转发侧;
利用内核态的内核虚拟机将流量数据通过第二通信链路转发至查找到的数据接收端,内核虚拟机的进程基于eBPF技术创建。
本发明实施例提供的包含指令的计算机程序产品,由于负载均衡服务器中预先建立有数据转发规则表,该数据转发规则表中记录有第一通信链路的数据流向标识与第二通信链路的数据流向标识之间的对应关系,因此在负载均衡服务器的第一接收模块接收数据发送端通过第一通信链路发送的流量数据,并获取第一通信链路的数据流向标识后,能够通过查找模块直接利用数据流向标识在数据转发规则表中查找与该数据发送端对应的数据接收端,并且,本发明实施例利用内核态的内核虚拟机,在负载均衡服务器的网卡接收流量数据后,直接将流量数据在基于eBPF的内核虚拟机中转发至上述查找到的数据接收端,省去了流量数据从内核态的内存空间拷贝至用户态的内存空间的过程,降低了负载均衡服务器因拷贝过程而产生的性能损耗,使得负载均衡服务器的数据转发速度得到进一步提高。并且,由于本发明实施例的第一转发模块在内核态对流量数据进行转发,因此转发过程中不再依赖内核协议栈上层的Socket等数据结构,Tengine进程可以无需等待与业务流量处理相关的进程退出即可释放Tengine进程所持有的Socket等资源,不会影响与业务流量处理相关的进程,因此更容易实现与业务流量处理相关的进程的平滑退出、升级、改变配置等操作,提高了对与业务流量处理相关的进程操作的灵活程度。
本发明实施例还提供了一种计算机程序,当其在计算机上运行时,使得计算机执行以下步骤:
接收数据发送端通过第一通信链路发送的流量数据,并获取第一通信链路的数据流向标识,数据发送端为客户端或业务服务器;
在第一通信链路的数据流向标识存在于预先建立的数据转发规则表中的情况下,通过数据流向标识在数据转发规则表中查找与数据发送端对应的数据接收端;数据转发规则表中记录有:第一通信链路的数据流向标识与第二通信链路的数据流向标识之间的对应关系,其中,第一通信链路和第二通信链路分别位于负载均衡服务器的数据接收侧和数据转发侧;
利用内核态的内核虚拟机将流量数据通过第二通信链路转发至查找到的数据接收端,内核虚拟机的进程基于eBPF技术创建。
本发明实施例提供的包含指令的计算机程序,由于负载均衡服务器中预先建立有数据转发规则表,该数据转发规则表中记录有第一通信链路的数据流向标识与第二通信链路的数据流向标识之间的对应关系,因此在负载均衡服务器的第一接收模块接收数据发送端通过第一通信链路发送的流量数据,并获取第一通信链路的数据流向标识后,能够通过查找模块直接利用数据流向标识在数据转发规则表中查找与该数据发送端对应的数据接收端,并且,本发明实施例利用内核态的内核虚拟机,在负载均衡服务器的网卡接收流量数据后,直接将流量数据在基于eBPF的内核虚拟机中转发至上述查找到的数据接收端,省去了流量数据从内核态的内存空间拷贝至用户态的内存空间的过程,降低了负载均衡服务器因拷贝过程而产生的性能损耗,使得负载均衡服务器的数据转发速度得到进一步提高。并且,由于本发明实施例的第一转发模块在内核态对流量数据进行转发,因此转发过程中不再依赖内核协议栈上层的Socket等数据结构,Tengine进程可以无需等待与业务流量处理相关的进程退出即可释放Tengine进程所持有的Socket等资源,不会影响与业务流量处理相关的进程,因此更容易实现与业务流量处理相关的进程的平滑退出、升级、改变配置等操作,提高了对与业务流量处理相关的进程操作的灵活程度。
对于装置/服务器/存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (16)

1.一种数据处理方法,其特征在于,所述方法应用于基于Tengine的负载均衡服务器,所述方法包括:
接收数据发送端通过第一通信链路发送的流量数据,并获取所述第一通信链路的数据流向标识,所述数据发送端为客户端或业务服务器;
在所述第一通信链路的数据流向标识存在于预先建立的数据转发规则表中的情况下,通过所述数据流向标识在所述数据转发规则表中查找与所述数据发送端对应的数据接收端;所述数据转发规则表中记录有:所述第一通信链路的数据流向标识与第二通信链路的数据流向标识之间的对应关系,其中,所述第一通信链路和所述第二通信链路分别位于所述负载均衡服务器的数据接收侧和数据转发侧;
利用内核态的内核虚拟机将所述流量数据通过所述第二通信链路转发至查找到的数据接收端。
2.根据权利要求1所述的方法,其特征在于,所述数据流向标识为五元组,所述数据转发规则表中记录有:第一五元组与第二五元组之间的对应关系,所述第一五元组为所述第一通信链路的五元组,所述第二五元组为第二通信链路的五元组,则所述接收数据发送端通过第一通信链路发送的流量数据,并获取所述第一通信链路的数据流向标识之后,所述方法还包括:
判断所述数据转发规则表中是否记录有所述第一五元组;
则所述在所述第一通信链路的数据流向标识存在于预先建立的数据转发规则表中的情况下,通过所述数据流向标识在所述数据转发规则表中查找与所述数据发送端对应的数据接收端的步骤,包括:
如果所述数据转发规则表中记录有所述第一五元组,则在所述数据转发规则表中查找与所述第一五元组对应的第二五元组;
根据所述第二五元组中的信息确定待进行数据转发的数据接收端;
如果所述数据转发规则表中未记录所述第一五元组,则通过负载均衡服务器的系统内核网络协议栈对所述流量数据进行转发。
3.根据权利要求1所述的方法,其特征在于,所述接收数据发送端通过第一通信链路发送的流量数据,并获取所述第一通信链路的数据流向标识之前,所述方法还包括:
接收客户端发送的WebSocket握手报文;
基于各个业务服务器的运行状态,确定待与所述客户端建立WebSocket连接的目的业务服务器,并建立所述数据转发规则表;
将所述WebSocket握手报文转发至所述目的业务服务器,使所述目的业务服务器与所述客户端之间建立WebSocket连接。
4.根据权利要求1或3所述的方法,其特征在于,所述接收数据发送端通过第一通信链路发送的流量数据,并获取所述第一通信链路的数据流向标识的步骤,包括:
接收客户端通过第一通信链路发送的第一流量数据并获取所述第一通信链路的数据流向标识;
则所述在所述第一通信链路的数据流向标识存在于预先建立的数据转发规则表中的情况下,通过所述数据流向标识在所述数据转发规则表中查找与所述数据发送端对应的数据接收端的步骤,包括:
在预先建立的数据转发规则表中记录有所述第一通信链路的数据流向标识的情况下,确定所述第一通信链路和所述第二通信链路组成WebSocket连接;
则所述利用内核态的内核虚拟机将所述流量数据通过所述第二通信链路转发至查找到的数据接收端的步骤,包括:
利用内核态的内核虚拟机将所述第一流量数据通过所述第二通信链路转发至目的业务服务器。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
接收目的服务器通过所述第二通信链路返回的第二流量数据,并利用内核态的内核虚拟机将所述第二流量数据通过所述第一通信链路转发至所述客户端。
6.根据权利要求3所述的方法,其特征在于,所述建立所述数据转发规则表的步骤,包括:
在所述内核虚拟机的内核态内存空间中建立所述数据转发规则表。
7.根据权利要求2所述的方法,其特征在于,所述方法还包括:
接收客户端发送的WebSocket连接释放报文;
将所述WebSocket连接释放报文转发至与所述客户端对应的目的业务服务器;
在所述数据转发规则表中删除组成所述WebSocket连接的第一通信链路和第二通信链路的五元组。
8.一种数据处理装置,其特征在于,所述装置应用于基于Tengine的负载均衡服务器,所述装置包括:
第一接收模块,用于接收数据发送端通过第一通信链路发送的流量数据,并获取所述第一通信链路的数据流向标识,所述数据发送端为客户端或业务服务器;
查找模块,用于在所述第一通信链路的数据流向标识存在于预先建立的数据转发规则表中的情况下,通过所述数据流向标识在所述数据转发规则表中查找与所述数据发送端对应的数据接收端;所述数据转发规则表中记录有:所述第一通信链路的数据流向标识与第二通信链路的数据流向标识之间的对应关系,其中,所述第一通信链路和所述第二通信链路分别位于所述负载均衡服务器的数据接收侧和数据转发侧;
第一转发模块,用于利用内核态的内核虚拟机将所述流量数据通过所述第二通信链路转发至查找到的数据接收端,。
9.根据权利要求8所述的装置,其特征在于,所述数据流向标识为五元组,所述数据转发规则表中记录有:第一五元组与第二五元组之间的对应关系,所述第一五元组为所述第一通信链路的五元组,所述第二五元组为第二通信链路的五元组,所述装置还包括:
判断模块,用于判断所述数据转发规则表中是否记录有所述第一五元组;
则所述查找模块具体用于:
如果所述数据转发规则表中记录有所述第一五元组,则在所述数据转发规则表中查找与所述第一五元组对应的第二五元组;
根据所述第二五元组中的信息确定待进行数据转发的数据接收端;
第二转发模块,用于如果所述数据转发规则表中未记录所述第一五元组,则通过负载均衡服务器的系统内核网络协议栈对所述流量数据进行转发。
10.根据权利要求8所述的装置,其特征在于,所述装置还包括:
第二接收模块,用于接收客户端发送的WebSocket握手报文;
建立模块,用于基于各个业务服务器的运行状态,确定待与所述客户端建立WebSocket连接的目的业务服务器,并建立所述数据转发规则表;
第三转发模块,用于将所述WebSocket握手报文转发至所述目的业务服务器,使所述目的业务服务器与所述客户端之间建立WebSocket连接。
11.根据权利要求8或10所述的装置,其特征在于,所述第一接收模块具体用于:
接收客户端通过第一通信链路发送的第一流量数据;
则所述查找模块具体用于:
在预先建立的数据转发规则表中记录有所述第一通信链路的数据流向标识的情况下,确定所述第一通信链路和所述第二通信链路组成WebSocket连接;
则所述第一转发模块具体用于:
利用内核态的内核虚拟机将所述第一流量数据通过所述第二通信链路转发至目的业务服务器。
12.根据权利要求11所述的装置,其特征在于,所述第一转发模块具体用于:
接收目的服务器通过所述第二通信链路返回的第二流量数据,并利用内核态的内核虚拟机将所述第二流量数据通过所述第一通信链路转发至所述客户端。
13.根据权利要求10所述的装置,其特征在于,所述建立模块具体用于:
在所述内核虚拟机的内核态内存空间中建立所述数据转发规则表。
14.根据权利要求9所述的装置,其特征在于,所述第一接收模块具体用于:
接收客户端发送的WebSocket连接释放报文;
所述第一转发模块具体用于:
将所述WebSocket连接释放报文转发至与所述客户端对应的目的业务服务器;
所述装置还包括:
删除模块,用于在所述数据转发规则表中删除组成所述WebSocket连接的第一通信链路和第二通信链路的五元组。
15.一种服务器,其特征在于,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令以实现权利要求1-7任一项所述的数据处理方法的方法步骤。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-7任一项所述的数据处理方法的方法步骤。
CN202011338455.6A 2020-11-25 2020-11-25 一种数据处理方法、处理装置、服务器及存储介质 Active CN112532714B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011338455.6A CN112532714B (zh) 2020-11-25 2020-11-25 一种数据处理方法、处理装置、服务器及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011338455.6A CN112532714B (zh) 2020-11-25 2020-11-25 一种数据处理方法、处理装置、服务器及存储介质

Publications (2)

Publication Number Publication Date
CN112532714A true CN112532714A (zh) 2021-03-19
CN112532714B CN112532714B (zh) 2022-06-03

Family

ID=74993257

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011338455.6A Active CN112532714B (zh) 2020-11-25 2020-11-25 一种数据处理方法、处理装置、服务器及存储介质

Country Status (1)

Country Link
CN (1) CN112532714B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113746930A (zh) * 2021-09-09 2021-12-03 上海格尔安全科技有限公司 网络负载均衡方法、装置、计算机设备和存储介质
WO2023123902A1 (zh) * 2021-12-28 2023-07-06 深圳云天励飞技术股份有限公司 芯片系统中的数据传输处理方法及相关装置

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101252527A (zh) * 2008-04-09 2008-08-27 腾讯科技(深圳)有限公司 一种网络中转的方法、网络中转服务器和内核管理模块
US20100265824A1 (en) * 2007-11-09 2010-10-21 Blade Network Technologies, Inc Session-less Load Balancing of Client Traffic Across Servers in a Server Group
WO2011124132A1 (zh) * 2010-04-07 2011-10-13 中兴通讯股份有限公司 数据通信系统及方法
WO2011143652A2 (en) * 2010-05-14 2011-11-17 Extreme Networks, Inc. Methods, systems, and computer readable media for stateless load balancing of network traffic flows
WO2015165312A1 (zh) * 2014-04-28 2015-11-05 华为技术有限公司 业务链负载均衡方法及其装置、系统
US20160234112A1 (en) * 2015-02-06 2016-08-11 Telefonaktiebolaget L M Ericsson (Publ) Method and system for supporting port ranging in a software-defined networking (sdn) system
WO2017042689A1 (en) * 2015-09-11 2017-03-16 Telefonaktiebolaget Lm Ericsson (Publ) Method and system for delay measurement of a traffic flow in a software-defined networking (sdn) system
CN106953758A (zh) * 2017-03-20 2017-07-14 北京搜狐新媒体信息技术有限公司 一种基于Nginx服务器的动态配置管理方法及系统
CN107249038A (zh) * 2017-07-06 2017-10-13 腾讯科技(深圳)有限公司 业务数据转发方法及系统
CN107666474A (zh) * 2016-07-30 2018-02-06 华为技术有限公司 一种网络报文处理方法、装置及网络服务器
CN109308221A (zh) * 2018-08-02 2019-02-05 南京邮电大学 一种基于WebSocket长连接的Nginx动态负载均衡方法
CN110928637A (zh) * 2018-09-19 2020-03-27 阿里巴巴集团控股有限公司 负载均衡方法和系统
US10623309B1 (en) * 2016-12-19 2020-04-14 International Business Machines Corporation Rule processing of packets
US20200272500A1 (en) * 2019-02-22 2020-08-27 Vmware, Inc. Service path generation in load balanced manner

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100265824A1 (en) * 2007-11-09 2010-10-21 Blade Network Technologies, Inc Session-less Load Balancing of Client Traffic Across Servers in a Server Group
CN101252527A (zh) * 2008-04-09 2008-08-27 腾讯科技(深圳)有限公司 一种网络中转的方法、网络中转服务器和内核管理模块
WO2011124132A1 (zh) * 2010-04-07 2011-10-13 中兴通讯股份有限公司 数据通信系统及方法
WO2011143652A2 (en) * 2010-05-14 2011-11-17 Extreme Networks, Inc. Methods, systems, and computer readable media for stateless load balancing of network traffic flows
WO2015165312A1 (zh) * 2014-04-28 2015-11-05 华为技术有限公司 业务链负载均衡方法及其装置、系统
US20160234112A1 (en) * 2015-02-06 2016-08-11 Telefonaktiebolaget L M Ericsson (Publ) Method and system for supporting port ranging in a software-defined networking (sdn) system
WO2017042689A1 (en) * 2015-09-11 2017-03-16 Telefonaktiebolaget Lm Ericsson (Publ) Method and system for delay measurement of a traffic flow in a software-defined networking (sdn) system
CN107666474A (zh) * 2016-07-30 2018-02-06 华为技术有限公司 一种网络报文处理方法、装置及网络服务器
US10623309B1 (en) * 2016-12-19 2020-04-14 International Business Machines Corporation Rule processing of packets
CN106953758A (zh) * 2017-03-20 2017-07-14 北京搜狐新媒体信息技术有限公司 一种基于Nginx服务器的动态配置管理方法及系统
CN107249038A (zh) * 2017-07-06 2017-10-13 腾讯科技(深圳)有限公司 业务数据转发方法及系统
CN109308221A (zh) * 2018-08-02 2019-02-05 南京邮电大学 一种基于WebSocket长连接的Nginx动态负载均衡方法
CN110928637A (zh) * 2018-09-19 2020-03-27 阿里巴巴集团控股有限公司 负载均衡方法和系统
US20200272500A1 (en) * 2019-02-22 2020-08-27 Vmware, Inc. Service path generation in load balanced manner

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
张炜森等: "Nginx高并发负载均衡原理与策略比较研究", 《工业控制计算机》 *
李远水: "基于C/S通信模型的负载均衡系统的设计与研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
王利萍: "基于Nginx服务器集群负载均衡技术的研究与改进", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》 *
田纯青: "利用Nginx实现基于URI的Web负载分配", 《现代计算机(专业版)》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113746930A (zh) * 2021-09-09 2021-12-03 上海格尔安全科技有限公司 网络负载均衡方法、装置、计算机设备和存储介质
WO2023123902A1 (zh) * 2021-12-28 2023-07-06 深圳云天励飞技术股份有限公司 芯片系统中的数据传输处理方法及相关装置

Also Published As

Publication number Publication date
CN112532714B (zh) 2022-06-03

Similar Documents

Publication Publication Date Title
US10191758B2 (en) Directing data traffic between intra-server virtual machines
US10505977B2 (en) Diffusing denial-of-service attacks by using virtual machines
US11057423B2 (en) System for distributing virtual entity behavior profiling in cloud deployments
KR102167613B1 (ko) 메시지 푸시 방법 및 장치
US10560543B2 (en) Rule based cache processing in application delivery controller for load balancing
CN106936791B (zh) 拦截恶意网址访问的方法和装置
CN112532714B (zh) 一种数据处理方法、处理装置、服务器及存储介质
KR102266089B1 (ko) Mec 시스템 및 그 제어방법
US11848845B2 (en) Content delivery network server testing
US10250671B2 (en) P2P-based file transmission control method and P2P communication control device therefor
CN107135249B (zh) 数据下载方法及装置
CN115004673B (zh) 消息推送方法、装置、电子设备及计算机可读介质
CN110417595B (zh) 业务服务容灾方法、装置、系统、管理服务器及电子设备
US9344363B2 (en) Information processing system, relay device, information processing device, and information processing method
CN110661673B (zh) 一种心跳检测的方法及装置
CN113973052A (zh) 云网络系统、数据传输方法、计算节点及存储介质
CN111600929B (zh) 传输线路探测方法、路由策略生成方法及代理服务器
CN114928615B (zh) 负载均衡方法、装置、设备及可读存储介质
CN112866329B (zh) 一种基于混合云的请求响应方法、装置、介质及电子设备
CN115914253A (zh) 网络数据包抓取方法和客户端、服务端
CN115996188A (zh) 业务调度方法、装置、设备及计算机可读存储介质
CN109450794A (zh) 一种基于sdn网络的通信方法及设备
CN113014615A (zh) 数据同步方法、装置和系统
CN113271305B (zh) 一种攻击检测方法、装置及网站应用级入侵防护系统waf
CN115134618B (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