具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的访问均衡处理方法,可应用在如图1的应用环境中,其中,客户端与提供域名服务的服务器之间设有访问均衡处理装置,该访问均衡处理装置通常可以是Nginx服务器,或者说访问均衡处理装置集成于Nginx服务器,使得Nginx服务器具有访问均衡处理方法。在一应用场景中,该Nginx服务器是部署于云端的服务器,其中,客户端可以但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备等终端设备。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一实施例中,如图2所示,提供一种访问均衡处理方法,以该方法应用在图2中的服务器为例进行说明,包括如下步骤:
S10:在接收到客户端针对目标域名的访问请求时,获取所述目标域名对应的DNS解析结果。
域名(Domain Name),又称网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识,从而访问该计算机或计算机组,该计算机或计算机组通常采用服务器实现。可以理解,尽管IP地址能够唯一地标记网络上的计算机,但IP地址是一长串数字,不直观,而且用户记忆十分不方便,因此有了所谓的域名地址。IP地址和域名是一一对应的,这份域名地址的信息存放在一个叫域名服务器(DNS,Domain name server)的主机内,用户只需了解易记的域名地址,其对应转换工作就留给了域名服务器,从而解析到域名,以访问对应的计算机或计算机组。服务器就是提供IP地址和域名之间的转换服务的服务器。
客户端是指电脑、手机等用户端,一般可通过客户端通过某一目标域名访问服务器以获取所需的服务,而访问均衡处理装置是部署于客户端和服务器之间的均衡处理设备,客户端发出针对目标域名的访问请求时,访问均衡处理装置会获取所述目标域名对应的DNS解析结果。具体地,访问均衡处理装置可以请求域名服务器对该目标域名进行解析,以获取DNS解析结果。如前述,智能DNS分析在于对该目标域名进行解析,从而获取到该目标域名对应的IP地址,可以理解,为了为网络区域提供更好的访问服务,智能DNS分析后,会根据客户端的所在的网络区域解析出对应的IP地址,例如,由于同一个域名在国外,国内网络区域;或者电信网络区域,联通网络区域解析出的IP地址均是都不一样,从而得到目标域名对应的DNS解析结果。
S20:获取探测网络的数据链路层的链路信息和链路状态信息。
其中,在一应用场景中,所述探测网络为与所述客户端所在的访问网络不同的网络,需要说明的是,不同的网络区域指的是不同的网络运营商提供的网络区域。举个简单例子,客户端所在的访问网络可以是网络运营商I1提供的网络,探测网络可以是网络运营商I2提供的网络。更进一步地,客户端所在的访问网络和探测网络可以是客户端所在地区的两个不同的网络运营商提供的网络,例如,是客户端所在地区的城市所在的两个不同的网络运营商提供的网络。更进一步地,客户端所在的访问网络和探测网络可以是不同地区的两个不同的网络运营商提供的网络,例如,是国家N1和国家N2的城市所在的两个不同的网络运营商提供的网络,具体不做限定。在具体应用时,可以在探测网络部署探测节点,从而依据探测节点反馈探测网络的数据链路层的链路信息和链路状态信息。
需要说明的是,数据链路层是介乎于物理层和网络层之间,数据链路层在物理层提供的服务的基础上向网络层提供服务,通过数据链路是将源自网络层来的数据可靠地传输到相邻节点的网络层,而非物理链路,与物理链路的区别如下:
物理链路:是由传输介质与设备(客户端)组成的。原始的物理传输线路是指没有采用控制的基本的物理传输介质与设备。数据链路:在一条物理线路之上,通过一些规程或协议来控制这些数据的传输,以保证被传输数据的正确性。实现这些规程或协议的硬件和软件加到物理线路,这样就构成了数据链路,从数据发送点到数据接收点所经过的传输途径。客户端所在的访问网络和探测网络通过数据链路层的数据链路实现数据之间的传输途径。
在本发明实施例中,在对客户端的访问做均衡负载处理时,不仅需要获取目标域名对应的DNS解析结果,还需获取探测网络的数据链路层的链路信息;并实时获取探测网络的数据链路层的和链路状态信息。
探测网络的数据链路层的链路信息指的是用于反映该探测网络的数据链路层属性的属性信息,可以包括数据链路类型、数目、地址等信息;探测网络的数据链路层的链路状态数据指的是用于反映该探测网络的数据链路层的链路状态的数据,可以包括链路响应时长、数据丢包率和链路节点数等信息,本实施例中,可以从提供该探测网络的数据链路层服务的供应商发送请求,以实时获取探测网络的数据链路层的链路信息和链路状态信息。
S30:根据所述探测网络对应的链路信息确定出所述探测网络涉及的所有可选数据链路。
S40:根据所述探测网络对应的链路状态信息实时确定所述所有可选数据链路的链路状态。
在得到探测网络对应的链路状态信息之后,便可解析链路状态信息,从而分别确定出探测网络涉及的所有可选数据链路的链路状态。可以理解,可选数据链路的链路状态反映了该可选数据链路的状态,从而便于后续做负载均衡处理时,选取合适的数据链路作为通信链路。
例如,若确定探测网络存在数据链路1、2、3、4、5和6,则数据链路1-6均可以为客户端提供数据传输途径,则确定出探测网络涉及的所有可选数据链路包括上述数据链路1-6,并确定出数据链路1-6中,每条数据链路的链路状态。具体地,在前述步骤获取到探测网络对应的链路信息之后,便可解析该链路信息,从而得到探测网络各数据链路层的数据链路类型、数目、地址、是否处于可用状态等信息,从而得到探测网络涉及的所有可选数据链路。
S50:根据所述所有可选数据链路的链路状态和所述DNS解析结果确定符合预设条件的目标IP地址。
S60:将所述目标IP地址反馈于所述客户端,以使所述客户端通过所述目标IP地址访问对应的服务器。
在获取到DNS解析结果,以及所有可选数据链路的链路状态之后,此时,访问均衡处理装置便具有多种数据链路,包括依据从探测网络确定出的数据链路以及DNS解析结果对应的数据链路,并从中择优选取出合适的数据链路,将该的数据链路对应的IP地址作为目标IP地址,将所述目标IP地址反馈于所述客户端,以使所述客户端可以通过所述目标IP地址访问对应的服务器,从而使得客户端获取到所需的服务资源。
可见,本发明实施例提供了一种访问均衡处理方法,其中,对于同一个域名,针对国外,国内,同个国家内不同网络区域,智能解析出的IP地址是不一样的,智能DNS解析能为客户端解析出其所在网络对应的IP地址,但这时可能探测网络的某个数据链路更佳,访问均衡处理装置通过链路层的检测,能够帮助智能DNS更进一步的帮助用户选择最佳数据链路,如果只有智能DNS,无法得到访问均衡处理方法所实现的功能,本方案可提供了链路层的负载均衡的能力,有效地提供了整体负载均衡能力,有效地保证了客户端访问的质量和有效性。
在一实施例中,可以有多种反映数据链路的链路状态的方式,其中一种,如图3所示,步骤S30中,即所述根据所述探测网络对应的链路状态信息实时确定所述所有可选数据链路的链路状态,具体包括如下步骤:
S31:解析所述探测网络对应的链路状态信息,以获取所述所有可选数据链路的链路响应时长、数据丢包率和链路节点数。
S32:根据所述链路响应时长、数据丢包率和链路节点数对应确定所述所有可选数据链路中每条可选数据链路的链路总评分。
S33:根据每条所述可选数据链路的链路总评分对应确定每条所述可选数据链路的链路状态。
对于步骤S31-S33,在获取到探测网络对应的链路状态信息之后,便可对探测网络对应的链路状态信息进行解析,从而解析出探测网络下所有可选数据链路的链路响应时长、数据丢包率和链路节点数。链路响应时长通常指的是数据链路的整体响应时长,链路节点数指的是经过该数据链路需经过多少链路节点。数据链路的链路响应时长、数据丢包率和链路节点数均反映了数据链路的健康状态,为后续能提供更优的数据传输服务,实现负载均衡,该步骤中,需获取探测网络下所述所有可选数据链路的链路响应时长、数据丢包率和链路节点数,并根据所述链路响应时长、数据丢包率和链路节点数对应确定所述所有可选数据链路中每条可选数据链路的链路总评分,从而根据每条所述可选数据链路的链路总评分对应确定每条所述可选数据链路的链路状态。可以理解,由于不同的链路响应时长、数据丢包率和链路节点数对数据链路的链路状态均有影响,故可以按照某种计分方式对数据链路的链路状态进行评分以用于反映链路状态,转化为定量,便于后续分析处理。
其中,在一实施例中,提供了一种确定可选数据链路的链路总评分的方式,如图4所示,也就是说,步骤S32中,也即根据所述链路响应时长、数据丢包率和链路节点数对应确定所述所有可选数据链路中每条可选数据链路的链路总评分,具体包括如下步骤:
S321:根据预设权重配置信息获取每条所述可选数据链路的链路响应时长、数据丢包率和链路节点数的权重比例。
本发明实施例中,由于不同的链路状态反映指标对数据链路的链路状态影响不一,轻重不同,在确定每条可选数据链路的链路总评分之前,可以预选设置链路响应时长、数据丢包率和链路节点数的权重比例,从而得到预设权重配置信息。其中,该预设权重配置信息可以保存在本地便于提取。例如,对于数据链路的数据丢包率,数据丢包率是比较重要的一个指标,直接影响了数据传输结果,可以把数据丢包率的权重比例占比可为60%;对于链路节点数,因为链路节点数越多,数据包传输存在的风险也越大,则可以把链路节点数的权重比例占比设置为5%;对于链路响应时长,链路响应时长会影响数据传输的效率也是一个比较重要的指标,可以把链路响应时长的权重比例占比设为35%。
需要说明的是,上述例子在此仅是示例说明,并不造成限定。
S322:根据每条所述可选数据链路的链路响应时长、数据丢包率和链路节点数和对应的权重比例,对应确定每条所述可选数据链路的链路响应时长评分、数据丢包率评分和链路节点数评分。
在获取到每条所述可选数据链路的链路响应时长、数据丢包率和链路节点数的权重比例,可分别将链路响应时长、数据丢包率和链路节点数与对应的权重比例取乘积,从而确定每条所述可选数据链路的链路响应时长评分、数据丢包率评分和链路节点数评分。
S323:对每条所述可选数据链路的链路响应时长评分、数据丢包率评分和链路节点数评分进行叠加,以获取每条所述可选数据链路的链路总评分。
在对每条所述可选数据链路的链路响应时长评分、数据丢包率评分和链路节点数评分进行叠加,以获取每条所述可选数据链路的链路总评分。
例如,若探测网络下的可选数据链路包括数据链路1,数据链路1对应的链路响应时长评分为t1、数据链路1对应的链路响应时长评分为r1、数据链路1对应的链路响应时长评分为n1,则该数据链路1的链路总评分=t1+r1+n1。以此类推,可以获取到每条所述可选数据链路的链路总评分。
在一实施例中,如图5所示,步骤S50中,即所述根据所述所有可选数据链路的链路状态和所述DNS解析结果确定符合预设条件的目标IP地址,具体包括如下步骤:
S51:根据所述所有可选数据链路的链路状态,从所述所有可选数据链路中确定出符合预设链路状态的第一目标数据链路。
在根据所述探测网络对应的链路状态信息实时确定所述所有可选数据链路的链路状态之后,依次对可选数据链路的链路状态进行分析,从所述所有可选数据链路中确定出符合预设链路状态的第一目标数据链路。其中,为了提高后续负载均衡处理能力,此时,需从探测网络的所有可选数据链路选取符合预设链路状态的可选数据链路,为便于说明,在本发明实施例将预设链路状态的可选数据链路称为第一目标数据链路。
其中,在一实施方式中,所述根据所述所有可选数据链路的链路状态,从所述所有可选数据链路中确定出符合预设链路状态的第一目标数据链路,指的是从所述所有可选数据链路中确定出链路总评分最高的可选数据链路作为第一目标数据链路。可以理解的是,链路总评分最高,说明此可选数据链路更佳,择优选取最佳的数据链路进行决策。
S52:根据所述DNS解析结果确定该所述目标域名对应的待选IP地址。
如前述,智能DNS分析在于对该目标域名进行解析,从而获取到该目标域名对应的IP地址,为了为网络区域提供更好的访问服务,智能DNS分析后,会根据客户端的所在的网络区域解析出对应的IP地址,本发明实施例中,将会根据客户端的所在的网络区域解析出对应的IP地址称为待选IP地址。因此,由于所述DNS解析结果是对客户端触发的目标域名的DNS解析结果,根据所述DNS解析结果可以确定出该所述目标域名对应的待选IP地址。
S53:确定所述客户端到所述待选IP地址对应的服务器的第二目标数据链路。
S54:对比所述第一目标数据链路和所述第二目标数据链路的链路状态。
可以理解,在根据所述DNS解析结果确定该所述目标域名对应的待选IP之后,需确定所述客户端到所述待选IP地址对应的服务器的第二目标数据链路。值得注意的是,按照以往的做法,此时会直接利用该待选IP访问相应的第二目标数据链路,以完成数据传输服务。而在本发明实施例中,需对比所述第一目标数据链路和所述第二目标数据链路的链路状态。需要说明的是,第二目标数据链路的链路状态过程与前述确定探测网络下可选数据链路的过程类似,也是可以确定第二目标数据链路的链路响应时长、数据丢包率和链路节点数,并第二目标数据链路的链路响应时长、数据丢包率和链路节点数确定第二目标数据链路的链路总评分,继而第二目标数据链路的链路总评分的确定第二目标数据链路的链路状态,在此不重复描述。
其中,在一实施例中,如图6所示,步骤S54中,也即所述对比所述第一目标数据链路和所述第二目标数据链路的链路状态,具体包括如下步骤:
S541:确定第一目标数据链路对应的链路总评分是否大于第二目标数据链路对应的链路总评分。
S542:若所述第一目标数据链路对应的链路总评分大于所述第二目标数据链路对应的链路总评分,则确定所述第一目标数据链路的链路状态优于第二目标数据链路的链路状态。
S543:若所述第一目标数据链路对应的链路总评分小于或等于所述第二目标数据链路对应的链路总评分,则确定所述第二目标数据链路的链路状态优于所述第一目标数据链路的链路状态。
对于步骤S541-S542,在对比所述第一目标数据链路和所述第二目标数据链路的链路状态优劣时,可直接对比第一目标数据链路对应的链路总评分和第二目标数据链路对应的链路总评分,具有较强的实用性。
S55:若所述第一目标数据链路的链路状态优于第二目标数据链路的链路状态,则根据所述第一目标数据链路生成目标IP地址。
S56:若所述第二目标数据链路的链路状态优于所述第一目标数据链路的链路状态,则将待选IP地址作为所述目标IP地址。
可以理解,在传统的方案中,一般仅利用智能DNS,从而选取相同的网络区域的IP地址用于给客户端访问,例如,若客户端在网络运营商A的网络区域发起针对目标域名的访问请求,由于客户端发起访问请求的网络运营商A的网络区域,智能DNS出的IP地址也是为网络运营商A的网络区域的IP地址,但是,在许多应用场景,解析出的网络运营商A的IP地址对应的数据链路,有时还不一定比网络运营商B的网络区域的IP地址对应的数据链路更好,故传统方案存在缺陷,反而不能达到均衡负载的作用。本方案中,还会进行链路检测,确定出网络运营商A的网络区域和网络运营商B的网络区域的IP地址对应的所有数据链路的链路状态,依据链路状态和智能DNS选择合适的数据链路,而非简单根据智能DNS选择数据链路,使得负载均衡的效果更佳,可有效地保证客户端访问目标域名的效率和质量。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在一实施例中,提供一种访问均衡处理装置,该访问均衡处理装置与上述实施例中访问均衡处理方法一一对应。如图7所示,该访问均衡处理装置包括第一获取模块101、第二获取模块102、第一确定模块103、第二确定模块104、第三确定模块105和反馈模块106。各功能模块详细说明如下:
第一获取模块101,用于在接收到客户端针对目标域名的访问请求时,获取所述目标域名对应的DNS解析结果;
第二获取模块102,用于获取探测网络的数据链路层的链路信息和链路状态信息;
第一确定模块103,用于根据所述探测网络对应的链路信息确定出所述探测网络涉及的所有可选数据链路;
第二确定模块104,用于根据所述探测网络对应的链路状态信息实时确定所述所有可选数据链路的链路状态;
第三确定模块105,用于根据所述所有可选数据链路的链路状态和所述DNS解析结果确定符合预设条件的目标IP地址;
反馈模块106,用于将所述目标IP地址反馈于所述客户端,以使所述客户端通过所述目标IP地址访问对应的服务器。
在一实施方式中,所述第三确定模块105具体用于:
根据所述所有可选数据链路的链路状态,从所述所有可选数据链路中确定出符合预设链路状态的第一目标数据链路;
根据所述DNS解析结果确定该所述目标域名对应的待选IP地址;
确定所述客户端到所述待选IP地址对应的服务器的第二目标数据链路;
对比所述第一目标数据链路和所述第二目标数据链路的链路状态;
若所述第一目标数据链路的链路状态优于第二目标数据链路的链路状态,则根据所述第一目标数据链路生成目标IP地址;
若所述第二目标数据链路的链路状态优于所述第一目标数据链路的链路状态,则将所述待选IP地址作为所述目标IP地址。
在一实施方式中,所述第三确定模块105还具体用于:
根据所述所有可选数据链路的链路状态,从所述所有可选数据链路中确定出链路总评分最高的可选数据链路作为所述第一目标数据链路。
在一实施方式中,所述第三确定模块105还具体用于:
确定第一目标数据链路对应的链路总评分是否大于第二目标数据链路对应的链路总评分;
若所述第一目标数据链路对应的链路总评分大于所述第二目标数据链路对应的链路总评分,则确定所述第一目标数据链路的链路状态优于第二目标数据链路的链路状态;
若所述第一目标数据链路对应的链路总评分小于或等于所述第二目标数据链路对应的链路总评分,则确定所述第二目标数据链路的链路状态优于所述第一目标数据链路的链路状态。
在一实施方式中,第二获取模块102具体用于:
解析所述探测网络对应的链路状态信息,以获取所述所有可选数据链路的链路响应时长、数据丢包率和链路节点数;
根据所述链路响应时长、数据丢包率和链路节点数对应确定所述所有可选数据链路中每条可选数据链路的链路总评分;
根据每条所述可选数据链路的链路总评分对应确定每条所述可选数据链路的链路状态。
在一实施方式中,第二获取模块102还具体用于:
根据预设权重配置信息获取每条所述可选数据链路的链路响应时长、数据丢包率和链路节点数的权重比例;
根据每条所述可选数据链路的链路响应时长、数据丢包率和链路节点数和对应的权重比例,对应确定每条所述可选数据链路的链路响应时长评分、数据丢包率评分和链路节点数评分;
对每条所述可选数据链路的链路响应时长评分、数据丢包率评分和链路节点数评分进行叠加,以获取每条所述可选数据链路的链路总评分。
可见,本发明实施例提供了一种访问均衡处理装置,其中,对于同一个域名,针对国外,国内,同个国家内不同网络区域,智能解析出的IP地址是不一样的,智能DNS解析能为客户端解析出其所在网络对应的IP地址,但这时可能探测网络的某个数据链路更佳,访问均衡处理装通过链路层的检测,能够帮助智能DNS更进一步的帮助用户选择最佳数据链路,如果只有智能DNS,无法得到访问均衡处理方法所实现的功能,本方案可提供了链路层的负载均衡的能力,有效地提供了整体负载均衡能力,有效地保证了客户端访问的质量和有效性。
关于访问均衡处理装置的具体限定可以参见上文中对于访问均衡处理方法的限定,在此不再赘述。上述访问均衡处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性和易失性存储介质、内存储器。该存储介质存储有操作系统、计算机程序和数据库。该内存储器为存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种访问均衡处理方法。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
在接收到客户端针对目标域名的访问请求时,获取所述目标域名对应的DNS解析结果;
获取探测网络的数据链路层的链路信息和链路状态信息;
根据所述探测网络对应的链路信息确定出所述探测网络涉及的所有可选数据链路;
根据所述探测网络对应的链路状态信息实时确定所述所有可选数据链路的链路状态;
根据所述所有可选数据链路的链路状态和所述DNS解析结果确定符合预设条件的目标IP地址;
将所述目标IP地址反馈于所述客户端,以使所述客户端通过所述目标IP地址访问对应的服务器。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
在接收到客户端针对目标域名的访问请求时,获取所述目标域名对应的DNS解析结果;
获取探测网络的数据链路层的链路信息和链路状态信息;
根据所述探测网络对应的链路信息确定出所述探测网络涉及的所有可选数据链路;
根据所述探测网络对应的链路状态信息实时确定所述所有可选数据链路的链路状态;
根据所述所有可选数据链路的链路状态和所述DNS解析结果确定符合预设条件的目标IP地址;
将所述目标IP地址反馈于所述客户端,以使所述客户端通过所述目标IP地址访问对应的服务器。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。