CDN服务切换方法、装置、计算机设备及存储介质与流程

文档序号:17126067发布日期:2019-03-16 00:27阅读:448来源:国知局
CDN服务切换方法、装置、计算机设备及存储介质与流程

本发明属于内容分发网络领域,更具体地说,是涉及一种cdn服务切换方法、装置、计算机设备及存储介质。



背景技术:

内容分发网络(contentdeliverynetwork,简称cdn),通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络。在进行页面访问时,都是cdn提前从原始服务网站上下载好页面的所有资源包,解压后在本地打开,这样可以提高页面的访问速度。如果直接对原始服务网站进行访问,则访问的速度会比较慢。因此,保证cdn的可用性才能保证较快的访问速度。

目前,大多数cdn容灾方案都是通过一个服务器去检查cdn是否可用,如果不可用则将该cdn下线。其中,容灾是指当一个cdn出现故障时切换到其它的cdn,防止出现cdn不可用的现象。但是cdn故障的可能性有很多,例如cdn服务器网络故障、cdn节点出现故障、本地网络是否正常、中间节点出现网络拥堵或者发生故障、cdn节点被大流量或cc攻击等等,通过服务器检测的方式只能排除cdn节点出现故障这种情况,无法覆盖其它种情况,所以往往还是不能完全解决cdn可用性的问题,cdn容灾的效率不高。



技术实现要素:

本发明实施例提供一种cdn服务切换方法、装置、计算机设备及存储介质,以解决cdn容灾效率不高的问题。

一种cdn服务切换方法,包括:

获取预设cdn地址,根据所述预设cdn地址发送页面访问请求;

根据所述页面访问请求获取从所述预设cdn地址返回的页面信息;

判断所述页面信息是否为异常;

若所述页面信息为异常,则获取备选cdn地址,其中,所述备选cdn地址为n个,n为正整数;

对所述n个备选cdn地址进行排序,得到cdn地址顺序;

根据所述cdn地址顺序切换所述预设cdn地址。

一种cdn服务切换装置,包括:

预设地址获取模块,用于获取预设cdn地址,根据所述预设cdn地址发送页面访问请求;

页面信息获取模块,用于根据所述页面访问请求获取从所述预设cdn地址返回的页面信息;

页面信息判断模块,用于判断所述页面信息是否为异常;

备选地址获取模块,用于若所述页面信息为异常,则获取备选cdn地址,其中,所述备选cdn地址为n个,n为正整数;

地址顺序获取模块,用于对所述n个备选cdn地址进行排序,得到cdn地址顺序;

预设地址切换模块,用于根据所述cdn地址顺序切换所述预设cdn地址。

一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述cdn服务切换方法的步骤。

一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述cdn服务切换方法的步骤。

上述cdn服务切换方法、装置、计算机设备及存储介质,通过获取预设cdn地址,然后根据预设cdn地址发送页面访问请求;根据页面访问请求获取从预设cdn地址返回的页面信息,并判断返回的页面信息是否为异常;若页面信息为异常,则获取备选cdn地址,再对备选cdn地址进行排序,得到cdn地址顺序;最后根据cdn地址顺序切换cdn地址。由于cdn地址的切换是根据客户端得到的页面信息是否为异常和排序得到的cdn地址顺序来进行切换的,实现了从客户端进行cdn容灾的效果,因此可以避免不能检测cdn服务器网络故障、本地网络异常、cdn节点被大流量攻击等等情况,扩大了cdn容灾的范围,提高了cdn容灾的效率。

附图说明

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

图1是本发明一实施例中cdn服务切换方法的一应用环境示意图;

图2是本发明一实施例中cdn服务切换方法的一流程图;

图3是本发明一实施例中cdn服务切换方法的另一流程图;

图4是本发明一实施例中cdn服务切换方法的另一流程图;

图5是本发明一实施例中cdn服务切换方法的另一流程图;

图6是本发明一实施例中cdn服务切换方法的另一流程图;

图7是本发明一实施例中cdn服务切换方法的另一流程图;

图8是本发明一实施例中cdn服务切换装置的一原理框图;

