一种网站容灾方法、装置及系统与流程

文档序号:11830277阅读:156来源:国知局
一种网站容灾方法、装置及系统与流程

本申请涉及互联网领域,尤其涉及一种网站容灾方法、装置及系统。



背景技术:

动态页面:是在服务器端运行的程序、网页、组件等,它们会经过服务器的程序运算及读取后台数据库等操作,能随不同客户、不同时间,返回不同内容的网页。

由于网站中许多服务都是由动态页面提供的,因此,网站经常会在短时间内遇到大量的动态页面访问。由于动态页面需要进行大量的运算及数据库查询等操作,大量的动态页面访问会使网站计算压力过大,甚至发生网站完全无法访问的灾难性后果。



技术实现要素:

有鉴于此,本申请的目的在于提供一种网站容灾方法、装置及系统,以实现降低网站压力、提高网站服务的可用性的目的。

在本申请实施例的第一个方面中,提供了一种应用于网站服务器侧的网站容灾方法。例如,所述方法可以包括:建立动态页面的静态备份,检测所述动态页面是否可被访问,响应于接收到对所述动态页面的页面请求,如果所述动态页面不可被访问,以所述动态页面对应的静态备份代替所述动态页面反馈给请求所述动态页面的页面请求侧。

在本申请实施例的第二个方面中,提供了一种配置于网站服务器侧的网站容灾装置。例如,所述装置可以包括:备份单元,可以用于建立动态页面的静态备份。检测单元,可以用于检测所述动态页面是否可被访问。页面反馈单元,可以用于响应于接收到对所述动态页面的页面请求,如果所述动态页面不可被访问,以所述动态页面对应的静态备份代替所述动态页面反馈给请求所述动态页面的页面请求侧。

在本申请实施例的第三个方面中,提供了一种网站容灾系统。例如,所述系统可以包括:nginx代理服务器,可以用于建立动态页面的静态备份, 检测所述动态页面是否可被访问,响应于接收到对所述动态页面的页面请求,如果所述动态页面不可被访问,以所述动态页面对应的静态备份代替所述动态页面反馈给请求所述动态页面的页面请求侧。动态页面服务器,可以用于生成动态页面。

本申请具有如下有益效果:

应用本申请实施例提供的方法的网站服务器侧建立了动态页面的静态备份,检测所述动态页面是否可被访问,在接收到对所述动态页面的页面请求时,如果所述动态页面不可被访问,以所述动态页面对应的静态备份代替所述动态页面反馈给请求所述动态页面的页面请求侧,因此,在动态页面不可被访问时,通过对应的静态备份代替所述动态页面为用户提供服务,避免了大量动态页面的运算所带来的网站压力过大的问题,提高了网站服务的可用性。

附图说明

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

图1为本申请实施例提供的网站容灾方法流程示意图;

图2为本申请实施例提供的nginx代理服务器与动态页面服务器之间的信令交互示意图;

图3为本申请实施例提供的网站容灾装置结构示意图;

图4为本申请实施例提供的网站容灾系统结构示意图。

具体实施方式

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

为了使本申请实施例更加易于理解,首先对本申请实施例提供的方法的应用场景进行示意性说明。例如,一些可能的实施方式中,考虑到nginx代理服务器(一种Web服务器/反向代理服务器)具有占用内存少,并发能力强,适于通过与后端协作响应用户侧的请求的特点,本申请实施例提供的方法可以应用于网站服务器侧的nginx代理服务器。例如,可以将用于实现本申请实施例提供的方法的代码加载到nginx的配置文件nginx.conf中。相应地,所述网站服务器侧还可以包括动态页面服务器,用于生成动态页面。

下面,结合图1所示的网站容灾方法流程示意图,对本申请实施例提供的网站容灾方法进行详细说明。如图1所示,该方法可以包括:

S110、建立动态页面的静态备份。

例如,可以以主动的方式,自发建立所述动态页面的静态备份。再例如,可以以被动的方式,响应于接收到对所述动态页面的页面请求,建立所述动态页面的静态备份。

需要说明的是,以上提到的主动及被动建立动态页面的静态备份的实施方式可以择一实施,也可以共同实施,本申请对此并不进行限制。例如,可以针对数据量少但访问量大的部分关键页面,如,网站的首页、活动页等,采取主动的方式。而对于数据量大但访问量少的普通页面,如,商品详情页,可以采取被动的方式。

