请求传输系统、方法、装置及存储介质与流程

文档序号:14253212阅读:169来源:国知局
请求传输系统、方法、装置及存储介质与流程

本申请实施例涉及通信技术领域,特别涉及一种请求传输系统、方法、装置及存储介质。



背景技术:

客户端在访问服务器中的资源时,会向服务器发送超文本传输协议(hypertexttransferprotocol,http)请求,服务器接收到该http请求后,向客户端反馈对应的资源。

当发送http请求的客户端的数量较多时,为了避免多个http请求全部发送至同一服务器,导致该服务器的处理压力过大的问题,客户端与服务器之间还会包括f5负载均衡器,该f5负载均衡器可以根据各个服务器的负载分配http请求。其中,每个f5负载均衡器与至少一个服务器相连。

然而,f5负载均衡器在确定处理http请求的服务器时,确定出的服务器比较随机,此时,该服务器可能未保存客户端对应的资源,导致客户端请求资源失败。



技术实现要素:

本申请实施例提供的请求传输系统、方法、装置及存储介质,可以解决通过负载均衡器随机选择处理http请求的服务器,导致客户端从该服务器访问对应的资源的失败率较大的问题。所述技术方案如下:

第一方面,提供了一种请求传输系统,该系统包括:客户端、负载均衡器、n个接入网关和m个服务器,所述客户端与所述负载均衡器相连,所述负载均衡器通过所述n个接入网关与所述m个服务器相连,所述n和所述m均为正整数;

所述客户端,用于生成超文本传输协议http请求;并将所述http请求发送至所述负载均衡器,所述http请求携带有所述客户端的客户端标识;

所述负载均衡器,用于接收所述http请求;并将所述http请求分配至所述n个接入网关中的第一接入网关;

所述第一接入网关,用于接收所述负载均衡器发送的所述http请求;根据所述客户端标识确定所述m个服务器中的目标服务器;并在所述第一接入网关与所述目标服务器建立有通信连接时,将所述http请求发送至所述目标服务器,所述目标服务器用于存储所述客户端标识对应的资源;

所述目标服务器,用于接收所述http请求,并对所述http请求进行响应。

第二方面,提供了一种请求传输方法,用于接入网关中,所述接入网关通过负载均衡器与客户端相连,且所述接入网关与至少一个服务器相连;所述方法包括:

接收所述负载均衡器发送的超文本传输协议http请求,所述http请求携带有所述客户端的客户端标识;

根据所述客户端标识确定目标服务器,所述目标服务器用于存储所述客户端标识对应的资源;

在与所述目标服务器建立有通信连接时,将所述http请求发送至所述目标服务器。

第三方面,提供了一种请求传输方法,用于客户端中,所述客户端通过负载均衡器与n个接入网关相连,所述n接入网关还与m个服务器相连,所述n和所述m均为正整数;所述方法包括:

生成超文本传输协议http请求,所述http请求携带有所述客户端的客户端标识;

将所述http请求发送至所述负载均衡器,所述负载均衡器用于将所述http请求转发至所述n个接入网关中的第一接入网关;所述客户端标识用于供接收到所述http请求的第一接入网关确定所述m个服务器中的目标服务器,所述目标服务器用于存储所述客户端标识对应的资源;

接收所述负载均衡器反馈的来源于所述目标服务器的资源。

第四方面,提供了一种请求传输装置,用于接入网关中,所述接入网关通过负载均衡器与客户端相连,且所述接入网关与至少一个服务器相连;所述装置包括:

接收单元,用于接收所述负载均衡器发送的超文本传输协议http请求,所述http请求携带有所述客户端的客户端标识;

确定单元,用于根据所述客户端标识确定目标服务器,所述目标服务器用于存储所述客户端标识对应的资源;

发送单元,用于在与所述目标服务器建立有通信连接时,将所述http请求发送至所述目标服务器。

第五方面,提供了一种请求传输装置,用于客户端中,所述客户端通过负载均衡器与n个接入网关相连,所述n接入网关还与m个服务器相连,所述n和所述m均为正整数;所述装置包括:

生成单元,用于生成超文本传输协议http请求,所述http请求携带有所述客户端的客户端标识;

发送单元,用于将所述http请求发送至所述负载均衡器,所述负载均衡器用于将所述http请求转发至所述n个接入网关中的第一接入网关;所述客户端标识用于供接收到所述http请求的第一接入网关确定所述m个服务器中的目标服务器,所述目标服务器用于存储所述客户端标识对应的资源;

接收单元,用于接收所述负载均衡器反馈的来源于所述目标服务器的资源。

第六方面,提供了一种接入网关,所述接入网关包括处理器、与所述处理器相连的存储器,以及存储在所述存储器上的程序指令,所述处理器执行所述程序指令时实现第二方面提供的请求传输方法。