图9是本发明一实施例中cdn服务切换装置中地址顺序获取模块的一原理框图;

图10是本发明一实施例中计算机设备的一示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本申请提供的cdn服务切换方法,可应用在如图1的应用环境中,其中,客户端通过网络与服务端进行通信,服务端通过客户端获取预设cdn地址,然后根据预设cdn地址发送页面访问请求;根据页面访问请求获取从预设cdn地址返回的页面信息;并判断页面信息是否为异常,若页面信息为异常,服务端则获取备选cdn地址;再对备选cdn地址进行排序,得到cdn地址顺序;最后根据cdn地址顺序切换预设cdn地址,使客户端通过切换后的预设cdn地址发送页面访问请求。其中,客户端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。服务端可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

可选地,本申请提供的cdn服务切换方法,也可以单独应用在客户端中,其中,客户端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,即该cdn服务切换方法应用在单独的客户端中。

在一实施例中,如图2所示,提供一种cdn服务切换方法,以该方法单独应用在客户端为例进行说明,包括如下步骤:

s201:获取预设cdn地址,根据预设cdn地址发送页面访问请求。

其中,预设cdn地址是指客户端默认访问的cdn地址。可选地,预设cdn地址可以在客户端预置,例如通过在客户端配置预设cdn地址的域名来实现。

其中,页面访问请求是指客户端发送的访问页面资源的请求,例如访问网页、传输图片或下载文件等。可选地,可以在初始化时,由客户端向预设cdn地址发送一个测试的页面访问请求,即向预设cdn地址发送一个test请求,以判断预设cdn地址是否可用。其中,初始化是指启动客户端时进行应用环境的设置。应理解,也可以是客户端向预设cdn地址发送正常的页面访问请求,根据返回的页面信息来判断预设cdn地址是否可用。

具体地,客户端获取预设cdn地址,然后根据用户的操作获取页面访问请求,将页面访问请求发送至预设cdn地址进行访问。

s202:根据页面访问请求获取从预设cdn地址返回的页面信息。

可以理解,当客户端向预设cdn地址发送页面访问请求后,在预设cdn地址运行正常的情况下,客户端可以根据发送的页面访问请求从预设cdn地址获取返回的页面信息。其中,页面信息包括网页、文件或链接等页面资源的信息,例如文件的大小、图片格式或网页数据值等信息。其中,页面信息保存在客户端预设的位置中。

具体地,在向预设cdn地址发送页面访问请求后,客户端获取从预设cdn地址获取的页面信息,并在预设的存储位置存储页面信息。

在一实施例中,步骤s202还包括:若在预设时间内未收到返回的页面信息,则判定返回的页面信息为异常,直接执行步骤s204。

其中,预设时间可以根据实际情况来设定,例如通常的返回时间为2-10秒,则可以设定预设时间为10秒。若在预设时间内未收到返回的页面信息,则表明该预设cdn地址存在故障,不能正常返回结果,客户端判定返回的页面信息为异常。

具体地,可以在客户端向预设cdn地址发送页面访问请求后触发一个等待计时器,并将等待计时器的时间与预设时间进行比较;若等待计时器的时间大于预设时间之后还未收到返回的页面信息,则客户端判定返回的页面信息为异常。

s203:判断页面信息是否为异常。

具体地,客户端可以根据返回页面信息的返回速度、返回的页面信息是否为错误信息或返回的页面信息是否完整等,来判断返回的页面信息是否为异常。例如,当返回页面信息的返回速度比正常的返回速度慢时,此时返回的页面信息为空白值,可以判定返回的页面信息为异常。又例如,当返回的页面信息为“访问的页面不存在”或以200开头的错误代码时,也可以判定返回的页面信息为异常。

s204:若页面信息为异常,则获取备选cdn地址,其中,备选cdn地址为n个,n为正整数。

可选地,备选cdn地址可以预置在客户端中,可以通过在客户端配置n个cdn地址的域名来实现,n为正整数。