一些可能的实施方式中,本申请实施例可以针对具有第一访问量的动态页面,自发建立所述动态页面的静态备份,其中,所述第一访问量大于或者等于预设的访问量。例如,可以定时自发向动态页面服务器请求所述动态页面,接收所述动态页面服务器反馈的所述动态页面,将所述动态页面备份为静态页面。

一些可能的实施方式中,本申请实施例可以针对具有第二访问量的动态页面,响应于接收到对所述动态页面的页面请求,建立所述动态页面的静态备份;其中,所述第二访问量小于或者等于预设的访问量。例如,可以响应于接收到对所述动态页面的页面请求,向动态页面服务器请求所述动态页面,接收所述动态页面服务器反馈的所述动态页面,将所述动态页面备份为静态页面。

需要说明的是,将动态页面备份为静态页面的具体实现方式不限。例如,可以根据一定规则将动态页面生成到相应的静态页面中,其中,规则的具体内容可以根据实际需要设置,本申请对此并不进行限制。

S120、检测所述动态页面是否可被访问。

例如,可以定时检测是否出现以下异常状态中的任一种或多种,如果出现,则判定所述动态页面不可被访问。其中,所述异常状态包括:

向动态页面服务器请求所述动态页面后,等待所述动态页面的时间超过预设超时时间,即返回超时异常。

向动态页面服务器请求所述动态页面后,接收到的http响应码未在正常码值范围内。例如,http响应码小于200或大于等于300,即非20X响应码异常。

向动态页面服务器请求所述动态页面后,接收到的页面内容中出现特定异常字符。例如,页面内容包含exception。

所述动态页面对应的后端应用出现内存溢出错误。

动态页面服务器出现进程异常退出或者无法提供服务。例如,用于生成动态页面的动态页面服务器可以为动态页面服务器jetty,当jetty出现进程异常退出或者无法提供服务,则认为jetty宕机。

所述动态页面对应的服务接口不可用。例如,用于提供动态页面的相关数据的服务化接口出现响应超时、抛异常、无法访问等异常。

动态页面服务器的数据库连接池耗尽。例如,由于访问量大或SQL性能问题等引起的DB连接池耗尽。

需要说明的是,以上所列仅为本申请实施例一些可能的异常状态。在实际应用中,可以根据实际实施确定需要检测的异常状态。本申请对此并不进行限制。

一些可能的实施方式中,以上实施例提到的特定异常字符具体可以在容灾策略配置信息中指定。可以理解的是,所述容灾策略配置信息可以配置于容灾策略配置后台。其中,所述容灾策略配置信息,可以用于描述遭遇灾难时能保证信息系统能正常运行、实现业务可连续性的容灾应对措施。所述容灾策略配置后台,可以用于根据容灾策略配置信息采取相应的容灾应对措施 来保证问题出现时自动完成容灾应对。一些可能的实施方式中,容灾策略配置后台所配置的容灾策略配置信息可以保存在与之相连的数据库中。应用本申请实施例的服务器可以定时从容灾策略配置后台获取更新的容灾策略配置信息并加载到内存。当需要检测页面内容中是否出现特定异常字符时,从内存读取出所述容灾策略配置信息中指定的所述特定异常字符。

在以上提到的实施方式中,由于采用定时的方式完成了容灾策略信息的动态更新加载,从而可以对指定的特定异常字符自动更新,避免了在程序代码中写入特定异常字符而带来的需要修改代码并重启服务器的问题,降低了维护成本。

S130、响应于接收到对所述动态页面的页面请求,如果所述动态页面不可被访问,以所述动态页面对应的静态备份代替所述动态页面反馈给请求所述动态页面的页面请求侧。

一些可能的实施方式中,在接收到对所述动态页面的页面请求时,如果所述动态页面可被访问,则可以直接获取所述动态页面,将所述动态页面反馈给请求所述动态页面的页面请求侧。