第七方面,提供了一种终端,所述终端包括处理器、与所述处理器相连的存储器,以及存储在所述存储器上的程序指令,所述处理器执行所述程序指令时实现第三方面提供的请求传输方法。

第八方面,一种计算机可读介质,其上存储有程序指令,所述程序指令被处理器执行时实现第二方面提供的请求传输方法;或者,第三方面提供的请求传输方法。

本申请实施例提供的技术方案带来的有益效果是:

通过在接收到http请求时,根据该http请求中的客户端标识确定目标服务器;并在与该目标服务器创建有通信连接时,将http请求发送至目标服务器,由目标服务器对该http请求进行响应;可以避免客户端访问的服务器与存储该客户端的资源的服务器不一致,导致客户端请求资源失败的问题;由于接入网设备可以根据客户端标识确定出存储有对应的资源的目标服务器,因此,客户端可以通过http请求访问到对应的资源,从而可以提高客户端请求资源的成功率。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1a是相关技术提供的请求传输系统的结构示意图;

图1b是本申请一个实施例提供的请求传输系统的结构示意图;

图2是本申请一个示例性实施例提供的请求传输方法的流程图;

图3是本申请一个示例性实施例提供的请求传输方法的流程图;

图4是本申请一个示例性实施例提供的请求传输方法的流程图;

图5是本申请一个示例性实施例提供的索引表的示意图;

图6是本申请另一个示例性实施例提供的请求传输方法的流程图;

图7是本申请一个实施例提供的请求传输装置的结构方框图;

图8是本申请一个实施例提供的请求传输装置的结构方框图;

图9是本申请一个实施例提供的接入网关的结构方框图;

图10是本申请一个实施例提供的终端的结构方框图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

本申请说明书以及权利要求书中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”或者“一”等类似词语也不表示数量限制,而是表示存在至少一个。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。

在申请中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。

首先,对本申请涉及的若干名词进行介绍。

f5负载均衡器:是一种硬件设备,用于根据后端设备的负载,基于负载均衡原则分配超文本传输协议(hypertexttransferprotocol,http)请求。其中,后端设备是指接收f5负载均衡器发送的http请求的设备。比如:后端设备为服务器或者接入网关等。

可选地,f5负载均衡器除了具有负载均衡功能之外,还包括应用交换、会话交换、状态监控、智能网络地址转换、通用持续性、响应错误处理、互联网协议版本6(internetprotocolversion6,ipv6)网关、高级路由、智能端口镜像、安全套接层(securesocketslayer,ssl)加速、智能http压缩、传输控制协议(transmissioncontrolprotocol,tcp)优化、第7层速率整形、内容缓冲、内容转换、连接加速、高速缓存、cookie加密、选择性内容加密、应用攻击过滤、拒绝服务(denialofservice,dos)攻击和synflood保护、防火墙过滤等功能,本申请在此不再一一列举。

需要补充说明的是,虽然f5负载均衡器的功能强大,但是f5负载均衡器的可扩展性较差,也即,在f5负载均衡器已有的功能的基础上,很难扩展出其它功能。

可选地,f5负载均衡器可以做4层负载均衡;或者,也可以做7层负载均衡。

4层负载均衡是指在对服务器进行负载均衡时,依据四层的信息来确定如何转发流量,比如:通过发布三层的互联网协议(internetprotocoladdress,ip)+四层的端口号,来决定哪些流量需要做负载均衡。

7层负载均衡是指在4层的基础上,再考虑应用层的特征,比如:除了根据ip+80端口辨别是否需要处理的流量,还可根据7层的(uniformresourcelocator,url)、浏览器类别和语言中的至少一种来决定是否要进行负载均衡。举个例子,如果将服务器分成两组,一组是中文语言的,一组是英文语言的,那么7层负载均衡就可以当客户端来访问服务器时,自动辨别用户语言,然后选择对应的语言服务器组进行负载均衡处理。

nginx服务器:是一种高性能的http和反向代理服务器。nginx服务器是一种软件服务器,nginx服务器采用反向代理(reverseproxy)技术代理服务器接收http请求;然后,将http请求动态地转发给内部网络上的多台服务器进行处理,并将从服务器上得到的结果返回给客户端。nginx服务器通过将接收到的http请求以反向代理的方式动态地转发给内部网络上的多台服务器进行处理,来达到负载均衡的目的。

需要补充说明的是,nginx服务器的功能固定,可扩展性也比较差。

接入网关:用于接收客户端发送的http请求,并根据该http请求中的客户端标识确定处理该http请求的目标服务器。