可选地,在步骤s201中,客户端可以根据随机选取的结果设置预设cdn地址。例如先对备选cdn地址设定一个标识,如地址1、地址2或地址3等等,再根据标识设置一个随机算法,将随机算法的结果得到的标识对应的一个备选cdn地址设置为预设cdn地址。也可以根据备选cdn地址与客户端的网络距离的远近来设置预设cdn地址,例如优先将与客户端的网络距离最近的备选cdn地址设置为预设cdn地址。

s205:对n个备选cdn地址进行排序,得到cdn地址顺序。

具体地,当客户端判断从预设cdn地址获取的页面信息为异常时,则对n个备选cdn地址进行排序,得到cdn地址顺序。其中,排序可以根据备选cdn地址与客户端的网络距离、备选cdn地址的网络延迟值或备选cdn地址的负载等指标进行排序,使备选cdn地址按照性能从优到劣进行排序,从而得到cdn地址顺序。进一步地,客户端通过排序得到的cdn地址顺序进行预设cdn地址的切换,使预设cdn地址保持可用状态,解决cdn地址的可用性问题,达到cdn容灾的目的。例如,将备选cdn地址按照备选cdn地址与客户端的网络距离从近到远进行排序,使客户端可以优先访问网络距离最近的备选cdn地址。

可选地,备选cdn地址中包括预设cdn地址,当对备选cdn地址进行排序时,可以将预设cdn地址一起进行排序,例如客户端可以根据备选cdn地址的网络延迟值对备选cdn地址进行排序,可以理解,此时预设cdn地址的排序较后。可以理解地,也可以将预设cdn地址排除在备选cdn地址外。

s206:根据cdn地址顺序切换预设cdn地址。

具体地,客户端根据获得的cdn地址顺序切换预设cdn地址,即将预设cdn地址切换至排序第一的备选cdn地址,将cdn地址顺序中排序第一的备选cdn地址设为预设cdn地址,客户端根据切换后的预设cdn地址进行访问。

在一具体的实施例中,在客户端通过切换后的预设cdn地址发送页面访问请求之后,返回执行步骤s201;当客户端判定更新后的预设cdn地址返回的页面信息为正常时,则步骤执行结束,进行相应的页面访问环节。当客户端判定更新后的预设cdn地址返回的页面信息为异常时,不再对备选cdn地址进行排序,直接按照前一次获取的cdn地址顺序将预设cdn地址切换为排序为第二的备选cdn地址进行访问,即将排序第二的备选cdn地址设为预设cdn地址,然后返回执行步骤s201。循环执行上述步骤,直至判断出页面信息为正常。

在一具体的实施例中,当判断所有的备选cdn地址都不可用时,客户端向原始页面地址发送页面访问请求。具体地,客户端重复执行步骤s201至s206,若判定所有的备选cdn地址都不可用时,客户端获取原始页面地址,将预设cdn地址切换为原始页面地址,客户端通过原始页面地址发送页面访问请求。

可选地,在向原始页面地址发送页面访问请求的同时,客户端重新反复执行步骤s201至s205,此时,客户端向预设cdn地址发送的是模拟页面访问请求。若判定其中一个备选cdn地址可用,则客户端该备选cdn地址设为预设cdn地址,然后将原始页面地址切换至预设cdn地址。

可选地,当从预设cdn地址返回的页面信息正常时,则按照预设cdn地址继续进行页面的访问。

在图2对应的实施例中,通过获取预设cdn地址,然后根据预设cdn地址发送页面访问请求;根据页面访问请求获取从预设cdn地址返回的页面信息,并判断返回的页面信息是否为异常;若页面信息为异常,则获取备选cdn地址,再对备选cdn地址进行排序,得到cdn地址顺序;最后根据cdn地址顺序切换cdn地址。由于cdn地址的切换是根据客户端得到的页面信息是否为异常和排序得到的cdn地址顺序来进行切换的,实现了从客户端进行cdn容灾的效果,因此可以避免现有技术中不能检测cdn服务器网络故障、本地网络异常、cdn节点被大流量攻击等等情况,扩大了cdn容灾的范围,提高了cdn容灾的效率。

在一实施例中,在步骤s203中,即判断页面信息是否为异常,如图3所示,具体可以包括:

s301:将页面信息与预置的错误代码进行匹配。