一些可能的实施方式中,为了尽量给用户提供正常的动态页面访问服务,在以所述动态页面对应的静态备份代替所述动态页面反馈给请求所述动态页面的页面请求侧之后,还可以继续检测所述动态页面是否可被访问,如果所述动态页面可被访问,获取所述动态页面,将所述动态页面反馈给请求所述动态页面的页面请求侧,从而可以尽快为用户恢复正常的动态页面的访问服务。

一些可能的实施方式中,为了更新所述动态页面的备份,nginx代理服务器还可以将该步骤S130所接收的所述动态页面备份为静态页面。可以理解的是,此时所作的备份即为以上实施例所述的被动建立动态页面的静态备份。

可见,由于本申请实施例可以在网站正常提供动态页面服务时,主动或被动抓取动态页面,并根据一定规则将动态页面生成到相应的静态页面中,从而在系统资源不足等原因导致的动态页面不可被访问时,可以自动切换静 态页面来响应页面请求侧的页面请求,避免网站由于压力过大出现完全无法访问的灾难性后果。

为了使本申请实施例更加易于理解,下面结合图2所示的nginx代理服务器与动态页面服务器之间的信令交互示意图,对本申请实施例应用于nginx代理服务器的一些可能实施方式进行详细说明。如图2所示,该实施例可以包括:

S210、nginx代理服务器定时主动或响应于用户侧的页面请求被动向动态页面服务器请求动态页面。

S211、动态页面服务器响应于nginx代理服务器的请求,生成动态页面并向nginx代理服务器反馈动态页面。

S212、nginx代理服务器接收所述动态页面服务器反馈的所述动态页面,将所述动态页面备份为静态页面。

S220、nginx代理服务器定时检测所述动态页面是否出现异常状态,并相应记录检测到的异常状态。

S230、nginx代理服务器接收用户侧对所述动态页面的页面请求。

S231、nginx代理服务器在接收到所述页面请求时,如果根据所记录的异常状态判定所述动态页面不可被访问,读取所述动态页面对应的静态页面,以所述动态页面对应的静态备份代替所述动态页面反馈给请求所述动态页面的用户侧。一些可能的实施方式中,nginx代理服务器在以所述动态页面对应的静态备份代替所述动态页面反馈给请求所述动态页面的用户侧之后,还可以继续检测所述动态页面是否可被访问,如果所述动态页面可被访问,则可以获取所述动态页面,将所述动态页面反馈给请求所述动态页面的页面请求侧。

S232、nginx代理服务器在接收到所述页面请求时,如果根据所记录的异常状态判定所述动态页面可被访问,向动态页面服务器请求动态页面。

S233、动态页面服务器响应于nginx代理服务器的请求,生成动态页面并向nginx代理服务器反馈动态页面。

S234、nginx代理服务器接收动态页面服务器反馈的所述动态页面,并 将所述动态页面反馈给请求所述动态页面的用户侧。一些可能的实施方式中,为了更新所述动态页面的备份,nginx代理服务器还可以将此处所接收的所述动态页面备份为静态页面。

一些可能的实施方式中,应用该实施例的nginx代理服务器可以通过协程(非主进程)的方式执行动态页面的主动/被动备份、定时检测、反馈动态页面/动态页面的静态备份等各步骤,从而使网站以更高效率提供服务。

下面,结合图3所示的网站容灾装置结构示意图,对本申请实施例提供的网站容灾装置进行详细说明。如图3所示,该装置可以包括:

备份单元310,可以用于建立动态页面的静态备份。检测单元320,可以用于检测所述动态页面是否可被访问。页面反馈单元330,可以用于响应于接收到对所述动态页面的页面请求,如果所述动态页面不可被访问,以所述动态页面对应的静态备份代替所述动态页面反馈给请求所述动态页面的页面请求侧。

一些可能的实施方式中,所述备份单元310,可以用于自发建立所述动态页面的静态备份。

一些可能的实施方式中,所述备份单元310,可以用于针对具有第一访问量的动态页面,自发建立所述动态页面的静态备份,其中,所述第一访问量大于或者等于预设的访问量。例如,所述备份单元310,可以用于定时自发向动态页面服务器请求所述动态页面,接收所述动态页面服务器反馈的所述动态页面,将所述动态页面备份为静态页面。

一些可能的实施方式中,所述备份单元310,可以用于响应于接收到对所述动态页面的页面请求,建立所述动态页面的静态备份。