可选地,由于接入网关的开发语言是开发人员自定义的,因此,接入网关除了可以转发http请求之外,还可以扩展出其它功能,也即,接入网关相较于f5负载均衡器和nginx服务器来说可扩展性较强,比如:接入网关的扩展功能支持通过扩展http1.1协议实现异步转发http请求,以提高接入网关的并行处理能力;设置ip黑名单,阻拦具有ip黑名单中的ip地址的http请求;实时统计总请求数、转发超时数量;接口级的流量控制;扩展ssl协议等,本实施例在此不再一一列举。

相关技术提供的请求传输系统中,客户端通过f5负载均衡器与多个服务器相连;或者,客户端通过f5负载均衡器和nginx服务器与多个服务器相连。以客户端通过f5负载均衡器和nginx服务器与多个服务器相连为例,参考图1a,该请求传输系统包括客户端101、与客户端101相连的负载均衡器102、与负载均衡器102相连的nginx服务器103和与nginx服务器103相连的多个服务器104。

客户端101用于向负载均衡器102发送http请求;负载均衡器102接收该http请求,并将http请求分配至某一个nginx服务器103;nginx服务器103接收到http请求之后,将该http请求分配至多个服务器104中的某一个服务器104。

其中,nginx服务器103确定出的服务器104比较随机,也即,接收到客户端101第一次发送的http请求的服务器104与接收到客户端101第二次发送的http请求的服务器104可能不同,而存储客户端101对应的资源的服务器104可能与nginx服务器103确定出的服务器104不同,此时,客户端101请求资源可能会失败。

在一些实施例中,为了提高客户端101请求资源的成功率,可能会将不同服务器104中的资源进行同步,此时,所有服务器104中保存的资源相同。然而,客户端101可能始终不会访问到其中一部分服务器104,此时,既会浪费将资源同步至该部分服务器104时消耗的资源,也会浪费该部分服务器104的存储空间。

基于上述技术问题,本申请提供如下技术方案。

图1b是本申请的一个示例性实施例示出的请求传输系统的结构示意图,该系统包括客户端110、负载均衡器120、n个接入网关130和m个服务器140,n和m均为正整数。负载均衡器120通过n个接入网关130与m个服务器140相连。

其中,客户端110通过无线网络或有线网络与负载均衡器120相连,负载均衡器120通过无线网络或有线网络与n个接入网关130相连,每个接入网关130通过无线网络或有线网络与m个服务器140中的至少一个服务器140相连。可选地,不同接入网关130连接的服务器140数量可以相同,或者,也可以不同。

客户端110运行于终端中,终端包括但不限于:手机、平板电脑、可穿戴式设备、智能机器人、智能家居设备、膝上型便携计算机和台式计算机等具有通信功能的电子设备。

客户端110用于生成http请求,并将该http请求发送至负载均衡器120。其中,http请求携带有客户端的客户端标识。

可选地,客户端标识可以是客户端注册的用户帐号、电子邮箱地址、身份证号、银行卡卡号、随机字符串;或者,客户端标识也可以是客户端所属的终端的设备标识,比如:媒体访问控制(mediaaccesscontrol或者mediumaccesscontrol,mac)地址、设备号等。

负载均衡器120用于接收客户端110发送的http请求,并将接收到的http请求分配至n个接入网关130中的第一接入网关131。

可选地,负载均衡器120可以是f5负载均衡器和nginx服务器中的至少一种。

接入网关130可以是软件实现的服务器,接入网关130可以设置在独立的服务器主机中;或者,也可以与负载均衡器120设置于同一服务器主机中,本实施例对此不作限定。

接入网关130(包括第一接入网关131)用于接收负载均衡器120发送的http请求,并根据该http请求中的客户端标识确定m个服务器140中的目标服务器141。在接入网关130与目标服务器141建立有通信连接时,接入网关130还用于将http请求发送至目标服务器141。

其中,目标服务器141存储有客户端标识对应的资源。

可选地,每个接入网关130与至少一个服务器140相连,该至少一个服务器140属于同一机房。机房是指架设服务器的架设空间。

可选地,每个机房中的服务器140连接有多个接入网关130,该多个接入网关130与同一机房中的服务器140通过局域网相连。

可选地,不同的接入网关130之间也可以通过有线或无线的方式连接。

服务器140为客户端提供后台服务。可选地,服务器140可以是网站(web)服务器;或者,也可以是其它类型的服务器,本实施例对此不作限定。可选地,服务器140也可以称为后台服务器、tomcat服务器等,本实施例不对服务器的名称作限定。

服务器140用于接收接入网关130发送的http请求,并对该http请求进行响应。可选地,服务器140对http请求进行响应是指:向接入网关130发送http请求所请求的资源。