可选地,错误代码是指代码为200代号的错误信息,该错误代码可以通过预先配置得到。若返回的页面信息与错误代码相同,则表明该预设cdn地址存在网络异常、负载过大或被大流量攻击等故障,不能正常返回页面信息。

具体地,可以在客户端预置所有的错误信息代码,当获取到返回的页面信息时,客户端将返回的页面信息与预置的错误代码进行匹配。可选地,可以用正则表达式来判断返回的页面信息是否属于200等开头的错误代码。可选地,用正则表达式在返回的页面信息中查找匹配“错误代码”和“200”(或“201”等其它错误代码),当查找匹配到“错误代码”和“200”(或“201”等其它错误代码)同时存在时,例如“错误代码:200”,则客户端输出匹配成功的结果;若只查找匹配到“错误代码”或“200”(或“201”等其它错误代码)的其中一个时,或者都没有查找匹配到,则客户端输出匹配失败的结果。可选地,可以根据返回的页面信息对应的数据值的大小来决定是否进行匹配,由于错误代码比较小,因此可以设定一个数据阈值,当返回的页面信息对应的数据值小于设定的数据阈值时再进行错误代码的匹配。

s302:若页面信息与预置的错误代码匹配成功,则页面信息为异常。

具体地,若返回的页面信息与预置的错误代码匹配成功,表明预设cdn地址存在与预置的错误代码对应的故障,不能正常返回页面信息,则客户端判定页信息为异常。可选地,可以将预置的错误代码与具体的故障信息进行对应形成一个对应表。例如当预置的错误代码为a时,其对应的故障信息为cdn地址服务器网络故障;当预置的错误代码为b时,其对应的故障信息为cdn地址被大流量攻击等等。客户端根据匹配的预置的错误代码返回对应的故障信息,使用户可以获知故障的原因。进一步地,可以根据备选cdn地址形成历史故障记录,并对历史故障记录进行分析,若某备选cdn地址的某个故障出现的次数超过一定次数,客户端则发送提示消息,提示用户对备选cdn地址进行该故障的排除或对该备选cdn地址进行更换等操作。

在图3对应的实施例中,通过将页面信息与预置的错误代码进行匹配,若页面信息与预置的错误代码匹配成功,则页面信息为异常。根据预置的错误代码判断返回的页面信息是否为异常,可以为是否进行备选cdn地址进行排序和切换提供依据。同时根据预置的错误代码判断预设cdn地址是否为异常,可以快速得出结论,提高cdn地址故障的判断效率。

在一实施例中,在步骤s203中,即判断页面信息是否为异常,如图4所示,具体可以包括以下步骤:

s401:将页面信息的数据值与相应的页面资源数据值进行比较。

其中,页面信息的数据值是指传输到客户端并存储于客户端的页面信息的数据的大小,例如图片的大小或下载文件的大小。而相应的页面资源数据值是指与页面访问请求对应的页面资源的大小。可选地,相应的页面资源数据值可以由客户端根据页面资源后端的相应字段进行获取,例如在访问页面资源的图片时,可以通过页面资源的“图片大小”字段来获取到图片的数据值。

具体地,当页面访问请求发送至预设cdn地址时,客户端获取相应的页面资源数据值;然后当经过预设传输时间后,客户端获取页面信息的数据值,最后将页面信息的数据值与相应的页面资源数据值进行比较,从而判断页面信息的返回是否为异常。其中,预设传输时间可以根据实际情况进行设定,这里不做限定。

s402:若页面信息的数据值与相应的页面资源数据值的比值未达到预设阈值,则页面信息为异常。

具体地,客户端将页面信息的数据值与相应的页面资源数据值进行比较,若页面信息的数据值与相应的页面资源数据值的比值未达到预设阈值,表明预设cdn地址可能存在负载过大、被大流量攻击、cdn服务器网络异常等故障,则客户端判定页面信息为异常。其中,预设阈值可以根据实际情况进行设定,例如10%、20%或30%等。

例如,若预设阈值为20%,页面资源的图片为1m(相应的页面资源数据值),而页面信息对应的图片大小(页面信息的数据值)为100k,则页面信息的数据值与相应的页面资源数据值的比值为100/1000=10%,小于预设阈值20%,表明cdn地址存在故障,如此客户端则输出页面信息异常的结果。

