一种访问方法及装置与流程

文档序号:12135234阅读:158来源:国知局
一种访问方法及装置与流程
本发明涉及互联网
技术领域
,特别涉及一种访问方法及装置。
背景技术
:服务器负载均衡通常用于中大型应用系统中,特别是web应用系统中,通过使用SLB(ServerLoadBalancing,服务器负载均衡)设备,实现对访问客户端的分流,达到按照某种规则访问服务器的目的,减轻单台服务器的压力。如图1所示,在负载均衡组网中包括至少一个客户端100、SLB设备200和服务器集群(包括服务器300-30n),这里服务器集群对应同一网页内容。客户端100访问服务器集群,获取网页内容的过程为:客户端100通过服务器集群的虚拟IP(InternetProtocol,网络协议)地址,将访问请求发送给SLB设备200;SLB设备200接收到访问请求后,基于预设的调度算法从服务器集群的多个服务器中选择出一个服务器301的实体IP地址,将访问请求发送给服务器301;若客户端100首次访问服务器集群,访问请求中不包含修改时间字段,服务器301接收到访问请求后,将当前网页内容反馈给客户端100;若客户端100不是首次访问服务器集群,也就是,客户端100重新发起访问请求,该访问请求中包含修改时间字段,该时间修改字段用于记录客户端100上一次从服务器中获取的网页内容的修改时间,这里,修改时间可以理解为网页更新时间,服务器301接收到访问请求后,比较自身的网页内容的修改时间和访问请求中携带的修改时间,若自身的网页内容的修改时间比访问请求中携带的修改时间新,将更新的网页内容反馈给客户端100。实际应用中,每一服务器中网页内容的更新频率可能非常高,访问请求中包含的修改时间字段的精度可能不能准确的标记出网页内容的修改时间,并且不同服务器的时间可能存在差异。在上述情况下,重新发起访问请求,调度到不同的服务器时,客户端很可能获取到过时网页内容或不能获取网页内容。技术实现要素:本发明实施例公开了及一种访问方法及装置,以保证客户端准确的获取到正确的网页内容。为达到上述目的,本发明实施例公开了一种访问方法,应用于SLB设备,所述方法包括:接收客户端发送的访问请求;判断为所述访问请求分配的目的服务器是否与上一次分配的目的服务器相同;若为是,将所述访问请求发送给为所述访问请求分配的目的服务器,以使为所述访问请求分配的目的服务器将当前网页内容发送给所述SLB设备,进而发送给所述客户端;若为否,删除所述访问请求中的修改时间,或将所述访问请求中的修改时间修改至预测网页更新时间之前;并将调整后的访问请求发送给为所述访问请求分配的目的服务器,以使为所述访问请求分配的目的服务器将当前网页内容发送给所述SLB设备,进而发送给所述客户端。为达到上述目的,本发明实施例还公开了一种访问装置,应用于SLB设备,所述装置包括:接收单元,用于接收客户端发送的访问请求;判断单元,用于判断为所述访问请求分配的目的服务器是否与上一次分配的目的服务器相同;第一发送单元,用于在所述判断单元的判断结果为是的情况下,将所述访问请求发送给为所述访问请求分配的目的服务器,以使为所述访问请求分配的目的服务器将当前网页内容发送给所述SLB设备,进而发送给所述客户端;第二发送单元,用于在所述判断单元的判断结果为否的情况下,删除所述访问请求中的修改时间,或将所述访问请求中的修改时间修改至预测网页更新时间之前;并将调整后的访问请求发送给为所述访问请求分配的目的服务器,以使为所述访问请求分配的目的服务器将当前网页内容发送给所述SLB设备,进而发送给所述客户端。本发明实施例中,在为访问请求分配的目的服务器与上一次分配的目的服务器相同的情况下,对访问请求进行调整,也就是,删除该访问请求中的修改时间,或将该访问请求中的修改时间修改至预测网页更新时间之前。这样能够保证目的服务器将当前网页内容发送给客户端,避免了调度到存在时间差异的不同服务器时,客户端获取到过时网页内容或不能获取到网页内容的问题,保证了客户端准确地获取到正确的网页内容。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为负载均衡组网的结构示意图;图2为本发明实施例提供的一种访问方法的流程示意图;图3为本发明实施例提供的一种负载均衡组网的结构示意图;图4为本发明实施例提供的一种访问装置的结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。下面通过具体实施例,对本发明进行详细说明。参考图2,图2为本发明实施例提供的一种访问方法的流程示意图,该方法应用于SLB设备。具体地,该方法包括:S201:接收客户端发送的访问请求;在本发明的一个实施例中,访问请求可以分为:首次发起的访问请求和重新发起的访问请求,其中,首次发起的访问请求可以理解为:客户端从未访问过网站,而向该网站发起的访问请求;重新发起的访问请求可以理解为:客户端访问过该网站,而向该网站发起的访问请求。一般的,首次发起的访问请求和重新发起的访问请求是不同的,首次发起的访问请求中不包含修改时间,目的服务器可以根据首次发起的访问请求的内容,向客户端反馈当前的网页内容;而重新发起的访问请求中却包含修改时间,目的服务器需要对比修改时间,再确定是否向客户端反馈当前的网页内容,只有在目的服务器的网页修改时间比访问请求中的修改时间新的情况下,才将向客户端反馈当前的网页内容。基于上述首次发起的访问请求和重新发起的访问请求这两种情况,SLB设备在接收到访问请求(当前访问请求)后,可以先判断当前访问请求是否为首次发起的访问请求,如果是,根据预设的的调度算法,为当前访问请求分配目的服务器,并将当前访问请求发送给分配的目的服务器;如果不是,说明当前访问请求为重新发起的访问请求,考虑到每次访问都会建立会话表项,但存在会话表项删除的情况,考虑上述这种情况,在确定当前访问请求为重新发起的访问请求时,可以判断是否存储有与当前访问请求对应的会话表项;如果存储有,基于该会话表项为当前访问请求分配目的服务器,也就是,将该会话表项中包含的目的服务器确定为当前访问请求的目的服务器,并将当前访问请求发送给为当前访问请求分配的目的服务器。如果未存储与当前访问请求对应的会话表项,继续执行S202、S203和S204。在本发明的一个实施例中,可以根据访问请求中是否携带有修改时间,来确定是否为首次发起的访问请求,若没有携带有修改时间,可以确定当前访问请求为首次发起的访问请求;若携带有修改时间,可以确定当前访问请求为重新发起的访问请求。另外,可以根据当前访问请求中携带的协议类型和/或端口号等,判断是否存储有与当前访问请求对应的会话表项。例如:若当前访问请求中携带的协议类型与上一次接收到的访问请求中携带的协议类型不同,或当前访问请求中携带的目的端口号与上一次接收到的访问请求中携带的目的端口号不同,或当前访问请求中携带的源端口号与上一次接收到的访问请求中携带的源端口不同,则可以确定未存储与当前访问请求对应的会话表项;若当前访问请求中携带的协议类型与上一次接收到的访问请求中携带的协议类型相同,并且当前访问请求中携带的目的端口号与上一次接收到的访问请求中携带的目的端口号相同,当前访问请求中携带的源端口号与上一次接收到的访问请求中携带的源端口相同,则可以确定存储有与当前访问请求对应的会话表项。当然,判断是否为首次发起的访问请求或判断是否存储有与当前访问请求对应的会话表项,并不限于上述基准,也可以基于访问请求中的其他信息来判定。S203:判断为所述访问请求分配的目的服务器是否与上一次分配的目的服务器相同;若为是,执行S203;否则,执行S204;SLB设备根据预设的调度算法,为访问请求分配目的服务器。这里,访问请求中可以包括一个虚拟IP地址,该虚拟IP地址是为多个服务器所形成的集群配置的IP地址;服务器的标识可以为服务器的实体IP地址。多个服务器可以对应一个虚拟IP地址,而一个服务器对应一个实体IP地址,也就是,一个虚拟IP地址对应多个实体IP地址。这种情况下,SLB设备接收到访问请求(当前访问请求)后,可以根据预设的调度算法,为当前访问请求分配目的服务器,也就是,从访问请求中包括的虚拟IP地址对应的多个实体IP地址中,选择出一个实体IP地址,将该实体IP地址对应的服务器确定为当前访问请求的目的服务器。在本发明的一个实施例中,可以将距离客户端最近的一个服务器确定为目的服务器;也可以将当前负载的客户端最少的服务器确定为目的服务器。为了避免因调度到存在时间差异的不同服务器,导致客户端不能准确地获取到正确的网页内容,需要确定调度得到的目的服务器是否与上一次调度到的目的服务器是否相同。具体的,SLB设备在为当前访问请求分配了目的服务器(当前目的服务器)后,可以先比较当前目的服务器的标识与上一次分配的目的服务器的标识,若两个标识相同,则表示调度到了同一目的服务器;否则,表示调度到了不同的目的服务器。S203:将所述访问请求发送给为所述访问请求分配的目的服务器,以使为所述访问请求分配的目的服务器将当前网页内容发送给所述SLB设备,进而发送给所述客户端;若当前目的服务器与上一次分配的目的服务器相同,可以说明,当前访问请求中的修改时间不会旧于当前目的服务器中的修改时间,此时,无需考虑修改时间的问题,可以根据当前目的服务器的标识,直接将当前访问请求发送给当前目的服务器,当前目的服务器根据当前访问请求中的内容,将当前网页内容反馈给SLB设备,再由SLB设备转发给客户端。S204:删除所述访问请求中的修改时间,或将所述访问请求中的修改时间修改至预测网页更新时间之前;并将调整后的访问请求发送给为所述访问请求分配的目的服务器,以使为所述访问请求分配的目的服务器将当前网页内容发送给所述SLB设备,进而发送给所述客户端。一般的,可以对当前访问请求进行调整,将当前访问请求中的修改时间删除,这样SLB设备将该调整后的访问请求发送给当前目的服务器后,当前目的服务器会将调整后的访问请求作为首次发起的访问请求处理,也就是,当前目的服务器直接根据该调整后的访问请求中的内容,将当前网页内容反馈给SLB设备,再由SLB设备转发给客户端。另外,也可以对当前访问请求进行调整,将当前访问请求中的修改时间修改至预测网页更新时间之前,这样目的服务器在比较调整后的访问请求中的修改时间和该目的服务器中的修改时间时,可以确定该目的服务器中的修改时间比调整后的访问请求中的修改时间新,进而将当前的网页内容反馈给客户端。例如,SLB设备上一次为访问请求分配的目的服务器为A,目的服务器A中网页的修改时间为2016-07-0122:00:15,客户端获得修改时间为2016-07-0122:00:15;一段时间后,客户端重新发起访问请求,此时,该访问请求(也就是当前访问请求)中的修改时间为2016-07-0122:00:15,可以预测其他服务器中网页更新时间为2016-07-0122:00:00,若为当前访问请求分配的目的服务器为B,B与A不同,可将当前访问请求中的修改时间修改为2015-01-0100:00:00,这样,确保了目的服务器B中的修改时间比调整后的访问请求中的修改时间新,目的服务器B接收到调整后的访问请求后,比较调整后的访问请求中的修改时间和目的服务器B中的修改时间,目的服务器B中的修改时间比调整后的访问请求中的修改时间新,进而根据调整后的访问请求中的内容,将当前网页内容反馈给SLB设备,再由SLB设备转发给客户端,进而保证了客户端能够获得当前的网页内容。在本发明的一个实施例中,SLB设备在接收到目的服务器发送给客户端的当前网页内容之后,也就是,SLB设备在接收到目的服务器对访问请求的响应后,可以在会话表中建立针对该当前访问请求的会话表项,在当前访问请求中断前,SLB设备根据该会话表项,传递客户端和目的服务器间的交互报文。会话表项中可以包括:源IP地址、目的IP地址、源端口、目的端口和协议类型,如表1所示,每一行为一条会话表项。表1访问请求源IP地址目的IP地址源端口目的端口协议类型A1源IP1目的IP1180httpA2源IP2目的IP2280http为了在再次接收到访问请求后,能够快速的确定出上一次分配的目的服务器,可以在建立针对当前访问请求的会话表项后,将该会话表项标记为最新会话表项,进而将上一次建立的会话表项表为非最新会话表项。这样,当当前会话中断后,SLB设备再次接收到访问请求后,可以快速的确定出上一次分配的目的服务器,也就是,最新会话表项中所包含的目的服务器。这种情况下,上述判断为访问请求分配的目的服务器是否与上一次分配的目的服务器相同,可以为;判断为访问请求分配的目的服务器是否与最新会话表项中所包含的目的服务器相同;若相同,可以判定为访问请求分配的目的服务器与上一次分配的目的服务器相同;若不同,可以判定为访问请求分配的目的服务器与上一次分配的目的服务器不同。一般的,可以在会话表项中添加一个标记位,用该标记位来标记最新会话表项,如:最新会话表项的标记位可以设置为1,非最新会话表项的标记位可以设置为0,如表2所示。表2访问请求源IP地址目的IP地址源端口目的端口协议类型标记位A1源IP1目的IP1180http1A2源IP2目的IP2280http0从表2中可以确定A1对应的会话表项,也就是,第一行会话表项为最新会话表项,当再次接收到访问请求A3时,根据预设的调度算法,为访问请求A3分配目的服务器,可以快速地根据第一行会话表项,确定当前为访问请求A3分配的目的服务器是否与上一次分配的目的服务器相同,例如,根据预设的调度算法,为该访问请求A3分配目的服务器的IP地址为目的IP3,表2中最新会话表项A1的目的IP为目的IP1,目的IP1与目的IP3不同,可以确定当前为访问请求A3分配的目的服务器与上一次分配的目的服务器不同。另外,当SLB设备接收到目的服务器发送给客户端的当前网页内容之后,重新建立针对该访问请求A3会话表项,并将重新建立的会话表项标记为最新会话表项,如表3所示。表3访问请求源IP地址目的IP地址源端口目的端口协议类型标记位A1源IP1目的IP1180http0A2源IP1目的IP2280http0A3源IP1目的IP3380http1在本发明的一个实施例中,目的服务器的状态随时可能会发生变化,如目的服务器链路故障等,导致目的服务器不能根据访问请求反馈当前的网页内容。为避免这种情况,可以为会话表项配置老化时间。这样,若当前时刻至配置老化时间的时刻的时长未达到老化时间,则根据该会话表项传递本次访问请求中的交互报文;若当前时刻至配置老化时间的时刻的时长达到老化时间,则中断本次会话,当再次接收到访问请求时,根据预设的调度算法,重新为访问请求分配目的服务器。另外,为了避免过度无用的会话表项占用过多SLB设备的存储空间,当当前时刻至配置老化时间的时刻的时长达到老化时间,可以删除该会话表项。在建立的针对当前访问请求的会话表项达到老化时间,为该访问请求重新分配目的服务器后,为了避免因为访问请求中携带的修改时间,导致客户端不能准确获得正确的网页内容,在重新为访问请求分配目的服务器后,可以直接删除该访问请求中的修改时间,或将访问请求中的修改时间修改至预测网页更新时间之前;并将调整后的访问请求发送给目的服务器。下面结合一实例,说明客户端获取目的服务器中的当前网页内容的过程。参考图3,图3为本发明实施例提供的一种负载均衡组网的结构示意图,该负载均衡组网中包括一个客户端100、一个SLB设备200和三个服务器,分别为服务器300(实体IP地址10.1.1.100)、服务器301(实体IP地址10.1.1.101)和服务器302(实体IP地址10.1.1.102),这三个服务器对应同一虚拟IP地址10.1.1.1,客户端100的IP地址为1.1.1.1。假设,标记位为1表示为最新会话表项,标记位为0表示为非最新会话表项,一般的,客户端获取服务器中的当前网页内容的过程,可以包括:1、客户端100以源端口1234、目的端口80,通过虚拟IP地址10.1.1.1将首次发起的访问请求1发送给SLB设备200,该访问请求1中未携带的修改时间;2、SLB设备200根据预设的调度算法,发现服务器300距离客户端100最近,因此,为访问请求1分配的目的服务器为服务器300,将访问请求1发送给服务器300,服务器300根据访问请求1的内容将当前网页内容发送给客户端100,客户端100记录下服务器300的网页修改时间2016-07-0122:00:00;另外,建立针对访问请求1的会话表项(1.1.1.1,10.1.1.100,1234,80,http,1),此时最新会话表项为1.1.1.1,10.1.1.100,1234,80,http,1;3、一段时间后,客户端100以源端口2345、目的端口80,通过虚拟IP地址10.1.1.1将重新发起的访问请求2发送给SLB设备200,该访问请求2中携带的修改时间为2016-07-0122:00:00;4、服务器300的线路故障,访问请求2不能到达服务器300,SLB设备根据预设的调度算法,发现服务器302距离客户端100较近,因此,为访问请求2分配的目的服务器为服务器302,最新会话表项(1.1.1.1,10.1.1.100,1234,80,http,1)中的目的IP地址10.1.1.100与服务器302的实体IP地址10.1.1.102不同,确定目的服务器是上一次分配的目的服务器不同,将访问请求2中携带的修改时间2016-07-0122:00:00删除(或将该修改时间修改为2015-01-0100:00:00),将调整后的访问请求2发送给服务器302,服务器302根据调整后的访问请求2的内容将当前网页内容发送给客户端100,客户端100记录下服务器302的网页修改时间2016-07-0122:00:15;另外,建立针对访问请求2的会话表项(1.1.1.1,10.1.1.102,2345,80,http,1),并将针对访问请求1的会话表项中的标记位修改为0,也就是,针对访问请求1的会话表项修改为(1.1.1.1,10.1.1.100,1234,80,http,0),此时最新会话表项为1.1.1.1,10.1.1.102,2345,80,http,1;5、在会话表项(1.1.1.1,10.1.1.102,2345,80,http,1)老化前,根据该会话表项处理客户端100和服务器302间的交互报文;当会话表项(1.1.1.1,10.1.1.102,2345,80,http,1)老化后,SLB设备根据预设的调度算法,重新调度目的服务器,为访问请求2重新分配目的服务器。本发明实施例提供了一种访问方法,在为访问请求分配的目的服务器与上一次分配的目的服务器相同的情况下,对访问请求进行调整,也就是,删除该访问请求中的修改时间,或将该访问请求中的修改时间修改至预测网页更新时间之前。这样能够保证目的服务器将当前网页内容发送给客户端,避免了调度到存在时间差异的不同服务器时,客户端获取到过时网页内容或不能获取到网页内容的问题,保证了客户端准确地获取到正确的网页内容。参考图4,图4为本发明实施例提供的一种访问装置的结构示意图,应用于SLB设备,该装置包括:接收单元401,用于接收客户端发送的访问请求;判断单元402,用于判断为所述访问请求分配的目的服务器是否与上一次分配的目的服务器相同;第一发送单元403,用于在所述判断单元403的判断结果为是的情况下,将所述访问请求发送给为所述访问请求分配的目的服务器,以使为所述访问请求分配的目的服务器将当前网页内容发送给所述SLB设备,进而发送给所述客户端;第二发送单元404,用于在所述判断单元403的判断结果为否的情况下,删除所述访问请求中的修改时间,或将所述访问请求中的修改时间修改至预测网页更新时间之前;并将调整后的访问请求发送给为所述访问请求分配的目的服务器,以使为所述访问请求分配的目的服务器将当前网页内容发送给所述SLB设备,进而发送给所述客户端。在本发明的一个实施例中,所述判断单元402,具体可以用于:判断为所述访问请求分配的目的服务器是否与最新会话表项中所包含的目的服务器相同;这种情况下,上述基于服务器负载均衡的访问装置还可以包括:建立单元(图4中未示出),用于在接收到为所述访问请求分配的目的服务器发送给所述客户端的当前网页内容之后,在会话表中建立针对所述访问请求的会话表项,并将所述会话表项标记为最新会话表项。在本发明的一个实施例中,所述建立单元,还可以用于为会话表项配置老化时间;当达到所述老化时间时,删除会话表项。在本发明的一个实施例中,所述判断单元402,具体可以用于:判断是否为首次发起的访问请求;若为是,将所述访问请求发送给所分配的目的服务器;若为否,判断为所述访问请求分配的目的服务器的标识是否与上一次分配的目的服务器的标识相同。本发明实施例提供了一种访问装置,在为访问请求分配的目的服务器与上一次分配的目的服务器相同的情况下,对访问请求进行调整,也就是,删除该访问请求中的修改时间,或将该访问请求中的修改时间修改至预测网页更新时间之前。这样能够保证目的服务器将当前网页内容发送给客户端,避免了调度到存在时间差异的不同服务器时,客户端获取到过时网页内容或不能获取到网页内容的问题,保证了客户端准确地获取到正确的网页内容。对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1