可选地,服务器140反馈的资源是与http请求中的客户端标识相对应的资源,该资源包括但不限于:文字、图片、网页、音频和视频中的至少一种。

可选地,本实施例仅以负载均衡器120的数量为一个进行说明,在实际实现时,负载均衡器120的数量可以为多个。

可选地,本实施例提供的请求传输系统仅是示意性地,在实际实现时,该请求传输系统还可以包括其它设备,比如:该请求传输系统还包括与客户端110相连的域名服务器(domainnameserver,dns)等。

其中,dns还通过有线网络或者无线网络与负载均衡器120相连,dns用于进行域名(domainname)和ip地址(address)之间的转换。示意性地,dns用于将http请求中的域名转换为服务器140的ip地址。

可选地,本申请中,无线网络或有线网络使用标准通信技术和/或协议。网络通常为因特网、但也可以是任何网络,包括但不限于局域网(localareanetwork,lan)、城域网(metropolitanareanetwork,man)、广域网(wideareanetwork,wan)、移动、有线或者无线网络、专用网络或者虚拟专用网络的任何组合)。在一些实施例中,使用包括超文本标记语言(hypertextmark-uplanguage,html)、可扩展标记语言(extensiblemarkuplanguage,xml)等的技术和/或格式来代表通过网络交换的数据。此外还可以使用诸如安全套接字层(securesocketlayer,ssl)、传输层安全(trassportlayersecurity,tls)、虚拟专用网络(virtualprivatenetwork,vpn)、网际协议安全(internetprotocolsecurity,ipsec)等常规加密技术来加密所有或者一些链路。在另一些实施例中,还可以使用定制和/或专用数据通信技术取代或者补充上述数据通信技术。

图2是本申请的一个示例性实施例示出的请求传输方法的流程图。本实施例以该请求传输方法用于图1b所示的请求传输系统中的接入网关130中为例进行说明,该接入网关通过负载均衡器与客户端相连,且该接入网关与至少一个服务器相连,该请求传输方法包括以下几个步骤。

步骤201,接收负载均衡器发送的http请求,该http请求携带有客户端的客户端标识。

步骤202,根据客户端标识确定目标服务器,该目标服务器用于存储客户端标识对应的资源。

可选地,接入网关根据http请求中的客户端标识确定索引标识;根据该索引标识在索引表中确定目标服务器;该索引表包括索引标识与目标服务器之间的索引关系。

可选地,索引表用于将不同的客户端标识均衡地分配至服务器。

步骤203,在与目标服务器建立有通信连接时,将http请求发送至目标服务器。

综上所述,本实施例提供的请求传输方法,通过在接收到http请求时,根据该http请求中的客户端标识确定目标服务器;并在与该目标服务器创建有通信连接时,将http请求发送至目标服务器,由目标服务器对该http请求进行响应;可以避免客户端访问的服务器与存储该客户端的资源的服务器不一致,导致客户端请求资源失败的问题;由于接入网设备可以根据客户端标识确定出存储有对应的资源的目标服务器,因此,客户端可以通过http请求访问到对应的资源,从而提高客户端请求资源的成功率。

另外,通过接收由负载均衡器转发的http请求,使得接入网关接收到的http请求是负载均衡器基于负载均衡原则分配后得到的,这样,每个接入网关的处理压力比较接近;可以避免请求传输系统中一部分接入网关的处理压力过大,另一部分接入网关的处理压力过小的问题,可以实现合理分配接入网关的处理资源。

图3是本申请的一个示例性实施例示出的请求传输方法的流程图。本实施例以该请求传输方法用于图1b所示的请求传输系统中的客户端110中为例进行说明,该客户端通过负载均衡器与n个接入网关相连,n接入网关还与m个服务器相连,n和m均为正整数,该请求传输方法包括以下几个步骤。

步骤301,生成http请求。

其中,http请求携带有客户端的客户端标识。

可选地,http请求还包括服务器标识,该服务器标识用于供负载均衡器确定接收http请求的第一接入网关。

步骤302,将http请求发送至负载均衡器,该负载均衡器用于将http请求转发至n个接入网关中的第一接入网关;该客户端标识用于供接收到http请求的第一接入网关确定m个服务器中的目标服务器,目标服务器用于存储客户端标识对应的资源。

步骤303,接收负载均衡器反馈的来源于目标服务器的资源。

综上所述,本实施例提供的请求传输方法,通过在http请求中携带客户端标识,使得接入网关在接收到http请求时,可以根据该http请求中的客户端标识确定出存储有该客户端标识对应的资源的目标服务器;并在与该目标服务器创建有通信连接时,将http请求发送至目标服务器,由目标服务器对该http请求进行响应;因此,客户端可以通过http请求访问到对应的资源,从而可以提高客户端请求资源的成功率。