在图4对应的实施例中,通过将页面信息的数据值与相应的页面资源数据值进行比较,若页面信息的数据值与相应的页面资源数据值的比值未达到预设阈值,则页面信息为异常。根据页面信息的数据值来判断返回的页面信息是否为异常,可以为后续cdn地址的排序和切换提供依据。

在一实施例中,页面信息包括md5摘要序列,其中,md5摘要序列是指由md5算法得到的散列值(hashvalue),而md5算法具体是指md5消息摘要算法(md5message-digestalgorithm),它是一种密码散列函数,可以产生出一个128位(16字节)的散列值,用于确保信息传输完整一致。在步骤s203中,即判断页面信息是否为异常,如图5所示,具体可以包括:

s501:获取与页面信息对应的md5标准摘要序列。

具体地,md5标准摘要序列是由页面访问请求对应的页面资源中预先提供的,客户端通过预设cdn地址可以获取到页面资源中的md5标准摘要序列,其与页面信息相对应。当向预设cdn地址发送页面访问请求后,客户端从预设cdn地址获取与页面信息相对应的md5标准摘要序列。

s502:当所述页面信息传输到客户端后,计算存储于客户端的页面信息的md5摘要序列,得到md5测试摘要序列。

应理解,当收到返回的页面信息时,客户端在预设存储位置生成与页面信息相对应的md5摘要文件。可选地,当页面信息经过预设传输时间后,或当cdn地址与客户端的传输窗口提示已完成时,例如当图片或文件的下载传输窗口进度为100%时,客户端认为页面信息的传输已完成;此时客户端获取存储于客户端的md5摘要文件,然后通过md5算法重新计算md5摘要文件的md5摘要序列,得到另外一个散列值,将此散列值作为md5测试摘要序列。

s503:将md5测试摘要序列与md5标准摘要序列进行比较。

具体地,当获取到md5测试摘要序列后,客户端将md5测试摘要序列与md5标准摘要序列进行比较,判断两者是否一致。可选地,可以用正则表达式来判断md5测试摘要序列与md5标准摘要序列是否匹配从而判断两者是否一致,也可以用equal公式来判定md5测试摘要序列与md5标准摘要序列是否相等来判断两者是否一致。

s504:若md5测试摘要序列不等于md5标准摘要序列,则页面信息为异常。

具体地,若md5测试摘要序列不等于md5标准摘要序列,表明返回的页面信息不完整,cdn地址存在故障,则客户端判定页面信息为异常。

在图5对应的实施例中,通过获取与页面信息对应的md5标准摘要序列;当页面信息传输到客户端后,计算存储于客户端的页面信息的md5摘要序列,得到md5测试摘要序列;接着将md5测试摘要序列与md5标准摘要序列进行比较,若md5测试摘要序列不等于md5标准摘要序列,则页面信息为异常。根据md5摘要序列来判断页面信息是否下载完整,从而判断cdn地址是否为异常,可以为cdn地址的排序和切换提供依据。

在一实施例中,在步骤s205中,即对备选cdn地址进行排序,得到cdn地址顺序,如图6所示,具体包括以下步骤:

s601:根据备选cdn地址发送第一模拟页面访问请求,获取第一模拟页面访问请求的发送时间和返回时间。

其中,第一模拟页面访问请求是由客户端根据备选cdn地址发送的模拟页面访问请求。第一模拟页面访问请求的发送时间是指从客户端发出请求到备选cdn地址接收到请求的时间;第一模拟页面访问请求的返回时间是指从客户端发出请求到客户端接收到从备选cdn地址返回的页面信息的时间。

具体地,当判断返回的页面信息为异常时,客户端根据备选cdn地址向每个备选cdn地址各发送一个第一模拟页面访问请求,然后获取每个备选cdn地址的第一模拟页面访问请求的发送时间和返回时间。其中,备选cdn地址可以包括预设cdn地址。

s602:根据第一模拟页面访问请求的发送时间和返回时间,获取第一模拟页面访问请求发送地址与备选cdn地址的第一网络距离和第一网络延迟值。

