报文处理方法、相关设备及计算机存储介质与流程

文档序号:16900639发布日期:2019-02-19 17:57阅读:113来源:国知局
本发明涉及通信
技术领域
:,尤其涉及报文处理方法、相关设备及计算机存储介质。
背景技术
::随着云计算技术的不断发展和日益普及,其在实现服务的高可用性、处理能力的可扩展性等方面的优势越来越凸显了。平台即服务(platformasaservice,paas)作为云计算的一种重要服务,能够加快应用的开发、部署、测试和上线。其中,负载均衡服务(loadbalanceservice,lbs)是paas平台提供的一个核心服务,可检测平台后端的服务实例(也可称为pod)的负载情况,并采取调度策略进行负载均衡。在实践中发现,现有的调度策略有多种,lbs可随机选用任一种调度策略来实现pod的负载均衡。例如,lbs选用轮询调度策略让每个pod都处理业务,这并不能满足特定业务的实际通信需求,例如时延敏感型业务,或者需按业务调度到同一pod处理的多人网络会议以及多人网络游戏业务等等。此外,还可能会增加业务通信的时延和复杂度,影响业务性能。技术实现要素:本发明实施例公开了报文处理方法、相关设备及计算机存储介质,能够解决现有技术中存在的无法满足特定业务的实际通信需求等问题。第一方面,本发明实施例公开提供了一种报文处理方法,所述方法包括:负载均衡装置接收用户设备发送的数据报文,该数据报文用于请求处理业务。该数据报文中可包括历史关联信息,用于确定是否已存在该历史关联信息对应绑定的服务实例,该服务实例的数量并不做限定,其可为一个或多个。当该服务实例的数量为多个时,多个服务实例可组成一个服务实例集。进一步地,在数据报文包括历史关联信息时,负载均衡装置根据该历史关联信息选择用于处理数据报文的服务实例。进而,将数据报文发送给选择的服务实例进行处理。通过实施本发明实施例,可依据数据报文中的历史关联信息来选择用于处理数据报文的服务实例,以解决现有技术中存在的无法满足特定业务的通信需求的问题。结合第一方面,在第一方面的第一种可能的实施方式中,如果与该历史关联信息绑定的服务实例的负载未超过负载阈值时,则选择与该历史关联信息绑定的服务实例。具体存在以下两种可能的实施情况。第一种,如果与历史关联信息绑定的服务实例为一个,且该服务实例的负载未超过负载阈值,则选择与历史关系信息绑定的服务实例,作为用于处理数据报文的服务实例。第二种,如果与历史关联信息绑定的服务实例有多个,且该多个服务实例中存在负载未超过负载阈值的服务实例,则从负载未超过阈值的服务实例中选取一个服务实例,作为用于处理数据报文的服务实例。结合第一方面或第一方面的第一种可能的实施方式,在第一方面的第二种可能的实施方式中,如果与该历史关联信息绑定的服务实例的负载超过负载阈值时,则选择新的服务实例。具体的,与历史关联信息绑定的服务实例为一个或多个,且每个服务实例的负载均超过负载阈值,则负载均衡装置可选择新的服务实例,作为用于处理数据报文的服务实例。结合第一方面或第一方面的第一种或第二种可能的实施方式中,在第一方面的第三种可能的实施方式中,在数据报文未包括历史关联信息时,负载均衡装置可按照预设的负载均衡规则选择新的服务实例,作为用于处理数据报文的服务实例。结合第一方面或第一方面的第一种至第三种可能的实施方式中,在第一方面的第四种可能的实施方式中,历史关联信息具体用于标识用户或者用于标识服务。第二方面,本发明实施例提供了一种负载均衡装置,所述装置包括用于执行如上第一方面或第一方面的任意可能的实施方式中所描述的方法的功能模块或单元。第三方面,本发明实施例提供了一种负载均衡装置,包括:处理器和存储器,其中在执行存储器中的指令时,负载均衡装置执行上述第一方面或第一方面的任意可能的实施方式中所描述的方法。可选地,该装置还可包括通信接口和总线。其中,处理器、通信接口、存储器通过总线相互通信;通信接口,用于接收和发送数据;存储器,用于存储指令;处理器,用于调用存储器中的指令,执行上述第一方面或第一方面的任意可能的实施方式中所描述的方法。第四方面,提供了一种计算机非瞬态(non-transitory)存储介质,所述计算机非瞬态存储介质存储了用于报文处理的程序代码。所述程序代码包括用于执行上述第一方面或第一方面的任意可能的实施方式中所描述的方法的指令。第五方面,提供了一种芯片产品,以执行上述第一方面或第一方面的任意可能的实施方式中的方法。本发明在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。图1是本发明实施例提供的一种网络框架示意图。图2是本发明实施例提供的一种场景示意图。图3是本发明实施例提供的一种报文处理方法的流程示意图。图4是本发明实施例提供的一种报文格式示意图。图5是本发明实施例提供的一种可选项字段的格式示意图。图6是本发明实施例提供的一种负载均衡装置的结构示意图。图7是本发明实施例提供的另一种负载均衡装置的结构示意图。具体实施方式下面结合附图,对本发明的实施例进行描述。为解决现有技术中存在的无法满足特定业务的通信需求、业务通信时延或复杂度较高等问题,本发明提出一种报文处理方法、所述方法适用的网络框架以及相关设备。首先,介绍本发明适用的网络框架示意图。请参见图1,是本发明实施例提供的一种网络框架示意图。如图1所示的网络框架100包括用户设备集群102、负载均衡装置104以及服务设备集群106。其中,用户设备集群102中包括一个或多个用户设备,图示以m个用户设备为例示出,m为正整数。服务设备集群106中包括有一个或多个服务设备,图示以n个服务设备为例示出,n为正整数。用户设备集群102中的m个用户设备部署在外网中,外网可以是互联网(internet)。所述用户设备102包括但不限于手机、平板电脑(tablepersonalcomputer)、个人数字助理(personaldigitalassistant,pda)、移动上网装置(mobileinternetdevice,mid)、可穿戴式设备(wearabledevice)以及其他支持和网络通信的设备等。服务设备集群106中的n个服务设备部署在内网中,内网可以是局域网(localareanetwork,lan)。服务设备是指用于提供业务服务的设备,服务设备集群中的n个服务设备可以支持提供相同的业务服务,也可支持提供不同的业务服务。本发明中,服务设备是指部署有一个或多个服务实例(pod)的设备,该服务实例用于提供业务服务,例如语音服务、视频服务、网络会议服务以及会话服务等等,本发明不做限定。服务设备集群中的n个服务设备各自部署有用于提供相同的业务服务的服务实例,例如n个服务设备均用于提供网络会话服务等等。在实际应用中,服务设备既可为硬件设备,也可为由软件程序实现的功能模块。其包括但不限于服务器、主机、虚拟机、容器等等。负载均衡装置104部署在隔离区(demilitarizedzone,dmz),用于实现用户设备的负载均衡。具体的,负载均衡装置采用预设的调度策略将用户设备发送的业务请求(也可为承载业务请求的数据报文)分配到n个服务设备中的任一个或多个设备中进行处理,避免某些服务设备的负载量过大,导致业务通信的时延较大、业务性能和用户体验受影响等。其中,两个防火墙之间的空间称为dmz,俗称非军事区。也可理解为不同于外网或内网的特殊网络区域,dmz内通常部署一些网站web服务器、邮件mail服务器以及负载均衡装置(loadbalance,lb)等不含机密信息的设备。在实际通信过程中,用户设备集群102中的用户设备通过外网可与负载均衡装置104通信,服务设备集群104中的服务设备通过内网可与负载均衡装置104通信。调度策略用于实现业务请求的调度或分配,该调度策略也可称为负载均衡策略(或负载均衡规则),其具体可为系统自定义设置的。在传统技术中,调度策略有以下十种:(1)、轮询调度(roundrobin,rr)轮询调度是指按依次循环的方式将业务请求调度到不同的服务实例(具体可为服务设备中部署的任一服务实例)中。在实际应用中,每个服务实例处理请求的能力通常是相同的,负载均衡装置可将所有的业务请求平均分配到每个服务实例上处理。(2)、加权轮询调度(weightroundrobin,wrr)加权轮询调度主要是对轮询调度的一种优化和补充,负载均衡装置会考虑每个服务实例的性能,给每个服务实例分配一个权值,该权值用于反映服务实例处理业务请求的能力。权值越大的服务实例,处理的业务请求越大。例如,服务实例a的权值为1,服务实例b的权值为2,则负载均衡装置调度到服务实例b的业务请求是服务实例a的两倍。(3)、最小连接调度(leastconnections,lc)最小连接调度是指将新的用户设备的业务请求分配到连接数最小的服务实例上。最小连接调度是一种动态的调度算法,通过服务实例当前通信连接的用户设备的数量(也可称为连接数)来估计服务实例的情况。负载均衡装置记录服务实例的连接数,当一个用户设备的业务请求被调度到服务实例时,该服务实例的连接数加1,当连接中断或超时时,该服务实例的连接数减1。(4)、加权最小连接调度(weightleastconnections,lc)加权最小连接调度是最小连接调度的优化。每个服务实例配置有相应地权值,用于表示该服务实例的处理性能。服务实例的缺省权值为1,系统可动态调整服务实例的权值。在调度过程中,负载均衡装置在调度用户设备的业务请求时尽可能使服务实例的连接数和该服务实例的权值成比例。负载均衡装置可自动获取服务实例的负载情况,动态调整该服务实例的权值。(5)、基于局部的最少连接(locality-basedleastconnections,lblc)lblc是针对业务请求的数据报文的目标互联网协议(internetprotocol,ip)地址的负载均衡调度,主要应用于缓存(cache)集群系统,是因为该系统中用户设备的数据报文的目标ip地址是变化的。假设每个服务实例都可以处理任一业务请求,lblc的设计目标是:在服务实例的负载均衡的情况下,将相同目标ip地址的业务请求调度到同一服务实例处理,以提高业务处理效率和性能。具体的,lblc先根据业务请求的目标ip地址找出该目标ip地址最近使用的服务实例,若该服务实例可用且没有超载(负载量小于或等于预设阈值),将该业务请求发送到该服务实例中处理。若该服务实例不存在,或者该服务实例超载且有一半及以上的工作负载,则使用“最小连接”原则选出一个可用的服务实例,将业务请求发送到该服务实例中处理。(6)、带复制的基于局部性的最少连接(locality-basedleastconnectionswithreplication,lblcr)lblcr也是针对目标ip地址的负载均衡,应用于cache集群系统。与lblc不同之处在于:lblc维护一个目标ip地址和一个服务实例的映射,而lblcr维护一个目标ip地址和一组服务实例的映射。具体的,lblcr按“最小连接”原则从与目标ip地址对应的服务实例组中选出一个服务实例,若该服务实例没有超载,将用户设备的业务请求发送给该服务实例处理。若该服务实例超载,则按“最小连接”原则从服务实例集群中选取一个服务实例,将选取的服务实例添加到与目标ip地址对应的服务实例组中,进一步可将业务请求发送到该服务实例中处理。同时,当该服务实例组有一段时长未被修改,可将该服务实例组中最忙碌(负载量最大)的一个服务实例删除,以降低复制程度,即降低重复被选中用于处理业务请求的概率。(7)、目标地址散列调度(destinationhashing,dh)dh将业务请求的目标ip地址作为散列键(hashkey),从静态分配的散列表中查找与散列键对应的服务实例,若该服务实例可用且没有超载,则将业务请求调度到该服务实例中处理。否则,返回为空,结束流程。(8)、源地址散列调度(sourcehashing,sh)sh将业务请求的源ip地址作为散列键,从静态分配的散列表中查找与散列键对应的服务实例,若该服务实例可用且没有超载,则将业务请求调度到该服务实例中处理。否则,返回为空,结束流程。(9)、最短的期望的延迟(shortestexpecteddelay,sed)sed是基于加权最少连接wlc的调度算法。举例来说,假设三个服务实例分别为:a、b和c。三个服务实例各自的权值对应为:1,2和3。如果采用wlc调度业务请求时,可将新进入的业务请求调度给服务实例abc中的任意一个。而使用sed调度时,采用如下公式计算服务实例对应的运算结果:(1+权值)/权值。这里即为,a:(1+1)/1=2,b:(1+2)/2=1.5,c:(1+3)/3=4/3。相应地,sed将业务请求发送给运算结果最小的服务实例c进行处理。(10)、最少队列调度(neverqueue,nq)nq是指无需排队的调度算法。如果服务实例的连接数等于0,负载均衡装置将用户设备的业务请求调度到该服务实例中进行处理,无需进行sed运算。其次,介绍本发明适用的场景示意图。请参见图2,是本发明实施例提供的一种场景示意图。如图2所示的场景中示出m个用户设备、一个负载均衡装置以及n个服务实例(pod)。其中,m个用户设备部署在外网中,负载均衡装置部署在隔离区dmz中,n个服务实例部署在内网中。每个服务实例提供相应地业务服务,例如会议服务、微信服务、游戏服务等等。在n个服务实例中的任意两个服务实例提供的业务服务,它们可以相同,也可不同,本发明并不做限定。可选地,本发明示出的n个服务实例位于同一服务实例集中,均用于提供相同的业务服务。其中,在开源平台kubernetes中,服务实例pod是一种基本功能单元或模块。一个pod包括一组容器以及它们共享的卷(volumes),用于提供相应地功能服务。每个pod会被指派一个唯一的ip地址,以通过该ip地址实现通信。关于服务实例pod的相关阐述,本发明不做限定。如图2,在实际通信过程中,用户设备通过外网与负载均衡装置通信,例如将用户设备的业务请求(具体可为承载业务请求的数据报文)发送给负载均衡装置。负载均衡装置通过内网与服务实例通信,例如将用户设备的业务请求调度到服务实例中进行处理。其中,负载均衡装置配置有相应地通信端口,该通信端口用于传输特定业务的数据报文,该特定业务为系统自定义的一个或多个业务,本发明不做限定。可选地,针对不同的业务通信,负载均衡装置可配置有不同的通信端口,以处理不同业务的通信请求。该通信端口可为集成接收功能和发送功能一体的端口,例如该端口可用于接收用户设备发送的数据报文,同时也可用于向服务实例发送数据报文。或者,该通信端口可包括第一端口和第二端口,其中第一端口用于与用户设备通信,例如接收用户设备发送的数据报文。第二端口用于与服务实例通信,例如向服务实例发送数据报文等等,本发明并不限定。举例来说,如图2所示假设负载均衡装置配置有两个端口,第一端口用于与支持网络会议业务的用户设备通信,第二端口用于与支持处理网络会议业务的服务实例pod通信。如图所示,第一端口的端口号为8118,第二端口的端口号为3008。在网络会议业务通信过程中,用户设备1(user1)通过外网向负载均衡装置发送业务请求。负载均衡装置通过8118端口接收用户设备1发送的业务请求,进而采用预设的调度策略将业务请求发送给pod1。具体的,负载均衡装置向ip地址为172.1.0.1的pod1发送业务请求。相应地,该pod1通过3008端口接收负载均衡装置发送的业务请求,进而处理该业务请求。关于调度策略具体可参见前述实施例中的相关阐述,这里不再赘述。接着,请参见图3是本发明实施例提供的一种报文处理方法的流程示意图。如图3所示的方法包括如下实施步骤:步骤s301、用户设备向负载均衡装置发送数据报文。相应地,负载均衡装置接收用户设备发送的数据报文。在业务通信过程中,用户设备可向负载均衡装置发送数据报文,所述数据报文用于请求处理业务,也即是请求提供处理该业务所需的业务服务,该业务服务包括但不限于网络会议服务、通话服务以及游戏服务等等。其中,数据报文中可携带有历史关联信息,该历史关联信息可用于标识用户(即标识用户设备)或者标识服务(即标识业务服务)。其具体用于确定是否存在有与该历史关联信息关联绑定的服务实例,该服务实例的数量并不做限定,当服务实例的数量为一个以上时,该一个以上的服务实例也可称为服务实例集。关于服务实例具体可参见前述实施例中的相关介绍,这里不再赘述。在一个示例中,历史关联信息用于标识用户设备,该历史关联信息具体可为用于代表用户设备的名称、型号、身份识别(identify,id)号、或者其他用于区别用户设备的关键信息等。具体存在以下几种可能的实施方式。第一种,本发明中的用户设备可预先关联绑定一个服务实例。便于后续利用该服务实例来处理该用户设备的数据报文。例如,用户设备发送的数据报文中携带有历史关联信息,该历史关联信息用于标识该用户设备,则负载均衡设备可根据该历史关联信息查找对应的服务实例,以将数据报文发送给查找的服务实例处理。第二种,本发明中同一用户设备集群可预先关联绑定一个服务实例。便于后续利用该服务实例来处理该用户设备集群中任一用户设备的数据报文。第三种,本发明中同一用户设备集群可预先关联绑定一个服务实例集群,该服务实例集群中包括多个服务实例。便于后续利用该服务实例集群中的服务实例来处理该用户设备集群中任一用户设备的数据报文。其中,该服务实例集群中的每个服务实例均可提供相同的业务服务,以用于处理用户设备集群中每个用户设备的针对该业务服务的数据报文。关于任一用户设备如何从服务实例集群中选取服务实例来处理该用户设备的数据报文,具体在本发明下文s302中详细阐述。本发明涉及的用户设备集群包括有一个或多个用户设备,其所包括的各个用户设备具体可为系统自定义设置的。例如,该用户设备集群中的每个用户设备需满足以下条件中的任一个或多个的组合:1)该用户设备集群中的每个用户设备对应具有相同的历史关联信息。2)该用户设备集群中的每个用户设备对应具有的历史关联信息属于同一类型,也即是系统可将具有同一类型的历史关联信息的多个用户设备组成一个用户设备集群,该历史关联信息所属的类型也可理解为该历史关联信息对应的用户设备的类型,例如电视类设备、超声诊断类设备等等。3)该用户设备集群中的每个用户设备的历史关联信息之间的相似度大于或等于预设相似度,该预设相似度为系统自定义设置的,例如根据经验值设定的,或者根据一些列实验数据统计获得的等等。也即是,系统可将相似度较近的历史关联信息对应的多个用户设备组成一个用户设备集群。在一个示例中,历史关联信息用于标识业务服务,该历史关联信息具体可为用于代表业务服务的名称、功能说明、编号等信息。具体的,系统可预先为同一业务服务或同一类业务服务(具体可为同一种业务或同一类业务)关联绑定一个服务实例或服务实例集,便于利用该服务实例或者该服务实例集中的服务实例来处理该(类)业务服务的用户设备发送的数据报文。步骤s302、负载均衡装置根据数据报文,确定用于处理该数据报文的服务实例。步骤s303、负载均衡装置向确定的服务实例发送数据报文。相应地,服务实例接收并处理该数据报文。下面阐述步骤s302涉及的几种具体实施方式。在一种可能的实施方式中,数据报文中包括有历史关联信息,该历史关联信息用于确定是否存在有该历史关联信息对应绑定的服务实例。负载均衡装置在接收数据报文后,可根据数据报文中包括的历史关联信息,确定是否已存在与该历史关联信息对应绑定的服务实例。具体的,负载均衡装置可根据数据报文中的历史关联信息,从历史分配记录中查询是否存在有该历史关联信息对应绑定的服务实例。该历史分配记录用于记录是否为历史关联信息对应绑定分配有相应地服务实例。其中,该历史分配记录具体可以表格、文字、数组等形式存储在负载均衡装置本地,或者存储在预设的数据库中。以数据库为例,该数据库具体可为部署在负载均衡装置本地的数据库,也可为部署在其他设备(例如云端服务器)的数据库,本发明并不做限定。如果存在与该历史关联信息对应绑定的一个服务实例时,负载均衡装置可进一步确定该绑定的服务实例的负载是否大于或等于负载阈值。当负载小于负载阈值,则确定该绑定的服务实例没超载,将绑定的服务实例确定为用于处理数据报文的服务实例。当负载大于或等于负载阈值时,则确定该绑定的服务实例超载,负载均衡装置可选取一个新的服务实例作为用于处理数据报文的服务实例。例如,负载均衡装置可从除该绑定的服务实例之外的服务实例集中(该服务实例集中包括的服务实例与绑定的服务实例提供相同的功能或业务服务)选取负载最小的一个服务实例,作为用于处理数据报文的服务实例。或者,负载均衡装置可随机或者采用预设的第一调度策略选取一个新的服务实例,以作为用于处理数据报文的服务实例,该第一调度策略为系统自定义设置的,例如前文所述的轮询调度策略等等。如果存在与该历史关联信息对应绑定的多个服务实例(即服务实例集群),该多个服务实例中的每个服务实例均支持处理同一业务的数据报文(具体可为该历史关联信息对应标识的用户设备或业务服务的数据报文)。进一步地,负载均衡装置可确定多个服务实例中是否存在有负载小于负载阈值的至少一个服务实例。如果不存在,负载均衡装置从除绑定的多个服务实例之外的服务实例集中(该服务实例集中包括的服务实例和绑定的多个服务实例提供相同的业务服务)采用预设的调度策略选取一个新的服务实例,作为用于处理数据报文的服务实例。如果存在,负载均衡装置可从至少一个服务实例中选取一个服务实例,作为用于处理数据报文的服务实例。例如,负载均衡装置可随机、随意从至少一个服务实例中选取一个服务实例作为用于处理数据报文的服务实例。或者,负载均衡装置可采用预设的第二调度策略从至少一个服务实例中选取一个服务实例,作为用于处理数据报文的服务实例,该第二调度策略为系统自定义设置的,例如负载最小调度策略等等。如果不存在该历史关联信息对应绑定的服务实例,负载均衡装置可采用预设的第三调度策略从服务实例集中选取一个新的服务实例,作为用于处理数据报文的服务实例。该服务实例集中包括一个或多个服务实例,每个服务实例均支持处理该历史关联信息对应标识的用户设备或业务服务的数据报文。关于该调度策略具体可参见前述实施例中的相关介绍,这里不再赘述。在另一种可能的实施方式中,数据报文中不包括历史关联信息。则负载均衡装置可采用预设的第三调度策略(也可称为负载均衡规则)从服务实例集中选取一个新的服务实例,作为用于处理数据报文的服务实例。关于服务实例集的相关阐述,可参见前述实施例中的相关介绍,这里不再赘述。其中,本发明上文涉及的第一调度策略至第三调度策略,均可为系统自定义设置的调度策略,也可称为负载均衡规则。它们可以相同,也可不相同,本发明并不做限定。其具体可参见前述实施例中关于调度策略的相关阐述,这里不再赘述。相应地,步骤s303中在负载均衡装置确定到用于处理数据报文的服务实例后,可将s301中接收的数据报文发送给该服务实例。相应地,该服务实例接收该数据报文,并处理该数据报文以提供所述数据报文所请求的业务服务。举例来说,以网络会议业务为例,假设用户设备向进入网络会议a中与会。用户设备向负载均衡装置发送数据报文,该数据报文具体用于请求pod提供相应地网络会议服务,以便用户设备进入网络会议a中。相应地,负载均衡装置在确定服务实例后,将该数据报文发送给该服务实例,该服务实例用于提供网络会议a相关的网络会议服务。相应地,服务实例接收到该数据报文后,可启用网络会议服务相关的线程,为用户设备提供相应地网络会议服务,以让用户设备进入网络会议a中成功与会。在一种可能的实施例中,当负载均衡装置选取一个新的服务实例作为用于处理数据报文的服务实例时,负载均衡装置可将该新的服务实例和该历史关联信息发送至数据库中,便于在数据库中存储该新的服务实例和该历史关联信息间的关联绑定关系。也即是,数据库将更新历史分配记录,以将该新的服务实例和该历史关联信息关联绑定存储至自身数据库中。在一种可能的实施例中,在业务通信过程中,如果用户设备发生业务中断(例如网络出现故障或者用户设备断开通信)时,负载均衡装置可更新该确定的服务实例的负载,例如将该服务实例的负载减1。如果该服务实例的负载为0,还可控制删除关于该服务实例的历史分配记录。具体的,负载均衡装置在预设时长内未接收到用户设备的数据报文(具体可为响应报文),则可确定用户设备发生了业务中断。此时,负载均衡装置可向数据库发送通知消息,该通知消息用于通知更新该用户设备对应确定的服务实例的历史分配记录,例如,通知减小该服务实例的负载。可选地,如果该服务实例的负载为0,数据库可直接删除该服务实例的分配记录等等,本发明并不做限定。在一种可选实施例中,本发明涉及的历史关联信息也可称为关键信息,其具体可为关键字、关键值或者关键词汇等等,本发明并不做限定。该历史关联信息具体可承载在数据报文中的默认字段中,该默认字段为系统自定义的字段。例如,以数据报文为传输控制协(transmissioncontrolprotocol,tcp)报文为例,该历史关联信息可承载在tcp报文的可选项数据字段中。可选地,该历史关联信息具体可采用类型长度值(typelengthvalue,tlv)方式承载在可选项数据字段中。如图4示出一种tcp报文的格式示意图。如图4所示的tcp报文的格式中包括tcp报文头和数据。tcp报文头具体包括源端口字段(sourceportnumber)、目的端口字段(destinationportnumber)、序号字段(sequencenumber)、确认序号字段(acksequencenumber)、数据偏移字段(dateoffset)、保留字段(reserved)、控制位字段(controlflags)、窗口字段(windowsize)、校验和(checksum)、紧急指针(urgentpointer)和可选项数据字段(optionaldata)。其中:源端口字段,占2字节(bytes),标识报文的返回地址。目的端口字段,占2bytes,指明接收端的接收端口(或应用程序端口)。序号字段,占4bytes,是tcp可靠传输的关键部分。表示报文的第一个字节的序号。确认序号字段,占4bytes,是tcp可靠传输的关键部分。指明下一个期待接收的字节序号。数据偏移字段,也可称为报文头长度字段,占4比特(bits),指示tcp报文头的长度,即数据从何处开始。保留字段,占3bits,为将来定义新的功能用途作保留。控制位字段,占9bits,包括6个标志位,每个标志位表示一个控制功能。窗口字段,占2bytes,表示接收端当前的接收窗还有多少剩余空间,用于tcp的流量控制。校验和字段,占2bytes,奇偶校验,用于对报文进行校验。紧急指针字段,占2bytes,当控制位字段中的紧急指针标志位为1时才有效。当紧急指针标志位没有被设置时,可作为填充字段。可选项数据字段,自定义字段,长度需为32bit的整数倍。本发明中,该可选项数据字段的格式可如图5所示,该可选项数据字段包括类型(type)、长度(length)和值(value)。其中,类型表示了可选项数据字段被定义的类型,例如type=historicalcontext,标识了可选项数据字段被定义为历史关联字段,指示用于承载历史关联信息。长度定义了历史关联字段的长度,该长度本发明并不做限定,例如2bytes等等。值表示历史关联字段承载的历史关联信息,例如关键字、关键字等等。在一种可选实施例中,本发明涉及的数据报文具体可为用户设备和负载均衡装置进行业务通信时的首发报文。具体的,为减少业务通信的复杂度或减少通信流量,在业务通信过程中,例如采用用户数据报文协议(userdatagramprotocol,udp)的业务通信过程中,系统可预先约定首发报文的具体格式结构,以将历史关联信息承载在首发报文中。相应地,在实际业务通信过程中,用户设备向负载均衡装置发送针对业务请求的首发报文,该首发报文中包括历史关联信息。负载均衡装置基于该首发报文中的历史关联信息,可确定用于处理该业务请求的服务实例,进而将首发报文发送给确定的服务实例中进行处理。由此可见,整个业务通信过程中,仅需对首发报文的格式进行重定义,并不会改变后续通信过程中传输的报文的格式,有利于减少业务通信的复杂度,减少报文构建的复杂度。通过实施本发明实施例,能够解决现有技术中存在的无法满足业务通信需求、业务通信时延较长、复杂度较高等问题,从而能有效减少业务通信的时延和复杂度。结合上文图1-图5所述实施例中的相关描述,下面介绍本发明适用的相关装置。请参见图6是本发明实施例提供的一种负载均衡装置的结构示意图。该负载均衡装置600包括通信模块602和处理模块604。其中,处理模块604可用于对负载均衡装置600的动作进行控制和管理。例如,处理模块604用于执行图3中的步骤s302,和/或用于执行文本所描述的技术的其他内容。通信模块602用于与其他模块或设备进行通信,例如,通信模块602用于执行图3中的步骤s301和s303,和/或用于执行文本所描述的技术的其他内容。可选地,该负载均衡装置600还可包括存储模块606。该存储模块606用于存储负载均衡装置600的程序代码和数据,例如存储用于报文处理的程序代码。处理模块604用于调用该存储模块606中的程序代码以实现如上图3所述实施例中的以负载均衡装置为执行主体的实施步骤,和/或用于执行文本所描述的技术的其他内容步骤。其中,处理模块604可以是处理器或控制器,例如可以是中央处理器(centralprocessingunit,cpu),通用处理器,数字信号处理器(digitalsignalprocessor,dsp),专用集成电路(application-specificintegratedcircuit,asic),现场可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等等。通信模块602可以是通信接口、收发器、收发电路等,其中,通信接口是统称,可以包括一个或多个接口,例如通信模块与处理模块之间的接口、负载均衡装置与用户设备之间的接口等。存储模块606可以是存储器,或者其他用于提供存储功能的服务或模块。当处理模块604为处理器,通信模块602为通信接口,存储模块606为存储器时,本发明实施例所涉及负载均衡装置可以为图7所示的负载均衡装置(也可称为计算设备)。请参见图7所示,负载均衡装置700包括一个或多个处理器701、通信接口702和存储器703,处理器701、通信接口702和存储器703可通过总线或者其它方式连接,本发明实施例以通过总线704连接为例。其中:处理器701可以由一个或者多个通用处理器构成,例如中央处理器(centralprocessingunit,cpu)。处理器701可用于运行相关的程序代码中以下任一项或多项功能模块的程序:通信模块、处理模块以及存储模块等。也就是说,处理器701执行程序代码可以实现通信模块以及处理模块等功能模块中的任一项或多项的功能。其中,关于所述通信模块以及处理模块具体可参见前述实施例中的相关阐述。通信接口702可以为有线接口(例如以太网接口)或无线接口(例如蜂窝网络接口或使用无线局域网接口),用于与其他模块/设备进行通信。例如,本发明实施例中通信接口702具体可用于接收用户设备发送的数据报文,或者向服务实例发送数据报文等。存储器703可以包括易失性存储器(volatilememory),例如随机存取存储器(randomaccessmemory,ram);存储器也可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-onlymemory,rom)、快闪存储器(flashmemory)、硬盘(harddiskdrive,hdd)或固态硬盘(solid-statedrive,ssd);存储器703还可以包括上述种类的存储器的组合。存储器703可用于存储一组程序代码,以便于处理器701调用存储器703中存储的程序代码以实现本发明实施例中涉及的通信模块和/或处理模块的功能。需要说明的,图6或图7仅仅是本申请实施例的一种可能的实现方式,实际应用中,负载均衡装置还可以包括更多或更少的部件,这里不作限制。关于本发明实施例中未示出或未描述的内容,可参见前述图3所述实施例中的相关阐述,这里不再赘述。本发明实施例还提供一种计算机非瞬态存储介质,所述计算机非瞬态存储介质中存储有指令,当其在处理器上运行时,图3所示的方法流程得以实现。本发明实施例还提供一种计算机程序产品,当所述计算机程序产品在处理器上运行时,图3所示的方法流程得以实现。结合本发明实施例公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(randomaccessmemory,ram)、闪存、只读存储器(readonlymemory,rom)、可擦除可编程只读存储器(erasableprogrammablerom,eprom)、电可擦可编程只读存储器(electricallyeprom,eeprom)、寄存器、硬盘、移动硬盘、只读光盘(cd-rom)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于asic中。另外,该asic可以位于计算设备中。当然,处理器和存储介质也可以作为分立组件存在于计算设备中。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1