图4是本申请的一个示例性实施例示出的请求传输方法的流程图。本实施例以该请求传输方法用于图1b所示的请求传输系统中为例进行说明,该系统包括:客户端、负载均衡器、n个接入网关和m个服务器,该客户端与负载均衡器相连,该负载均衡器通过n个接入网关与m个服务器相连,该请求传输方法包括以下几个步骤。

步骤401,客户端生成http请求。

可选地,客户端在接收到对某一url地址的触发操作时,根据该客户端的客户端标识和url地址生成http请求。

其中,客户端标识用于确定存储有该客户端标识对应的资源的目标服务器。

可选地,在实际实现时,具有同一域名的服务器的数量可以是多个,该多个服务器可能分布于不同地理位置的机房中,且该多个服务器可能只有一个服务器存储客户端标识对应的资源,此时,需要从该多个服务器中确定出存储有该资源的目标服务器。

可选地,客户端标识可以是客户端注册的用户帐号、电子邮箱地址、身份证号、银行卡卡号、随机字符串;或者,客户端标识也可以是客户端所属的终端的设备标识,比如:媒体访问控制(mediaaccesscontrol或者mediumaccesscontrol,mac)地址、设备号等。

可选地,http请求还包括服务器标识,该服务器标识用于供负载均衡器确定接收http请求的第一接入网关。

可选地,服务器标识可以是客户端从本地存储的各个服务器的服务器标识中随机选择的;或者,该服务器标识为客户端历史访问过的服务器的服务器标识。

可选地,服务器标识可以是服务器的编号、服务器所在机房名称、服务器的ip地址、服务器的端口号和服务器的架设地理区域中的至少一种。

步骤402,客户端将http请求发送至负载均衡器。

可选地,若客户端直接与负载均衡器相连,则客户端通过与负载均衡器之间的通信连接,将该将http请求发送至负载均衡器;或者,若客户端通过dns服务器与负载均衡器相连,则客户端通过dns服务器将该将http请求发送至负载均衡器。

步骤403,负载均衡器接收客户端发送的http请求。

其中,http请求携带有客户端的客户端标识。

可选地,http请求携带有服务器标识。

步骤404,负载均衡器将http请求分配至n个接入网关中的第一接入网关。

负载均衡器在n个接入网关中确定接收该http请求的第一接入网关,再将该http请求发送至该第一接入网关。

可选地,负载均衡器确定第一接入网关的方式包括但不限于以下几种方式中的至少一种:

第一种方式:http请求中携带有服务器标识。负载均衡器根据该服务器标识确定与对应的服务器建立有通信连接的至少一个接入网关;获取该至少一个接入网关的负载量;基于负载均衡原则,从该至少一个接入网关中确定第一接入网关。其中,至少一个接入网关均为n个接入网关中的接入网关。此时,负载均衡器中存储有服务器标识与至少一个接入网关之间的对应关系。

第二种方式:负载均衡器获取n个接入网关中每个接入网关的负载量;根据每个接入网关的负载量,基于负载均衡原则将http请求分配至第一接入网关。

可选地,负载均衡原则可以是:4层负载均衡;或者,也可以是7层负载均衡。

第三种方式:负载均衡器随机从n个接入网关中选择第一接入网关。

步骤405,第一接入网关接收负载均衡器发送的http请求。

http请求包括客户端标识。

步骤406,第一接入网关根据客户端标识确定m个服务器中的目标服务器。

可选地,在第一接入网关与目标服务器建立有通信连接时,执行步骤407;在第一接入网关与目标服务器未建立有通信连接时,执行步骤408。

其中,目标服务器用于存储客户端标识对应的资源。

可选地,第一接入网关根据客户端标识确定m个服务器中的目标服务器,包括:根据客户端标识确定索引标识;根据索引标识在索引表中确定目标服务器。其中,索引表包括索引标识与目标服务器之间的索引关系。

可选地,索引表用于将不同的客户端标识均衡地分配至服务器。可选地,索引表默认设置在n个接入网关中;或者,索引表由其它设备发送至n个接入网关。

可选地,索引表可以在存在新的服务器建立或者删除时进行更新。

其中,多个客户端标识对应同一索引标识。

在一个示例中,根据客户端标识确定索引标识,包括:对客户端标识进行循环冗余码(cyclicalredundancycheck,crc)运算,得到中间数值;将该中间数值与预设数值取模,得到索引标识。其中,crc运算用于将客户端标识转换为数字字符串;取模运算用于缩小索引服务器的范围。

crc运算可以为crc-16运算、crc-8运算、crc-4运算等,本实施例对此不作限定。

当然,在实际实现时,客户端也可以通过其它方式将客户端标识转化为索引标识,本实施例对此不作限定。