具体地,根据第一模拟页面访问请求的发送时间,客户端可以获取到第一模拟页面访问请求发送地址(客户端)与备选cdn地址的网络距离,即将网络传输速度乘以第一模拟页面访问请求的发送时间可以到相应的网络距离。另外,根据第一模拟页面访问请求的返回时间,客户端可以获取到第一模拟页面访问请求发送地址(客户端)与备选cdn地址的网络延迟值。可选地,可以将返回的时间作为网络延迟值。可以理解,若某个备选cdn地址存在故障,页面访问请求的返回时间可能为无限长,因此可以设置一个返回时间阈值,若某个备选cdn地址的页面访问请求的返回时间超出该返回时间阈值,则将该备选cdn地址的网络延迟值设为一个较大的数值,例如“999秒”。

s603:根据第一网络距离的大小或者第一网络延迟值的大小按照从小到大的顺序对备选cdn地址进行排序,得到cdn地址顺序。

具体地,客户端可以根据第一网络距离的大小按照从小到大的顺序将备选cdn地址进行排序,得到cdn地址顺序。或者,客户端根据第一网络延迟值的大小按照从小到大的顺序将备选cdn地址进行排序,得到cdn地址顺序。

在图6对应的实施例中,通过根据备选cdn地址发送第一模拟页面访问请求,获取第一模拟页面访问请求的发送时间和返回时间;然后根据第一模拟页面访问请求的发送时间和返回时间,获取第一模拟页面访问请求发送地址与备选cdn地址的第一网络距离和第一网络延迟值;最后根据第一网络距离的大小或者第一网络延迟值的大小按照从小到大的顺序对备选cdn地址进行排序,得到cdn地址顺序。根据第一模拟页面访问请求发送地址(客户端)与备选cdn地址的网络距离和网络延迟值来确定cdn地址顺序,更加符合客户端的实际使用需要,使得到的cdn地址顺序更加精准。同时,根据本实施例确定的cdn地址顺序,可以避免无法覆盖客户端本地网络异常、cdn服务器网络故障或cdn地址被大流量攻击等情况,解决cdn地址的可用性问题,提高cdn地址的容灾效率。

在一实施例中,在步骤s205中,即对备选cdn地址进行排序,得到cdn地址顺序,如图7所示,具体包括以下步骤:

s701:根据备选cdn地址发送第二模拟页面访问请求,获取第二模拟页面访问请求的发送时间和返回时间。

其中,第二模拟页面访问请求是指由cdn监控端向备选cdn地址发送的模拟页面访问请求。监控端与备选cdn地址相连接,用于监控备选cdn地址是否正常的监控终端。可选地,客户端可以使cdn监控端定时发送模拟页面访问请求,根据模拟页面访问请求返回的页面信息判断备选cdn地址是否正常,判断备选cdn地址是否出现故障。第二模拟页面访问请求的发送时间是指从cdn监控端发出请求到备选cdn地址接收到请求的时间;第二模拟页面访问请求的返回时间是指从cdn监控端发出请求到cdn监控端接收到从备选cdn地址返回的页面信息的时间。可以理解地,监控端也可以集成在客户端中。

具体地,当客户端判断返回的页面信息为异常时,使cdn监控端根据每个cdn地址各发送一个第二模拟页面访问请求,然后获取每个备选cdn地址的第一模拟页面访问请求的发送时间和返回时间。其中,备选cdn地址可以包括预设cdn地址。

s702:根据第二模拟页面访问请求的发送时间和返回时间,获取cdn监控端与备选cdn地址的第二网络距离和第二网络延迟值。

具体地,根据第二模拟页面访问请求的发送时间,客户端可以获取cdn监控端与cdn地址的第二网络距离。另外,根据第二模拟页面访问请求的返回时间,客户端可以获取cdn监控端与cdn地址的第二网络延迟值。其中,获取网络距离和网络延迟值的过程与图6对应的实施例相同,这里不再赘述。

s703:根据第二网络距离的大小按照从小到大的顺序对备选cdn地址进行排序,得到第一cdn地址顺序。

