CN114024915B - 一种流量迁移方法、装置、系统、电子设备及存储介质 - Google Patents
一种流量迁移方法、装置、系统、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114024915B CN114024915B CN202111260898.2A CN202111260898A CN114024915B CN 114024915 B CN114024915 B CN 114024915B CN 202111260898 A CN202111260898 A CN 202111260898A CN 114024915 B CN114024915 B CN 114024915B
- Authority
- CN
- China
- Prior art keywords
- target
- data
- queue
- buffer
- network card
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种流量迁移方法、装置、系统、电子设备及存储介质。应用于流量迁移系统,系统包括交换机、网卡和目标服务器,网卡安装在目标服务器上,目标服务器有多个缓存队列和对应多个处理进程,每个处理进程处理对应缓存队列中缓存的数据,方法包括:网卡接收交换机分发的待处理数据;根据其附加信息计算待处理数据应分发至的第一目标缓存队列;网卡确定第一目标缓存队列的缓存状态;在第一目标缓存队列缓存状态为满载状态时,网卡根据其他缓存队列缓存状态确定第二目标缓存队列,其他缓存队列为多个缓存队列中除第一目标缓存队列之外的缓存队列;网卡将待处理数据分发至第二目标缓存队列,利用网卡高性能的可编程能力,实现流量突发迁移。
Description
本发明实施例涉及计算机技术,尤其涉及一种流量迁移方法、装置、系统、电子设备及存储介质。
背景技术
目前全球通信技术发展非常迅猛,也带来移动数据流量的快速增长。而根据调研数据的预测,到2026年,全球每月移动数据流量是2019年的6.65倍,达到2260亿GB。
面对如此爆炸式的流量增长,传统的数据中心很难应对突发的流量抖动,当设备内的某个处理节点发生故障时,通常是直接将发往该节点的数据流量丢弃,影响业务体验。
发明内容
本发明实施例提供一种流量迁移方法、装置、系统、电子设备及存储介质,应对突发的流量抖动以及当设备内的某个处理节点发生故障时,保证流量不遗失,实现对流量进行迁移。
第一方面,本发明实施例提供了一种流量迁移方法,该方法包括:
网卡接收交换机分发的待处理数据;
网卡根据待处理数据的附加信息计算待处理数据应分发至的第一目标缓存队列;
网卡确定第一目标缓存队列的缓存状态;
在第一目标缓存队列的缓存状态为满载状态时,网卡根据其他缓存队列的缓存状态确定第二目标缓存队列,其他缓存队列为多个缓存队列中除第一目标缓存队列之外的缓存队列;
网卡将待处理数据分发至第二目标缓存队列。
第二方面,本实施例还提供一种流量迁移装置,该装置包括:
数据接收模块,用于网卡接收交换机分发的待处理数据;
队列计算模块,用于网卡根据待处理数据的附加信息计算待处理数据应分发至的第一目标缓存队列;
状态确定模块,用于网卡确定第一目标缓存队列的缓存状态;
队列确定模块,用于在第一目标缓存队列的缓存状态为满载状态时,网卡根据其他缓存队列的缓存状态确定第二目标缓存队列,其他缓存队列为多个缓存队列中除第一目标缓存队列之外的缓存队列;
数据分发模块,用于网卡将待处理数据分发至第二目标缓存队列。
第三方面,本发明实施例还提供了一种流量迁移系统,流量迁移系统包括交换机、网卡以及如目标服务器,网卡安装在目标服务器上,目标服务器具有多个缓存队列和对应的多个处理进程,每个处理进程处理对应缓存队列中缓存的数据。
第四方面,本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现如本发明实施例任一项的流量迁移方法。
第五方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例任一项的流量迁移方法。
本发明实施例中,提供一种流量迁移方法,应用于流量迁移系统,流量迁移系统中包括交换机、网卡和目标服务器,网卡安装在目标服务器上,目标服务器具有多个缓存队列和对应的多个处理进程,每个处理进程处理对应缓存队列中缓存的数据,方法包括:网卡接收交换机分发的待处理数据;网卡根据待处理数据的附加信息计算待处理数据应分发至的第一目标缓存队列;网卡确定第一目标缓存队列的缓存状态;在第一目标缓存队列的缓存状态为满载状态时,网卡根据其他缓存队列的缓存状态确定第二目标缓存队列,其他缓存队列为多个缓存队列中除第一目标缓存队列之外的缓存队列;网卡将待处理数据分发至第二目标缓存队列。即本发明实施例中,可以通过设备上安装的网卡进行流量分配,可以实现流量的均衡分配,在设备内的某一个处理节点(处理进程)异常时,可以通过设备上安装的网卡进行流量迁移,从而避免了流量被丢弃,保证了业务的正常运行,提升了用户的业务使用体验。
附图说明
图1是本发明实施例的流量迁移方法的一个流程示意图;
图2是本发明实施例的目标服务器中的流量迁移示意图;
图3是本发明实施例的将流量迁移至备用服务器的流量迁移示意图;
图4是本发明实施例的流量迁移方法的另一个流程示意图;
图5是本发明实施例的流量迁移装置的一个结构示意图;
图6为本发明实施例的流量迁移系统的一个结构示意图;
图7是本发明实施例的电子设备的一个结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
另外,在本发明实施例中,“可选的”或者“示例性的”等词用于表示作例子、例证或说明。本发明实施例中被描述为“可选的”或者“示例性的”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“可选的”或者“示例性的”等词旨在以具体方式呈现相关概念。
图1是本发明实施例的流量迁移方法的一个流程示意图,该方法可以由本发明实施例提供的流量迁移装置来执行,该装置可以采用软件和/或硬件的方式实现,在一个具体的实施例中,该装置可以集成在电子设备中,电子设备可以是网卡,在本实施例中,以流量迁移装置集成在网卡中为例进行说明。
图1是本发明实施例的流量迁移方法的一个流程示意图,应用于流量迁移系统,流量迁移系统中包括交换机、网卡和目标服务器,网卡安装在目标服务器上,目标服务器具有多个缓存队列和对应的多个处理进程,每个处理进程处理对应缓存队列中缓存的数据,方法具体包括如下步骤:
S110、网卡接收交换机分发的待处理数据。
其中,网卡是用于多核多线程的网络处理器架构,实现虚拟交换等特性,例如可以是,插卡式网卡,或者可以是,卡扣式网卡等,本实施例对此不进行限定。交换机是一种在通信系统中完成信息交换功能的设备,例如可以是,以太网交换机,或者可以是,光纤交换机等,本实施例对此不进行限定。待处理数据可以从外部接入,譬如运营商,也可以是内部结构产生,如搭建一个网络,定向进行输入得流量。
其中,网卡依附在目标服务器上,每一个目标处理器上都配备一张网卡。目标服务器主要是用于进行报文加速处理以及流量的管理,其中,目标服务器一般使用通用x86服务器作为其基本形态,业务相关应用程序利用其提供的基础硬件资源正常运行,例如可以是,中央处理器(central processing unit,CPU)、动态随机存取存储器(Dynamic RandomAccess Memory,DRAM),或者可以是,硬盘驱动器(Hard Disk Drive,HDD)等,本实施例对此不进行限定。
具体的,交换机将数据流量均匀分发到各个目标服务器,然后目标服务器通过网卡进行数据流量的接收。
S120、网卡根据待处理数据的附加信息计算待处理数据应分发至的第一目标缓存队列。
其中,附加信息包括输入端口信息、源媒体存取控制MAC(Media Access Control)位址、目的MAC地址、网络类型、网络识别号、源网际互连协议IP(Internet ProtocolAddress)地址、目的IP地址、IP端口信息、源传输控制协议TCP(Transmission ControlProtocol)端口信息和目标TCP端口信息中的至少一者。
其中,缓存队列是用于存放预分配的数据流量的缓冲区,一般情况下,一个目标服务器中会加载一张网卡,在大量的数据流量接入的情况下,单个的缓存队列可能无法满足性能需求,从而可以划分出多个缓存队列,根据待处理数据的附加信息从多个缓存队列中确定一个缓存队列为第一目标缓存队列,剩余缓存队列则为其他缓存队列。
S130、网卡确定第一目标缓存队列的缓存状态。
具体的,网卡要将数据流量存入第一目标缓存队列要确定第一目标缓存队列的缓存状态是否可以进行数据流量的存入。其中,可以是一个处理进程处理一个缓存队列,如果某个缓存队列对应的处理进程被操作系统杀死,譬如代码出现错误、内存访问越界等,此时处理进程就会出现异常,导致缓存队列产生积压,网卡及时感知缓存队列积压满载;若处理进程能够一直正常处理则显示缓存状态无满载;即缓存队列的状态反映了对应处理进程的状态。
示例性的,当网卡现在需要向第一目标缓存队列中将现有数据流量存入,此时第一目标缓存队列对应的处理进程无异常,且缓存队列不存在积压情况,此时网卡确定第一目标缓存队列的缓存状态为可以进行数据流量的存入。
S140、在第一目标缓存队列的缓存状态为满载状态时,网卡根据其他缓存队列的缓存状态确定第二目标缓存队列,其他缓存队列为多个缓存队列中除第一目标缓存队列之外的缓存队列。
其中,对于所有的目标缓存队列,确定一个目标缓存队列为第一目标缓存队列,则剩余缓存队列被成为其他缓存队列,进一步地,在第一目标缓存队列的缓存状态为满载状态时,可以在其他缓存队列中,确定第二目标缓存队列。
具体的,如图2所示,图2是本发明实施例的目标服务器中的流量迁移示意图,总共有n个缓存队列,假设第一目标缓存队列为缓存队列1,当第一目标缓存队列的缓存状态为满载状态,即第一目标缓存队列无法再接收新的数据流量,对应的处理进程已经处理不过来了,导致第一目标缓存队列存在积压,此时需要用S130相同的方法再一次确定其他缓存队列的缓存状态,根据其他缓存队列的缓存状态在除了第一目标缓存队列外的2~n个缓存队列中确定第二目标缓存队列。对应图2中,网卡确定向缓存队列1分发待处理数据如黑色箭头,当缓存队列1出现满载情况后,此时缓存队列1无法继续存入,网卡判断到缓存队列2和缓存队列n可以进行数据流量缓存,并将待处理数据分别缓存到缓存队列2和缓存队列n,如图2中缓存队列2和缓存队列n中的黑色框。
单缓存队列解除满载主要依赖于数据处理节点的守护程序,可以持续监测程序的运行状态,发生满载比如上面说的内存越界段的错误后,可以重新启动程序,多缓存队列解除满载主要依赖于系统的自启动服务,比如服务器断电了,端口掉了交换机,当掉电恢复后,服务器启动后会自动执行程序启动脚本,恢复目标服务器的正常运行状态,交换机检测到缓存队列的处理进程开始处理后会将流量转发回来。
示例性的,当设置初始每个缓存队列的数据流量存储量为8个,如果目前第一目标缓存队列的8个数据流量存储空间都被占用,此时第一目标缓存队列的缓存状态就被称为满载状态,则可以从其他缓存队列中确定第二缓存队列,比如其他缓存队列中存在某个缓存队列,其8个数据流量存储空间被占用了2个,那么可以将该缓存队列确定为第二目标缓存队列,第二目标缓存队列不存在积压。
S150、网卡将待处理数据分发至第二目标缓存队列。
具体的,当确定第二目标缓存队列不是满载状态时,即不存在数据流量的积压,处理进程处理数据流量正常,此时网卡将待处理数据分发至第二目标缓存队列。
可选的,流量迁移系统中还包括备用服务器,方法还包括:在网卡根据其他缓存队列的缓存状态确定不出第二目标缓存队列时,网卡将待处理数据回退给交换机,以使得交换机将待处理数据分发给备用服务器。
其中,备用服务器可以是和目标服务器相同的服务器,也可以是不同的服务器,本实施例对此不进行限定。
具体的,在网卡根据其他缓存队列的缓存状态确定不出第二目标缓存队列时,也就是说在根据其他缓存队列的缓存状态确定第二目标缓存队列时,剩余的目标缓存队列都存在满载的状态,无法再接收待处理数据,此时将即将接入的数据流量返回到交换机中,然后交换机将待处理数据分发给备用服务器做进一步处理。
进一步的,如图3所示,图3是本发明实施例的将流量迁移至备用服务器的流量迁移示意图;当目标服务器中的所有目标缓存队列都发生满载或者瞬时数据流量远大于该目标服务器的性能处理上限时,网卡不会丢弃后续接收的流量,而是通过交换机将流量转发备用服务器。
本发明实施例的技术方案提供了一种流量迁移方法,通过网卡接收交换机分发的待处理数据,使用网卡根据待处理数据的附加信息计算待处理数据应分发至的第一目标缓存队列;网卡确定第一目标缓存队列的缓存状态;在第一目标缓存队列的缓存状态为满载状态时,网卡根据其他缓存队列的缓存状态确定第二目标缓存队列,其他缓存队列为多个缓存队列中除第一目标缓存队列之外的缓存队列;网卡将待处理数据分发至第二目标缓存队列。即在本发明实施例中,通过网卡利用自身的计算能力进行流量迁移,可以达到灵活的负载均衡策略,数据节点接收到得流量更加稳定均衡的效果。
进一步的,基于上述实施例的基础上,进一步优化网卡根据待处理数据进行流量迁移的结果。
图4是本发明实施例的另一流量迁移方法的一个流程示意图,如图4所示,该方法包括:
S410、网卡接收交换机分发的待处理数据。
即网卡接收的待处理数据是由交换机分发的,示例地,交换机可以维持数据分发表,按照数据分发表分发待处理数据,数据分发表的表项一般为256、512或者1024,具体的,交换机中维持的数据分发表可如下表1所示:
索引 | 网口 |
0 | 0 |
1 | 1 |
2 | 2 |
… | … |
15 | 15 |
16 | 0 |
17 | 1 |
… | … |
1023 | 15 |
表1
表1所示,即表项为1024,需要分发给16个网口(网卡),则针对一个待处理数据,可以对其进行解析得到源IP和目的IP,源IP和目的IP都是32bit的值,需要进行处理才能跟表项对应起来(1024个表项代表10bit),一般的处理是xor,xor表示异或操作,即:
(1)源IP xor目的IP得到一个32bit的值;
(2)对第(1)步得到的值取高16位xor低16位,得到一个16bit的值;
(3)再用16bits的15-12bits与11-8bits xor,将得到的4bits替换到11-8bits,得到12bit;
(4)12bit值再右移2位(去除低2位)得到10bits的哈希值。
根据得到的哈希值查询交换机中维持的数据分发表,从而确定将待处理数据分发至哪个网口,从而将待处理数据分发至对应的网口。比如,若交换机按照上述规则计算得到的某个待处理数据的哈希值为15,则查询表1确定可以将该待处理数据分发给网口15。
S420、网卡对待处理数据的附加信息进行散列计算,得到哈希值。
其中,散列计算又称为哈希算法,就是给一个输入通道通过散列算法后输出得到固定的长度,主要是把任意长度的输入通过散列算法,变换成固定长度的输出,该输出就是哈希值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。
其中,哈希值可以理解为一段流量数据的身份标识,通过一定的哈希算法,例如可以是,MD5信息摘要算法(MD5 Message-Digest Algorithm,MD5),或者可以是,安全散列算法1(Secure Hash Algorithm 1,SHA-1)等,本实施例对此不进行限定。
具体的,网卡对待处理数据的附加信息,如输入端口信息、源媒体存取控制MAC位址、目的MAC地址、网络类型、网络识别号、源网际互连协议IP地址、目的IP地址、IP端口信息、源传输控制协议TCP端口信息和目标TCP端口信息中的至少一者进行散列计算,将一段较长的数据映射为一段较短的小的数据,这段小数据就是大数据的哈希值,而且它是唯一的,一旦大数据发生变化,哪怕是微小的变化,它的哈希值也会发生变化。
S430、根据哈希值确定第一目标缓存队列。
示例地,网卡中也可以维持一个数据分发表,具体的,网卡中维持的数据分发表可如下表2所示:
索引 | 缓存队列 |
1 | 1 |
2 | 2 |
3 | 3 |
… | … |
7 | 1 |
8 | 2 |
9 | 3 |
… | … |
表2
表2所示,即数据需要分发给3个缓存队列,则网卡按照上述规则计算得到待处理数据的哈希值之后,可以查询网卡中维持的数据分发表,从而确定待处理数据应该分发的第一目标缓存队列。比如,针对某个待处理数据,若网卡计算得到其哈希值为2,则可以查询网卡中维持的数据分发表,进一步确定这个待处理数据需要分发给缓存队列2。
S440、网卡确定第一目标缓存队列是否是满载状态。
具体的,比如当第一目标缓存队列的原始固定缓存数值为8bits时,等于8bits就是满载状态,小于8bits则是非满载状态。
S450、网卡将待处理数据分发至第一目标缓存队列。
具体的,对应一个目标缓存队列,使用一个目标服务器的处理进程进行处理,非满载状态就是当处理进程正常处理第一目标缓存队列的数据流量且还可以继续进行数据流量缓冲时,此时可以将待处理数据分发至第一目标缓存队列进行处理。
示例性的,若第一目标缓存队列的总缓存数量为8,非满载状态比如目前第一目标缓存队列的缓存数量为4时,此时网卡中存在4个数据流量需要分发到缓存队列,确定第一目标缓存队列存在缓存空间,可以将待处理的4个数据流量分发至第一目标缓存队列。
S460、网卡根据其他缓存队列的缓存状态确定第二目标缓存队列,其他缓存队列为多个缓存队列中除第一目标缓存队列之外的缓存队列。
具体的,在第一目标缓存队列的缓存状态为满载状态时,即处理进程在处理数据流量的过程中,该处理进程对缓存队列的处理存在积压,网卡及时将后续本应分发至该第一目标缓存队列的数据流量重新计算散列结果分发至其他缓存队列,即在其他缓存队列中进一步确定第二目标缓存队列,待缓存队列满载解除后恢复原有分发方式。其中,缓存队列满载主要依赖于目标服务器的守护程序,可以持续监控程序的运行状态,通常缓存队列满载比如内存越界段错误,可以重新启动程序接触满载。
S470、网卡将待处理数据分发至第二目标缓存队列。
进一步的,作为本实施例中的一种可选方案,网卡根据其他缓存队列的缓存状态确定第二目标缓存队列,包括:网卡从其他缓存队列中查找缓存状态为非满载状态、且缓存数据量小于预设阈值的缓存队列,得到第二目标缓存队列。
其中,预设阈值是一个理论的上限值,很多情况下受到流量或者硬件的影响,可以是一个动态的识别上限值,一段时间内,有一个阈值,达到某次的上限,此时就可以认为它达到了预设阈值的上限。
示例性的,当第一目标缓存队列存在满载的情况后,网卡根据除第一目标缓存队列的其他缓存队列的缓存状态,确定其他缓存队列的缓存状态是否存在满载情况或者非满载情况,缓存队列的缓存数为8,小于8就判断为非满载状态,等于8就判断为满载状态。当判断为非满载状态后,确定待处理数据的缓存数据量,若确定的非满载缓存队列可缓存数据量为4,且待处理数据的数据量为小于4或者等于4,则成功得到第二目标缓存队列;若待处理数据的数据量大于该缓存队列,继续在剩余的其他缓存队列中确定第二目标缓存队列。
本发明实施例的技术方案提供了一种流量迁移方法,网卡接收交换机分发的待处理数据。网卡对待处理数据的附加信息进行散列计算,得到哈希值;根据哈希值确定第一目标缓存队列;在第一目标缓存队列的缓存状态为非满载状态时,网卡将待处理数据分发至第一目标缓存队列;网卡确定第一目标缓存队列的缓存状态;在第一目标缓存队列的缓存状态为满载状态时,网卡根据其他缓存队列的缓存状态确定第二目标缓存队列,其他缓存队列为多个缓存队列中除第一目标缓存队列之外的缓存队列;网卡将待处理数据分发至所述第二目标缓存队列。即在本发明实施例中,通过哈希值确定第一目标缓存队列,从而成功实现流量的迁移,确保数据节点接收到得流量更加稳定均衡。
图5是本发明实施例的流量迁移装置的一个结构示意图,该流量迁移装置可以是网卡,如图5所示,该流量迁移装置具体包括:数据接收模块510、队列计算模块520、状态确定模块530、队列确定模块540和数据分发模块550。其中,
数据接收模块510、用于接收交换机分发的待处理数据;
队列计算模块520、用于根据待处理数据的附加信息计算待处理数据应分发至的第一目标缓存队列;
状态确定模块530、用于确定第一目标缓存队列的缓存状态;
队列确定模块540、用于在第一目标缓存队列的缓存状态为满载状态时,根据其他缓存队列的缓存状态确定第二目标缓存队列,其他缓存队列为多个缓存队列中除第一目标缓存队列之外的缓存队列;
数据分发模块550、用于将待处理数据分发至第二目标缓存队列。
可选的,附加信息包括输入端口信息、源媒体存取控制MAC位址、目的MAC地址、网络类型、网络识别号、源网际互连协议IP地址、目的IP地址、IP端口信息、源传输控制协议TCP端口信息和目标TCP端口信息中的至少一者。
可选的,队列计算模块520,包括:
散列计算单元、用于对待处理数据的附加信息进行散列计算,得到哈希值;
队列确定单元、用于根据哈希值确定第一目标缓存队列。
可选的,数据分发模块550还用于:
在第一目标缓存队列的缓存状态为非满载状态时,将待处理数据分发至第一目标缓存队列。
可选的,队列确定模块540具体用于:
从其他缓存队列中查找缓存状态为非满载状态、且缓存数据量小于预设阈值的缓存队列,得到第二目标缓存队列。
可选的,流量迁移系统中还包括备用服务器,所述装置还包括:
数据回退模块,用于在根据其他缓存队列的缓存状态确定不出第二目标缓存队列时,将待处理数据回退给交换机,以使得交换机将待处理数据分发给备用服务器。
本发明实施例所提供的一种流量迁移装置,可执行本发明任意实施例所提供的流量迁移方法,具备执行方法相应的功能模块和有益效果。
图6为本发明实施例的流量迁移系统的一个结构示意图,如图6所示,该流量迁移系统包括网卡601、交换机602、目标服务器603和备用服务器604。其中,网卡是安装在目标服务器上,目标服务器具有多个缓存队列和对应的多个处理进程,每个处理进程处理对应缓存队列中缓存的数据。具体的:
网卡601用于:接收交换机602分发的待处理数据;并根据待处理数据的附加信息计算待处理数据应分发至的第一目标缓存队列;网卡601进一步确定第一目标缓存队列的缓存状态;在第一目标缓存队列的缓存状态为满载状态时,网卡601根据其他缓存队列的缓存状态确定第二目标缓存队列,其他缓存队列为多个缓存队列中除第一目标缓存队列之外的缓存队列;然后网卡601将待处理数据分发至第二目标缓存队列,最后目标服务器603对缓存队列中的数据继续处理。当目标服务器603故障导致智能网卡无法启动时,将数据分发给备用服务器604。
交换机602用于:将待处理数据分发给网卡601;当网卡601无法缓存待处理数据后,交换机602接收网卡601无法处理的数据,并将数据分发到备用服务器604。
目标服务器603用于:将网卡601依附在目标服务器603上,目标服务器603上的各个缓存队列对应的处理进程处理缓存队列中的数据流量。
备用服务器604用于:在目标服务器603所有的缓存队列都存在满载情况,或者瞬时流量远大于该目标服务器603的性能处理上限时,备用服务器604接收待处理的数据流量并进行处理,处理方式可以和目标服务器603一样采用网卡的形式,本实施例对此不进行限定。
本实施例提供的流量迁移系统,包括网卡、交换机、目标服务器和备用服务器。其中,网卡是安装在目标服务器上,目标服务器具有多个缓存队列和对应的多个处理进程,每个处理进程处理对应缓存队列中缓存的数据。通过网卡接收交换机分发的待处理数据,使用网卡根据待处理数据的附加信息计算待处理数据应分发至的第一目标缓存队列;网卡确定第一目标缓存队列的缓存状态;在第一目标缓存队列的缓存状态为满载状态时,网卡根据其他缓存队列的缓存状态确定第二目标缓存队列,其他缓存队列为多个缓存队列中除第一目标缓存队列之外的缓存队列;网卡将待处理数据分发至第二目标缓存队列。即在本发明实施例中,通过网卡利用自身的计算能力进行流量迁移,可以达到灵活的负载均衡策略,数据节点接收到得流量更加稳定均衡的效果。
图7为本发明实施例的电子设备的一个结构示意图,该电子设备包括处理器710、存储器720、输入装置730和输出装置740;电子设备中处理器710的数量可以是一个或多个,图7中以一个处理器710为例;电子设备中的处理器710、存储器720、输入装置730和输出装置740可以通过总线或其他方式连接,图7中以通过总线连接为例。
存储器720作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的流量迁移方法对应的程序指令/模块(例如流量迁移装置中的数据接收模块510、队列计算模块520、状态确定模块530、队列确定模块540和数据分发模块550),处理器710通过运行存储在存储器720中的软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现上述的流量迁移方法。
存储器720可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器720可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器720可进一步包括相对于处理器710远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置730可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。输出装置740可包括显示屏等显示设备。
本发明实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种流量迁移方法,该方法包括:
网卡接收交换机分发的待处理数据;
网卡根据待处理数据的附加信息计算待处理数据应分发至的第一目标缓存队列;
网卡确定第一目标缓存队列的缓存状态;
在第一目标缓存队列的缓存状态为满载状态时,网卡根据其他缓存队列的缓存状态确定第二目标缓存队列,其他缓存队列为多个缓存队列中除第一目标缓存队列之外的缓存队列;
网卡将待处理数据分发至第二目标缓存队列。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的流量迁移方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述搜索装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种流量迁移方法,其特征在于,应用于流量迁移系统,所述流量迁移系统中包括交换机、网卡和目标服务器,所述网卡安装在所述目标服务器上,所述目标服务器具有多个缓存队列和对应的多个处理进程,每个处理进程处理对应缓存队列中缓存的数据,所述方法包括:
所述网卡接收所述交换机分发的待处理数据;
所述网卡根据所述待处理数据的附加信息计算所述待处理数据应分发至的第一目标缓存队列;
所述网卡确定所述第一目标缓存队列的缓存状态;
在所述第一目标缓存队列的缓存状态为满载状态时,所述网卡根据其他缓存队列的缓存状态确定第二目标缓存队列,所述其他缓存队列为所述多个缓存队列中除所述第一目标缓存队列之外的缓存队列;
所述网卡将所述待处理数据分发至所述第二目标缓存队列;
其中,所述待处理数据是要存入所述第一目标缓存队列的数据流量;相应的,所述网卡确定第一目标缓存队列的缓存状态,包括:确定所述第一目标缓存队列的缓存状态是否能够进行数据流量的存入。
2.根据权利要求1所述的流量迁移方法,其特征在于,所述附加信息包括输入端口信息、源媒体存取控制MAC位址、目的MAC地址、网络类型、网络识别号、源网际互连协议IP地址、目的IP地址、IP端口信息、源传输控制协议TCP端口信息和目标TCP端口信息中的至少一者。
3.根据权利要求1或2所述的流量迁移方法,其特征在于,所述网卡根据所述待处理数据的附加信息计算所述待处理数据应分发至的第一目标缓存队列,包括:
所述网卡对所述待处理数据的附加信息进行散列计算,得到哈希值;
根据所述哈希值确定所述第一目标缓存队列。
4.根据权利要求1所述的流量迁移方法,其特征在于,在确定所述第一目标缓存队列的缓存状态之后,还包括:
在所述第一目标缓存队列的缓存状态为非满载状态时,所述网卡将所述待处理数据分发至所述第一目标缓存队列。
5.根据权利要求1所述的流量迁移方法,其特征在于,所述网卡根据其他缓存队列的缓存状态确定第二目标缓存队列,包括:
所述网卡从所述其他缓存队列中查找缓存状态为非满载状态、且缓存数据量小于预设阈值的缓存队列,得到所述第二目标缓存队列。
6.根据权利要求1所述的流量迁移方法,其特征在于,所述流量迁移系统中还包括备用服务器,所述方法还包括:
在所述网卡根据所述其他缓存队列的缓存状态确定不出所述第二目标缓存队列时,所述网卡将所述待处理数据回退给所述交换机,以使得所述交换机将所述待处理数据分发给所述备用服务器。
7.一种流量迁移装置,其特征在于,应用于流量迁移系统,所述流量迁移系统中包括交换机、网卡和目标服务器,所述网卡安装在所述目标服务器上,所述目标服务器具有多个缓存队列和对应的多个处理进程,每个处理进程处理对应缓存队列中缓存的数据,所述装置包括:
数据接收模块,用于所述网卡接收所述交换机分发的待处理数据;
队列计算模块,用于所述网卡根据所述待处理数据的附加信息计算所述待处理数据应分发至的第一目标缓存队列;
状态确定模块,用于所述网卡确定所述第一目标缓存队列的缓存状态;
队列确定模块,用于在所述第一目标缓存队列的缓存状态为满载状态时,所述网卡根据其他缓存队列的缓存状态确定第二目标缓存队列,所述其他缓存队列为所述多个缓存队列中除所述第一目标缓存队列之外的缓存队列;
数据分发模块,用于所述网卡将所述待处理数据分发至所述第二目标缓存队列;
其中,所述待处理数据是要存入所述第一目标缓存队列的数据流量;相应的,所述状态确定模块,包括:确定所述第一目标缓存队列的缓存状态是否能够进行数据流量的存入。
8.一种流量迁移系统,其特征在于,包括交换机、目标服务器以及如权利要求1至6任意一项所述的网卡,所述网卡安装在所述目标服务器上,所述目标服务器具有多个缓存队列和对应的多个处理进程,每个处理进程处理对应缓存队列中缓存的数据。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6中任一项所述的一种流量迁移方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至6中任一项所述的一种流量迁移方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111260898.2A CN114024915B (zh) | 2021-10-28 | 2021-10-28 | 一种流量迁移方法、装置、系统、电子设备及存储介质 |
PCT/CN2022/103219 WO2023071272A1 (zh) | 2021-10-28 | 2022-07-01 | 一种流量迁移方法、装置、系统、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111260898.2A CN114024915B (zh) | 2021-10-28 | 2021-10-28 | 一种流量迁移方法、装置、系统、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114024915A CN114024915A (zh) | 2022-02-08 |
CN114024915B true CN114024915B (zh) | 2023-06-16 |
Family
ID=80058061
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111260898.2A Active CN114024915B (zh) | 2021-10-28 | 2021-10-28 | 一种流量迁移方法、装置、系统、电子设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114024915B (zh) |
WO (1) | WO2023071272A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114024915B (zh) * | 2021-10-28 | 2023-06-16 | 北京锐安科技有限公司 | 一种流量迁移方法、装置、系统、电子设备及存储介质 |
CN116016092A (zh) * | 2022-12-13 | 2023-04-25 | 杭州领祺科技有限公司 | 一种基于多线程的mqtt同步消息方法 |
CN117640796A (zh) * | 2024-01-03 | 2024-03-01 | 北京火山引擎科技有限公司 | 网络报文处理方法及设备 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111131074B (zh) * | 2018-10-31 | 2023-04-11 | 中移(杭州)信息技术有限公司 | 一种数据处理方法、装置、系统、服务器及可读存储介质 |
CN109450816B (zh) * | 2018-11-19 | 2022-08-12 | 迈普通信技术股份有限公司 | 一种队列调度方法、装置、网络设备及存储介质 |
CN110493145B (zh) * | 2019-08-01 | 2022-06-24 | 新华三大数据技术有限公司 | 一种缓存方法及装置 |
CN112463654A (zh) * | 2019-09-06 | 2021-03-09 | 华为技术有限公司 | 一种带预测机制的cache实现方法 |
US11138124B2 (en) * | 2019-10-30 | 2021-10-05 | International Business Machines Corporation | Migrating data between block pools in a storage system |
CN111371866B (zh) * | 2020-02-26 | 2023-03-21 | 厦门网宿有限公司 | 一种处理业务请求的方法和装置 |
CN114024915B (zh) * | 2021-10-28 | 2023-06-16 | 北京锐安科技有限公司 | 一种流量迁移方法、装置、系统、电子设备及存储介质 |
-
2021
- 2021-10-28 CN CN202111260898.2A patent/CN114024915B/zh active Active
-
2022
- 2022-07-01 WO PCT/CN2022/103219 patent/WO2023071272A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
CN114024915A (zh) | 2022-02-08 |
WO2023071272A1 (zh) | 2023-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114024915B (zh) | 一种流量迁移方法、装置、系统、电子设备及存储介质 | |
US9632839B2 (en) | Dynamic virtual machine consolidation | |
US8364163B2 (en) | Method, system and apparatus for connecting a plurality of client machines to a plurality of servers | |
CN111277629A (zh) | 一种基于高可用性的web高并发系统及方法 | |
US9641428B2 (en) | System and method for paging flow entries in a flow-based switching device | |
CN108139966B (zh) | 管理转址旁路缓存的方法和多核处理器 | |
US9304939B2 (en) | Method and multi-core communication processor for replacing data in system cache | |
WO2019237594A1 (zh) | 会话保持方法、装置、计算机设备及存储介质 | |
CN108282522B (zh) | 基于动态路由的数据存储访问方法及系统 | |
CN106713378B (zh) | 实现多个应用服务器提供服务的方法和系统 | |
Mendelson et al. | Anchorhash: A scalable consistent hash | |
US20150220438A1 (en) | Dynamic hot volume caching | |
US10862805B1 (en) | Intelligent offloading of services for a network device | |
JP2019016042A (ja) | データ取得プログラム、装置、及び方法 | |
JP2016051446A (ja) | 計算機システム、計算機、負荷分散方法及びそのプログラム | |
EP3241309B1 (en) | Overprovisioning floating ip addresses to provide stateful ecmp for traffic groups | |
CN113507431B (zh) | 一种报文管理方法、装置、设备及机器可读存储介质 | |
US20190220401A1 (en) | Method and apparatus for search engine cache | |
US20030225965A1 (en) | Hitless restart of access control module | |
CN117061535A (zh) | 多活构架数据同步方法、装置、计算机设备和存储介质 | |
CN116055446B (zh) | 跨网络的报文转发方法、电子设备及机器可读存储介质 | |
US11902365B2 (en) | Regulating enqueueing and dequeuing border gateway protocol (BGP) update messages | |
WO2019165841A1 (zh) | 网元主备配对方法及装置 | |
CN115484233A (zh) | 数通芯片中链路聚合报文的转发方法、装置、设备及介质 | |
CN112131201B (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 |