可选地,索引标识也可以称为桶号码(bucketidentity,bucketid);或者,其它名称,本实施例对此不作限定。

在一个示例中,根据索引标识在索引表中确定目标服务器,包括:根据索引标识在索引表中查找目标服务器的服务器标识;在具有该服务器标识的至少一个服务器中,确定http请求需要访问的目标服务器。

可选地,第一接入网关根据http请求中携带的访问信息,从具有该服务器标识的至少一个服务器中确定目标服务器。其中,访问信息包括但不限于:客户端的版本号、操作系统的版本号、url地址、资源的标识符、协议版本号和对资源的请求方式中的至少一种。

假设第一接入网关中存储的索引表如图5所示,若第一接入网关根据http请求中的客户端标识确定出的索引标识为b1,则服务器标识为杭州机房;第一接入网关根据http请求中的访问信息从杭州机房的服务器中确定目标服务器。

步骤407,在第一接入网关与目标服务器建立有通信连接时,该第一接入网关将http请求发送至目标服务器,执行步骤415。

可选地,第一接入网关与目标服务器通过局域网建立通信连接。当然,第一接入网关也可以通过其它网络与目标服务器建立通信连接,本实施例对此不作限定。

可选地,第一接入网关还会通过负载均衡器向客户端发送成功响应,该成功响应包括目标服务器的服务器标识。示意性地,成功响应基于http协议发送,且服务器标识为http头部中预设函数的值。

可选地,第一接入网关可以在发送http请求之前发送成功响应;或者,第一接入网关可以在发送http请求之后发送成功响应;或者,第一接入网关可以同时发送http请求和发送成功响应,本实施例对此不作限定。

步骤408,在第一接入网关未与目标服务器建立有通信连接时,该第一接入网关通过负载均衡器向客户端发送失败响应。

失败响应包括预设状态码和目标服务器的服务器标识,该预设状态码用于指示第一接入网关无法使用。示意性地,失败响应基于http协议发送,且服务器标识为http头部中预设函数的值。

本实施例不对预设状态码的数值作限定,示意性地,该预设状态码的值为306。

步骤409,客户端接收失败响应。

步骤410,客户端根据预设状态码再次向负载均衡器发送http请求。

其中,http请求包括目标服务器的服务器标识。

可选地,若客户端直接与负载均衡器相连,则客户端通过与负载均衡器之间的通信连接,将该将http请求发送至负载均衡器;或者,若客户端通过dns服务器与负载均衡器相连,则客户端通过dns服务器将该将http请求发送至负载均衡器。

步骤411,负载均衡器接收客户端再次发送的http请求。

其中,http请求包括目标服务器的服务器标识。

步骤412,负载均衡器根据服务器标识将http请求分配至与目标服务器存在通信连接的第二接入网关。

其中,第二接入网关为n个接入网关中的一个接入网关。

可选地,负载均衡器根据该服务器标识确定与对应的服务器建立有通信连接的至少一个接入网关;获取该至少一个接入网关的负载量;基于负载均衡原则,从该至少一个接入网关中确定第一接入网关。其中,至少一个接入网关均为n个接入网关中的接入网关。此时,负载均衡器中存储有服务器标识与至少一个接入网关之间的对应关系。

可选地,负载均衡器根据该服务器标识确定与对应的服务器建立有通信连接的至少一个接入网关;从该至少一个接入网关中随机选择第二接入网关。

步骤413,第二接入网关接收http请求。

步骤414,第二接入网关向目标服务器发送http请求。

可选地,第二接入网关根据http请求中的访问信息,将http请求直接发送至目标服务器。或者,第二接入网关根据http请求中的客户端标识确定索引标识;根据索引标识在索引表中确定目标服务器;将http发送至目标服务器。

步骤415,目标服务器接收http请求。

步骤416,目标服务器通过接入网关和负载均衡器向客户端发送http请求所请求的资源。

其中,在第一接入网关与目标服务器建立有通信连接时,接入网关为第一接入网关;或者,在第一接入网关未与目标服务器建立有通信连接时,接入网关为第二接入网关。

步骤417,客户端接收负载均衡器反馈的来源于目标服务器的资源。

综上所述,通过在接收到http请求时,根据该http请求中的客户端标识确定目标服务器;并在与该目标服务器创建有通信连接时,将http请求发送至目标服务器,由目标服务器对该http请求进行响应;可以避免客户端访问的服务器与存储该客户端的资源的服务器不一致,导致客户端请求资源失败的问题;由于接入网设备可以根据客户端标识确定出存储有对应的资源的目标服务器,因此,客户端可以通过http请求访问到对应的资源,从而可以提高客户端请求资源的成功率。