具体地,客户端根据第二网络距离的大小按照从小到大的顺序将备选cdn地址进行排序,得到第一cdn地址顺序。

s704:根据第二网络延迟值的大小按照从小到大的顺序对备选cdn地址进行排序,得到第二cdn地址顺序。

具体地,客户端根据第二网络延迟值的大小按照从小到大的顺序将备选cdn地址进行排序,得到第二cdn地址顺序。

s705:根据以下公式获取备选cdn地址的顺序值:

ci=αai+βbi;

其中,i为备选cdn地址的编号,i为正整数,i小于或等于n,ci为第i个备选cdn地址的顺序值,ai为第i个备选cdn地址的第一cdn地址顺序,bi为第i个备选cdn地址的第二cdn地址顺序,α和β分别为第一cdn地址顺序和第二cdn地址顺序的权重值。

具体地,客户端将步骤s703和步骤s704得到的第一cdn地址顺序和第二cdn地址顺序代入上述公式中,可以得到cdn地址的顺序值。可以理解,顺序值为表示顺序大小的值,可以为整数或小数。可选地,权重值可以根据需要进行具体设置,其中,权重值α和β之和为1。

可选地,可以将上述图6得到的第一网络距离和第一网络延迟值与本发明实施例的第二网络距离和第二网络延迟值一起计算,即将客户端的计算结果与监控端计算结果综合考虑。

可选地,可以结合备选cdn地址的其它指标来确定cdn地址顺序,例如备选cdn地址的稳定性等,只需确定其它指标与网络距离和网络延迟的具体权重即可。其中,备选cdn地址的稳定性可以由历史数据中备选cdn地址出现故障的次数确定。

s706:根据备选cdn地址的顺序值确定cdn地址顺序。

具体地,客户端根据得到的备选cdn地址的顺序值的大小按照从小到大的顺序进行排序,得到cdn地址顺序。

在图7对应的实施例中,根据备选cdn地址发送第二模拟页面访问请求,获取第二模拟页面访问请求的发送时间和返回时间;根据第二模拟页面访问请求发送时间和返回时间,获取cdn监控端与备选cdn地址的第二网络距离和第二网络延迟值;然后根据第二网络距离的大小按照从小到大的顺序对备选cdn地址进行排序,得到第一cdn地址顺序,根据第二网络延迟值的大小按照从小到大的顺序对备选cdn地址进行排序,得到第二地址顺序;接着根据公式获取备选cdn地址的顺序值;最后根据备选cdn地址的顺序值确定cdn地址顺序。从cdn监控端发送模拟页面访问请求来确定备选cdn地址的顺序,可以使备选cdn地址排序的过程不占用客户端的计算机资源,提高客户端的计算机系统性能。进一步地,本发明实施例的公式可以结合客户端得到的结果对备选cdn地址进行排序,使排序的结果更加符合实际情况,提高备选cdn地址排序的有效性,使客户端根据获得的cdn地址顺序切换时得到一个稳定的cdn切换的地址,解决cdn地址的可用性问题,提高了cdn的容灾效率。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

在一实施例中,提供一种cdn服务切换装置,该cdn服务切换装置与上述实施例中cdn服务切换方法一一对应。如图8所示,该cdn服务切换装置包括预设地址获取模块801、页面信息获取模块802、页面信息判断模块803、备选地址获取模块804、地址顺序获取模块805和预设地址切换模块806。各功能模块详细说明如下:

预设地址获取模块801,用于获取预设cdn地址,根据预设cdn地址发送页面访问请求。

页面信息获取模块802,用于根据页面访问请求获取从预设cdn地址返回的页面信息。

页面信息判断模块803,用于判断页面信息是否为异常。

备选地址获取模块804,用于若页面信息为异常,则获取备选cdn地址,其中,备选cdn地址为n个,n为正整数。

地址顺序获取模块805,用于对n个备选cdn地址进行排序,得到cdn地址顺序。

预设地址切换模块806,用于根据cdn地址顺序切换预设cdn地址。

可选地,页面信息判断模块803包括代码匹配单元和第一结果输出单元。

代码匹配单元,用于将页面信息与预置的错误代码进行匹配。