一些可能的实施方式中,所述备份单元310,可以用于针对具有第二访问量的动态页面,响应于接收到对所述动态页面的页面请求,建立所述动态页面的静态备份;其中,所述第二访问量小于或者等于预设的访问量。

一些可能的实施方式中,本申请实施例提供的装置的检测单元320,还可以用于在页面反馈单元330以所述动态页面对应的静态备份代替所述动态页面反馈给请求所述动态页面的页面请求侧之后,继续检测所述动态页面是 否可被访问。且本申请实施例提供的装置还可以包括,页面恢复单元340,可以用于如果所述检测单元320继续检测后确定动态页面可被访问,获取所述动态页面,将所述动态页面反馈给请求所述动态页面的页面请求侧。

一些可能的实施方式中,所述检测单元320,可以用于定时检测是否出现以下异常状态中的任一种或多种,如果出现,则判定所述动态页面不可被访问,所述异常状态包括:向动态页面服务器请求所述动态页面后,等待所述动态页面的时间超过预设超时时间;向动态页面服务器请求所述动态页面后,接收到的http响应码未在正常码值范围内;向动态页面服务器请求所述动态页面后,接收到的页面内容中出现特定异常字符;所述动态页面对应的后端应用出现内存溢出错误;动态页面服务器出现进程异常退出或者无法提供服务;所述动态页面对应的服务接口不可用;动态页面服务器的数据库连接池耗尽。

一些可能的实施方式中,所述特定异常字符具体在容灾策略配置信息中指定。且,本申请实施例提供的装置还可以包括:容灾策略更新单元350,可以用于定时从容灾策略配置后台获取更新的容灾策略配置信息并加载到内存,当需要检测页面内容中是否出现特定异常字符时,从内存读取出所述容灾策略配置信息中指定的所述特定异常字符。

一些可能的实施方式中,本申请实施例提供的装置可以配置于网站服务器侧的nginx代理服务器。其中,所述网站服务器侧还可以包括:动态页面服务器,用于生成动态页面。

由于配置本申请实施例提供的装置的网站服务器侧建立了动态页面的静态备份,检测所述动态页面是否可被访问,在接收到对所述动态页面的页面请求时,如果所述动态页面不可被访问,以所述动态页面对应的静态备份代替所述动态页面反馈给请求所述动态页面的页面请求侧,避免了大量动态页面的运算所带来的网站压力过大的问题,提高了网站服务的可用性。

需要注意的是,本申请实施例所述页面恢复单元340、容灾策略更新单元350在图3中以虚线绘制,以表示这些单元不是本申请实施例提供的网站容灾装置的必要单元。

下面,再结合图4所示的配置于网站服务器侧的网站容灾系统结构示意图,对本申请实施例提供的网站容灾系统进行详细说明。如图4所示,该系统可以包括:

nginx代理服务器410,可以用于建立动态页面的静态备份,检测所述动态页面是否可被访问,响应于接收到对所述动态页面的页面请求,如果所述动态页面不可被访问,以所述动态页面对应的静态备份代替所述动态页面反馈给请求所述动态页面的页面请求侧。动态页面服务器420,可以用于生成动态页面。

例如,一些可能的实施方式中,如图4所示,所述动态页面服务器420可以为嵌入式jetty Web 420。可以理解的是,为了在动态页面中提供相关服务,嵌入式jetty Web 420还需要与Service服务化应用侧430相互通信,以使所述Service服务化应用侧430可以用于为jetty Web生成动态页面提供相关服务的计算等支持。

需要注意的是,所述Service服务化应用侧430在图4中以虚线绘制,以表示该Service服务化应用侧430不是本申请实施例提供的网站容灾装置的必要组成部分。

由于本申请实施例提供的网站容灾系统的nginx代理服务器410建立了动态页面的静态备份,检测所述动态页面是否可被访问,在接收到对所述动态页面的页面请求时,如果所述动态页面不可被访问,以所述动态页面对应的静态备份代替所述动态页面反馈给请求所述动态页面的页面请求侧,避免了大量动态页面的运算所带来的网站压力过大的问题,提高了网站服务的可用性。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请实施例时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如 ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本申请实施例可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。

本申请实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

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

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