另外,通过接收由负载均衡器转发的http请求,使得接入网关接收到的http请求是负载均衡器基于负载均衡原则分配后得到的,这样,每个接入网关的处理压力比较接近;可以避免请求传输系统中一部分接入网关的处理压力过大,另一部分接入网关的处理压力过小的问题,可以实现合理分配接入网关的处理资源。

另外,通过由负载均衡器转发http请求,该负载均衡器连接多个接入网关,使得客户端只需要维护负载均衡器的ip地址,而不需要维护多个接入网关的ip地址,减少了客户端所需维护的ip地址的数量,可以节省客户端的资源。

另外,通过将客户端标识转换成索引标识,由于多个客户端标识对应同一索引标识,且接入网关存储索引标识与服务器标识之间的索引关系,而无需存储所有客户端标识与服务器标识之间的索引关系,因此,可以减少接入网关存储的索引表的数据量,从而节省接入网关的存储资源。

另外,通过在第一接入网关与目标服务器未建立通信连接时,第一接入网关通过负载均衡器向客户端发送失败响应,在该失败响应中携带目标服务器的服务器标识;使得负载均衡器再次接收到客户端发送的http请求时,可以直接将该http请求分配至与目标服务器相连的第二接入网关,可以保证客户端成功访问到目标服务器。

可选地,基于上述各个实施例,在客户端获取到目标服务器的服务器标识之后,比如:在接收到成功响应或者失败响应之后,若需要发送其它http请求,则获取目标服务器的服务器标识;根据客户端标识和服务器标识生成其它http请求;向负载均衡器发送该其它http请求。

其中,服务器标识用于指示负载均衡器将其它http请求分配至与目标服务器建立有通信连接的接入网关。

可选地,负载均衡器接收到其它http请求之后执行步骤404。

本实施例通过在http请求中携带目标服务器的服务器标识,而该目标服务器是客户端历史访问过的服务器,因此,客户端从该服务器中能够成功访问到对应的资源的概率较高;这就使得负载均衡器在接收到该http请求时,可以直接将该http请求分配至与目标服务器相连的第二接入网关,无需执行反馈失败响应的过程,可以提高客户端访问目标服务器的效率。

可选地,参考图6,若第一接入网关与第二接入网关之间建立有通信连接,则作为步骤408至412的可替换步骤,本申请提供的请求传输方法还包括以下几个步骤:

步骤601,第一接入网关在未与目标服务器建立有通信连接时,向与目标服务器建立有通信连接的第二接入网关发送http请求。

其中,第二接入网关为n个接入网关中的一个接入网关,且第二接入网关与第一接入网关建立有通信连接。

可选地,第一接入网关还可以通过负载均衡器向客户端发送成功响应,该成功响应包括目标服务器的服务器标识。示意性地,成功响应基于http协议发送,且服务器标识为http头部中预设函数的值。

本实施例通过在第一接入网关与第二接入网关建立有通信连接时,第一接入网关将http请求直接转发给第二接入网关,使得第一接入网关无需与客户端之间传输失败响应,且客户端无需重传http请求,可以节省传输资源。

下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。

请参考图7,其示出了本申请一个实施例提供的请求传输装置的结构方框图,该请求传输装置可通过软件、硬件或者两者的结合实现成为接入网关的部分或者全部。该接入网关通过负载均衡器与客户端相连,且该接入网关与至少一个服务器相连;该装置可以包括:接收单元710、确定单元720和发送单元730。

接收单元710,用于接收所述负载均衡器发送的http请求,所述http请求携带有所述客户端的客户端标识;

确定单元720,用于根据所述客户端标识确定目标服务器,所述目标服务器用于存储所述客户端标识对应的资源;

发送单元730,用于在与所述目标服务器建立有通信连接时,将所述http请求发送至所述目标服务器。

可选地,所述确定单元720,用于:

根据所述客户端标识确定索引标识;

根据所述索引标识在索引表中确定所述目标服务器;所述索引表包括所述索引标识与所述目标服务器之间的索引关系。

可选地,所述发送单元730,用于:

在未与所述目标服务器建立有通信连接时,通过所述负载均衡器向所述客户端发送失败响应;

其中,所述失败响应包括预设状态码和所述目标服务器的服务器标识,所述预设状态码用于指示所述接入网关无法使用,所述服务器标识用于确定与所述目标服务器建立有通信连接的接入网关。

相关说明参见上述方法实施例中由接入网关执行的步骤。

请参考图8,其示出了本申请一个实施例提供的请求传输装置的结构方框图,该请求传输装置可通过软件、硬件或者两者的结合实现成为客户端的部分或者全部。客户端通过负载均衡器与n个接入网关相连,n接入网关还与m个服务器相连,n和m均为正整数,该装置可以包括:生成单元810、发送单元820和接收单元830。