第一结果输出单元,用于若页面信息与预置的错误代码匹配成功,则页面信息为异常。

可选地,页面信息判断模块803包括数据值比较单元和第二结果输出单元。

数据值比较单元,用于将页面信息的数据值与相应的页面资源数据值进行比较。

第二结果输出单元,用于若页面信息的数据值与相应的页面资源数据值的比值未达到预设阈值,则页面信息为异常。

可选地,页面信息包括md5摘要序列,页面信息判断模块803包括标准序列获取单元、测试序列获取单元、序列比较单元和第三结果输出单元。

标准序列获取单元,用于获取与页面信息对应的md5标准摘要序列。

测试序列获取单元,用于当页面信息传输到客户端后,计算存储于客户端的页面信息的md5摘要序列,得到md5测试摘要序列。

序列比较单元,用于将md5测试摘要序列与md5标准摘要序列进行比较。

第三结果输出单元,用于若md5测试摘要序列不等于md5标准摘要序列,则页面信息为异常。

进一步地,如图9所示,地址顺序获取模块805包括第一时间获取单元901、第一指标获取单元902和第一地址排序单元903。

第一时间获取单元901,用于根据备选cdn地址发送第一模拟页面访问请求,获取第一模拟页面访问请求的发送时间和返回时间。

第一指标获取单元902,用于根据第一模拟页面访问请求的发送时间和返回时间,获取第一模拟页面访问请求发送地址与备选cdn地址的第一网络距离和第一网络延迟值。

第一地址排序单元903,用于根据第一网络距离的大小或者第一网络延迟值的大小按照从小到大的顺序对备选cdn地址进行排序,得到cdn地址顺序。

可选地,地址顺序获取模块805包括第二时间获取单元、第二指标获取单元、第三地址排序单元、第四地址排序单元、顺序值获取单元、地址顺序确定单元。

第二时间获取单元,用于根据备选cdn地址发送第二模拟页面访问请求,获取第二模拟页面访问请求的发送时间和返回时间。

第二指标获取单元,用于根据第二模拟页面访问请求的发送时间和返回时间,获取cdn监控端与备选cdn地址的第二网络距离和第二网络延迟值。

第三地址排序单元,用于根据第二网络距离的大小按照从小到大的顺序对备选cdn地址进行排序,得到第一cdn地址顺序。

第四地址排序单元,用于根据第二网络延迟值的大小按照从小到大的顺序对备选cdn地址进行排序,得到第二cdn地址顺序。

顺序值获取单元,用于根据以下公式获取备选cdn地址的顺序值:

ci=αai+βbi;

其中,i为备选cdn地址的编号,i为正整数,i小于或等于n,ci为第i个备选cdn地址的顺序值,ai为第i个备选cdn地址的第一cdn地址顺序,bi为第i个备选cdn地址的第二cdn地址顺序,α和β分别为第一cdn地址顺序和第二cdn地址顺序的权重值。

地址顺序确定单元,用于根据备选cdn地址的顺序值确定cdn地址顺序。

关于cdn服务切换装置的具体限定可以参见上文中对于cdn服务切换方法的限定,在此不再赘述。上述cdn服务切换装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图10所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部服务器通过网络连接通信。该计算机程序被处理器执行时以实现一种cdn服务切换方法。

在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:

获取预设cdn地址,根据预设cdn地址发送页面访问请求;

根据页面访问请求获取从预设cdn地址返回的页面信息;

判断页面信息是否为异常;

若页面信息为异常,则获取备选cdn地址,其中,备选cdn地址为n个,n为正整数;

对n个备选cdn地址进行排序,得到cdn地址顺序;

根据cdn地址顺序切换预设cdn地址。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

获取预设cdn地址,根据预设cdn地址发送页面访问请求;

根据页面访问请求获取从预设cdn地址返回的页面信息;

判断页面信息是否为异常;

若页面信息为异常,则获取备选cdn地址,其中,备选cdn地址为n个,n为正整数;

对n个备选cdn地址进行排序,得到cdn地址顺序;

根据cdn地址顺序切换预设cdn地址。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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)等。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。

以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

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