生成单元810,用于生成http请求,所述http请求携带有所述客户端的客户端标识;

发送单元820,用于将所述http请求发送至所述负载均衡器,所述负载均衡器用于将所述http请求转发至所述n个接入网关中的第一接入网关;所述客户端标识用于供接收到所述http请求的第一接入网关确定所述m个服务器中的目标服务器,所述目标服务器用于存储所述客户端标识对应的资源;

接收单元830,用于接收所述负载均衡器反馈的来源于所述目标服务器的资源。

可选地,所述接收单元830,还用于在所述第一接入网关未与所述目标服务器建立有通信连接时,接收所述第一接入网关通过所述负载均衡器反馈的失败响应;所述失败响应包括预设状态码和所述目标服务器的服务器标识,所述预设状态码用于指示所述接入网关无法使用;

所述发送单元820,用于根据所述预设状态码再次向所述负载均衡器发送所述http请求,所述http请求包括所述服务器标识,所述服务器标识用于供所述负载均衡器确定与所述目标服务器建立有通信连接的第二接入网关。

相关说明参见上述方法实施例中由客户端执行的步骤。

本申请还提供一种计算机可读介质,其上存储有程序指令,程序指令被处理器执行时实现上述各个方法实施例提供的请求传输方法。

本申请还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各个方法实施例提供的请求传输方法。

参考图9,其示出了本申请一个示例性实施例提供的接入网关的结构方框图。本申请中的接入网关可以包括一个或多个如下部件:处理器910和存储器920。

处理器910可以包括一个或者多个处理核心。处理器910利用各种接口和线路连接整个接入网关内的各个部分,通过运行或执行存储在存储器920内的指令、程序、代码集或指令集,以及调用存储在存储器920内的数据,执行接入网关的各种功能和处理数据。可选地,处理器910可以采用数字信号处理(digitalsignalprocessing,dsp)、现场可编程门阵列(field-programmablegatearray,fpga)、可编程逻辑阵列(programmablelogicarray,pla)中的至少一种硬件形式来实现。处理器910可集成中央处理器(centralprocessingunit,cpu)和调制解调器等中的一种或几种的组合。其中,cpu主要处理操作系统和应用程序等;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器910中,单独通过一块芯片进行实现。

可选地,处理器910执行存储器920中的程序指令时实现下上述各个方法实施例提供的接入网关执行的请求传输方法。

存储器920可以包括随机存储器(randomaccessmemory,ram),也可以包括只读存储器(read-onlymemory)。可选地,该存储器920包括非瞬时性计算机可读介质(non-transitorycomputer-readablestoragemedium)。存储器920可用于存储指令、程序、代码、代码集或指令集。存储器920可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令、用于实现上述各个方法实施例的指令等;存储数据区可存储根据接入网关的使用所创建的数据等。

需要补充说明的是,本实施例提供的终端的结构仅是示意性地,在实际实现时,该终端还可以包括其他组件,比如:通过组件、网络接口等,本实施例在此不再一一列举。

参考图10,其示出了本申请一个示例性实施例提供的终端的结构方框图。本申请中的终端可以包括一个或多个如下部件:处理器1010和存储器1020。

处理器1010可以包括一个或者多个处理核心。处理器1010利用各种接口和线路连接整个终端内的各个部分,通过运行或执行存储在存储器1020内的指令、程序、代码集或指令集,以及调用存储在存储器1020内的数据,执行终端的各种功能和处理数据。可选地,处理器1010可以采用数字信号处理(digitalsignalprocessing,dsp)、现场可编程门阵列(field-programmablegatearray,fpga)、可编程逻辑阵列(programmablelogicarray,pla)中的至少一种硬件形式来实现。处理器1010可集成中央处理器(centralprocessingunit,cpu)和调制解调器等中的一种或几种的组合。其中,cpu主要处理操作系统和应用程序等;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器1010中,单独通过一块芯片进行实现。

可选地,处理器1010执行存储器1020中的程序指令时实现下上述各个方法实施例提供的客户端执行的请求传输方法。

存储器1020可以包括随机存储器(randomaccessmemory,ram),也可以包括只读存储器(read-onlymemory)。可选地,该存储器1020包括非瞬时性计算机可读介质(non-transitorycomputer-readablestoragemedium)。存储器1020可用于存储指令、程序、代码、代码集或指令集。存储器1020可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令、用于实现上述各个方法实施例的指令等;存储数据区可存储根据终端的使用所创建的数据等。

需要补充说明的是,本实施例提供的终端的结构仅是示意性地,在实际实现时,该终端还可以包括其他组件,比如:通过组件、显示组件、传感器组件等,本实施例在此不再一一列举。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1