一种服务器故障容错系统及方法

文档序号:7886449阅读:253来源:国知局
专利名称:一种服务器故障容错系统及方法
技术领域
本发明属于计算机及网络技术领域,涉及一种故障容错系统,尤其涉及一种服务器故障容错系统;同时,本发明还涉及一种服务器故障容错方法。
背景技术
基于Internet技术的服务在各行各业日益广泛的应用和推广,对某些对高可靠有较高要求的网络应用服务来说,短暂的中断会给服务提供商/运营商带来巨大的经济和信誉上的损失,服务器容错的重要性越来越突出。在典型的服务器_客户机模式下,服务器是由DNS域名确定其位置的,客户端应用系统在访问服务器之前必须通过使用DNS服务对其域名进行解析,从而得到该服务器的IP 地址。在客户机和服务器建立连接后,就可以进行信息交换;假如这一服务器发生故障,客户机应用系统有两种可能的选择1.中断通信;2.选择另一个服务器继续。在这种模式下,客户端应用系统必须通过以下方式检测出服务器是否中断(1)服务器没有响应(time out);(2)服务器回应错误信息;(3)收到传输层错误信息。为了让客户应用程序能够在检测出服务器发生故障后,有选择其它服务器的可能,必须在其应用程序中明确提供一个服务器列表,指明第一服务器、第二服务器、第三服
务器........等等。当第一个服务器中断,则尝试和第二个服务器建立连接,再则第三服务
器,依此类推。这一接管过程是由用户程序的干涉而实现的,有较大局限性,主要包括一、服务器列表是静态的,必须有用户特别指明;二、替代服务器的选择有着较大的盲目性,无法保证所选服务器是否正常及有效, 也不能因服务器的负载情况而灵活选择;三、接管是通过应用程序而实现,缺乏透明性;四、被动的中断识别方式;五、为满足可靠性的保证,应用程序开发量较大。

发明内容
本发明所要解决的技术问题是提供一种服务器故障容错系统,可提高服务器的容错性能,保证系统正常运行。此外,本发明还提供一种服务器故障容错方法,可提高服务器的容错性能,保证系统正常运行。为解决上述技术问题,本发明采用如下技术方案一种服务器故障容错系统,所述系统包括服务器池,由一组具有相同功能的、并被统一管理起来的服务器组成;每个服务器池均使用唯一的域名进行标识;客户端,用以访问服务器池;池化器,用以负责将多台服务器组成一个虚拟的服务器池,并对各台服务器的运行状态进行实时监控和采集;一旦发现某台服务器发生故障,立刻将该台故障服务器从服务器池中去掉,以保证服务器池中的服务器都是正常运行的,同时以组播形式发送错误报告通知所述系统中其他各组成部分(包括客户端、服务器池、其他池化器);另外,池化器还提供服务器池的域名解析功能,使得用户方便地访问服务器;多台池化器之间具备实时信息同步功能,以保证各池化器的信息一致性,可一方面保障池化器本身的容错需求,另一方面实现多台池化器分担服务器池的管理负载量;域名解析模块,用以客户端在访问服务器池之前,做域名解析得到某服务器的IP 地址,并直接与该服务器建立连接;状态共享模块,用以实现服务器状态的共享。在客户端与服务器之间做数据交换过程中,服务器在一定的间隔生成一个Cookie,并将该服务器的当前的运行状态记录在 Cookie内,然后发送给连接中的客户端,客户端收到Cookie后,将其保存在客户端内;中断处理模块,用以在客户端连接的服务器发生中断时,客户端通过池化器的域名解析模块对域名进行解析而得到另一个正常运行的服务器,在与新服务器建立起连接后,客户端发送所存储的Cookie给新服务器,新服务器可用收到的Cookie来将自己的状态恢复到旧服务器故障前的运行状态;中断的服务就被新服务器不间断地接管;池化器信息同步模块,用以在多台池化器之间实时数据同步,以保证池化器本身的容错和并行提供池化功能。一种服务器故障容错系统,所述系统包括服务器池,包括若干服务器;客户端,用以访问服务器池;池化器,用以管理多台服务器组成的服务器池,并对各台服务器的运行状态进行实时监控和采集;若发现某台服务器发生故障,立刻将该台故障服务器从服务器池中去掉, 以保证服务器池中的服务器都是正常运行的,同时以组播形式发送错误报告通知所诉系统中其他各组成部分(包括客户端、服务器池、其他池化器),以便其及时知晓哪台或哪些服务器发生了故障;若部分客户端由于服务器的故障而导致与该服务器的连接中断,池化器将该部分客户端重新分配给其他正常运行的服务器。作为本发明的一种优选方案,所述系统包括域名解析模块,用以客户端在访问服务器池之前,做域名解析得到某服务器的IP地址,并直接与服务器建立连接。该模块功能由池化器提供。作为本发明的一种优选方案,所述系统进一步包括状态共享模块,用以实现服务器状态的共享。在客户端与服务器之间做数据交换过程中,服务器在一定的间隔生成一个 Cookie,将该服务器的当前的运行状态记录在Cookie内,然后发送给连接中的客户端,客户端收到Cookie后,并将其保存在客户端内。作为本发明的一种优选方案,所述系统进一步包括中断处理模块,用以在客户端连接的服务器发生中断时,客户端通过池化器的域名解析模块对域名进行解析而得到另一个正常运行的服务器,在与新服务器建立起连接后,客户端发送所存储的Cookie给新服务器,新服务器可用收到的Cookie来将自己的状态恢复到旧服务器故障前的运行状态冲断的服务就被新服务器不间断地接管。作为本发明的一种优选方案,所述系统中池化器还用以获取各台服务器的资源使用状况,并根据资源使用状态动态地调整和分配服务器,将使用负荷较低的服务器优先分配给客户端。作为本发明的一种优选方案,所述系统中池化器还具有在多台池化器之间实时信息同步的功能,不同的池化器可以对不同的服务器池进行管理,客户端也可以使用不同的池化器完成域名解析功能,由于各池化器的实时信息同步功能,保证了信息一致性,从而确保了池化器能共同分担监控管理服务器池和域名解析的工作量,同时提供了池化器本身的容错特性。一种服务器故障容错方法,其特征在于池化器管理多台服务器组成的服务器池,并对各台服务器的运行状态进行实时监控和采集;若发现某台服务器发生故障,立刻将该台故障服务器从服务器池中去掉,以保证服务器池中的服务器都是正常运行的,同时以组播形式发送错误报告通知所述系统中其他各组成部分(包括客户端、服务器池、其他池化器);若部分客户端由于所述服务器故障而导致的与该服务器的连接中断,池化器将该部分客户端分配给其他正常运行的服务器。作为本发明的一种优选方案,所述方法具体包括如下步骤客户端在访问服务器池之前,通过池化器的域名解析模块做域名解析得到某服务器的IP地址,并直接与该服务器建立连接;在客户端与服务器之间做数据交换过程中,服务器在一定的间隔生成一个 Cookie,并将该服务器的当前的运行状态记录在该Cookie内,然后发送给连接中的客户端,客户端收到Cookie后,将其保存在客户端内,并仅保存最后接收到的Cookie ;在客户端连接的服务器发生中断时,客户端通过池化器的域名解析模块对域名进行解析而得到另一个正常运行的服务器,在与新服务器建立起连接后,客户端发送所存储的Cookie给新服务器,Cookie里存储的是旧服务器故障前的运行状态,新服务器就可以用收到的Cookie来将自己的状态恢复到旧服务器故障前的运行状态;中断的服务就被新服务器不间断地接管。作为本发明的一种优选方案,所述方法还包括如下步骤池化器获取各台服务器的资源使用状况,并根据资源使用状态动态地调整和分配服务器,始终优先将使用负荷较低的服务器分配给客户端。作为本发明的一种优选方案,所述系统中池化器还具有在多台池化器之间实时信息同步的功能,不同的池化器可以对不同的服务器池进行管理,客户端也可以使用不同的池化器完成域名解析功能,由于各池化器的实时信息同步功能,保证了信息一致性,从而确保了池化器能共同分担监控管理服务器池和域名解析的工作量,同时提供了池化器本身的容错特性。本发明的有益效果在于本发明提出的服务器故障容错系统及方法,可提高服务器的容错性能,保证系统正常运行。(1)利用本发明容错方法将使得故障识别更迅速除去传统的3种识别方式外(参见背景技术的介绍),本发明增加池化器对服务器的主动实时监控和错误报告机制可以更快的主动检测出中断的服务器或是因超负荷而不能及时响应的服务器。(2)接管服务器选择的有目的性通过池化器的解析功能,总是正常运行的服务器被选择。(3)切换及接管过程实现自动化、透明化无需用户程序的干涉。(4)系统可扩展性服务器的数量可随时增加及减少,并且对服务器的位置没有限制。重要的是这一操作不会给服务的连续提供造成任何影响。(5)无缝故障恢复通过Cookie实现服务器运行状态的共享,当服务器发生故障后,Cookie为接管服务器提供了一种恢复到故障前的状态的途径,从而实现故障的平滑接管。(6)形成了网络机制对用户应用程序完全透明,可以最大限度地简化应用程序的开发和维护,同时又能满足用户应用系统最大的对可靠性的要求。


图1为本发明服务器故障容错系统的组成示意图。图2为本发明服务器故障容错方法的流程图。
具体实施例方式下面结合附图详细说明本发明的优选实施例。实施例一请参阅图1,本发明揭示了一种服务器故障容错系统,所述系统包括服务器池、 若干客户端、一个或多个池化器。服务器池由一组具有相同功能的、并被统一管理起来的服务器组成;每个服务器池均使用唯一的域名进行标识。客户端,用以访问服务器池。池化器,可以是一款硬件设备,用以负责将多台服务器组成一个虚拟的服务器池, 并对各台服务器的运行状态进行实时监控和采集。一旦发现某台服务器发生故障,立刻将该台故障服务器从服务器池中去掉,以保证服务器池中的服务器都是正常运行的,同时以组播形式发送错误报告通知所述系统中其他各组成部分(包括客户端、服务器池、其他池化器);此外,池化器还可以获取各台服务器的资源使用状况,并根据资源使用状态动态地调整和分配服务器。始终优先分配使用负荷较低的正常运行的服务器给客户端;池化器还提供服务器池的域名解析功能,使得用户方便地访问服务器。具体地,本实施例中,所述系统还包括域名解析模块、状态共享模块、中断处理模块。域名解析模块用以客户端在访问服务器池之前,做域名解析得到某服务器的IP 地址,并直接与该服务器建立连接。该模块功能可由池化器提供。状态共享模块用以实现服务器状态的共享。客户端与服务器之间做数据交换过程中,服务器在一定的间隔生成一个Cookie,并将该服务器的当前的运行状态记录在Cookie 内,然后发送给连接中的客户端,客户端收到Cookie后,将其保存在客户端内。
中断处理模块用以在客户端连接的服务器发生中断时,客户端通过池化器的域名解析模块对域名进行解析而得到另一个正常运行的服务器,在与新服务器建立起连接后, 客户端发送所存储的Cookie给新服务器,新服务器可用收到的Cookie来将自己的状态恢复到旧服务器故障前的运行状态;中断的服务就被新服务器不间断地接管。此外,所述系统还可以包括池化器信息同步模块,用以在多台池化器之间实时数据同步,以保证池化器本身的容错和并行提供池化功能。所述池化器具有在多台池化器之间实时信息同步的功能,不同的池化器可以对不同的服务器池进行管理,客户端也可以使用不同的池化器完成域名解析功能,由于各池化器的实时信息同步功能,保证了信息一致性,从而确保了池化器能共同分担监控管理服务器池和域名解析的工作量,同时提供了池化器本身的容错特性。以上介绍了本发明服务器故障容错系统的组成,本发明在揭示上述服务器故障容错系统的同时,还揭示一种服务器故障容错方法多台池化器之间通过实时信息同步,保持各池化器的信息一致性;池化器管理多台服务器组成的服务器池,并对各台服务器的运行状态进行实时监控和采集;若发现某台服务器发生故障,立刻将该台故障服务器从服务器池中去掉,以保证服务器池中的服务器都是正常运行的,同时以组播形式发送错误报告通知所述系统中其他各组成部分(包括客户端、服务器池、其他池化器);若部分客户端由于服务器故障而与该服务器的连接中断,池化器将该部分客户端分配给其他正常运行的服务
ο具体地,所述方法具体包括如下步骤信息同步步骤多台池化器之间通过实时信息同步,保持各池化器的信息一致性;连接步骤客户端在访问服务器池之前,通过池化器的域名解析模块做域名解析得到某服务器的IP地址,并直接与该服务器建立连接;数据交换步骤在客户端与服务器之间做数据交换过程中,服务器在一定的间隔生成一个Cookie,并将该服务器的当前的运行状态记录在该Cookie内,然后发送给连接中的客户端,客户端收到Cookie后,将其保存在客户端内,并始终保存最后一次收到的 Cookie ;中断处理步骤在客户端连接的服务器发生中断时,客户端通过池化器的域名解析模块对域名进行解析而得到另一个正常运行的服务器,在与新服务器建立起连接后,客户端发送所存储的Cookie给新服务器,新服务器可用收到的Cookie来将自己的状态恢复到旧服务器故障前的运行状态;中断的服务就被新服务器不间断地接管。此外,所述方法还可以包括如下步骤池化器获取各台服务器的资源使用状况,并根据资源使用状态动态地调整和分配服务器给客户端;如优先将使用负荷较低服务器分配客户端。请参阅图2,图2中服务器1和用户在交换数据中,通过发送Cookie给客户端的方式而将自己的状态保存在客户端系统中,当服务器1发生故障的时候,用户识别到连接中断,则迅速和服务器2建立起新的连接,并将服务器1留下的Cookie发给服务器2,Cookie 中保留的是服务器1故障前的状态,服务器2用收到的Cookie来重置自己的状态至服务器 1故障前的状态,中断的交易就由服务器2继续进行,而从实现了故障的平滑接管。
综上所述,本发明提出的服务器故障容错系统及方法,可提高服务器的容错性能, 保证系统正常运行。本发明可以通过池化器进行实时的主动监控和系统资源采集,掌握各台服务器的资源使用情况及运行状态,并根据服务器的运行状况做相应调整;如可以关闭一些故障服务器,关闭后可以由其他正常服务器做不间断接管;还可以根据各个服务器的资源使用状态动态地调整各个服务器连接的客户端。此外,本发明采用Cookie机制实现服务器状态共享,可为接管服务器提供状态恢复的方法,从而可以实现故障的平滑接管,即 接管服务器从故障服务器中断处继续为用户提供服务。这里本发明的描述和应用是说明性的,并非想将本发明的范围限制在上述实施例中。这里所披露的实施例的变形和改变是可能的,对于那些本领域的普通技术人员来说实施例的替换和等效的各种部件是公知的。本领域技术人员应该清楚的是,在不脱离本发明的精神或本质特征的情况下,本发明可以以其它形式、结构、布置、比例,以及用其它组件、 材料和部件来实现。在不脱离本发明范围和精神的情况下,可以对这里所披露的实施例进行其它变形和改变。
权利要求
1.一种服务器故障容错系统,其特征在于,所述系统包括服务器池,由一组具有相同功能的、并被统一管理起来的服务器组成;每个服务器池均使用唯一的域名进行标识;客户端,用以访问服务器池;池化器,用以负责将多台服务器组成一个虚拟的服务器池,并对各台服务器的运行状态进行实时监控和采集;一旦发现某台服务器发生故障,立刻将该台故障服务器从服务器池中去掉,以保证服务器池中的服务器都是正常运行的,同时以组播形式发送错误报告通知所述系统中其他各组成部分;另外,池化器还提供服务器池的域名解析功能,使得用户方便地访问服务器;域名解析模块,用以客户端在访问服务器池之前,做域名解析得到某服务器的IP地址,并直接与该服务器建立连接;状态共享模块,用以实现服务器状态的共享;在客户端与服务器之间做数据交换过程中,服务器在一定的间隔生成一个Cookie,并将该服务器的当前的运行状态记录在Cookie 内,然后发送给连接中的客户端,客户端收到Cookie后,将其保存在客户端内;中断处理模块,用以在客户端连接的服务器发生中断时,客户端通过池化器的域名解析模块对域名进行解析而得到另一个正常运行的服务器,在与新服务器建立起连接后,客户端发送所存储的Cookie至新服务器,新服务器可用收到的Cookie来将自己的状态恢复到旧服务器故障前的运行状态;中断的服务就被新服务器不间断地接管;池化器信息同步模块,用以在多台池化器之间实时数据同步,以保证池化器本身的容错和并行提供相关功能。
2.一种服务器故障容错系统,其特征在于,所述系统包括服务器池,包括若干服务器;客户端,用以访问服务器池;池化器,用以管理多台服务器组成的服务器池,并对各台服务器的运行状态进行实时监控和采集;若发现某台服务器发生故障,立刻将该台故障服务器从服务器池中去掉,以保证服务器池中的服务器都是正常运行的;若部分客户端由于服务器故障而导致与该服务器的连接中断,池化器将重新为该部分客户端分配其他正常运行的服务器。
3.根据权利要求2所述的服务器故障容错系统,其特征在于所述系统包括域名解析模块,用以客户端在访问服务器池之前,做域名解析得到某服务器的IP地址,并直接与服务器建立连接。
4.根据权利要求3所述的服务器故障容错系统,其特征在于所述系统进一步包括状态共享模块,用以实现服务器状态的共享;在客户端与服务器之间做数据交换过程中,服务器在一定的间隔生成一个Cookie,将该服务器的当前的运行状态记录在Cookie内,然后发送给连接中的客户端,客户端收到Cookie后,并将其保存在客户端内。
5.根据权利要求4所述的服务器故障容错系统,其特征在于所述系统进一步包括中断处理模块,用以在客户端连接的服务器发生中断时,客户端通过池化器的域名解析模块对域名进行解析而得到另一个正常运行的服务器,在与新服务器建立起连接后,客户端发送所存储的Cookie给新服务器,新服务器可用收到的Cookie来将自己的状态恢复到旧服务器故障前的运行状态;中断的服务就被新服务器不间断地接管。
6.根据权利要求2至5之一所述的服务器故障容错系统,其特征在于所述系统中的池化器还用以获取各台服务器的实时资源使用状况,并根据资源使用状态动态地调整和分配服务器,始终优先分配负荷较低服务器给客户端。
7.一种服务器故障容错方法,其特征在于池化器管理多台服务器组成的服务器池,并对各台服务器的运行状态进行实时监控和采集;多台池化器之间通过实时信息同步,保持各池化器的信息一致性;若发现某台服务器发生故障,立刻将该台故障服务器从服务器池中去掉,以保障服务器池中的服务器都是正常运行的;若部分客户端由于服务器故障而导致与该台服务器的连接中断,池化器将该部分客户端重新分配给其他正常的服务器。
8.根据权利要求7所述的服务器故障容错方法,其特征在于 所述方法具体包括如下步骤客户端在访问服务器池之前,通过池化器的域名解析模块做域名解析得到某服务器的 IP地址,并直接与该服务器建立连接;在客户端与服务器之间做数据交换过程中,服务器在一定的间隔生成一个Cookie,并将该服务器的当前的运行状态记录在该Cookie内,然后发送给连接中的客户端,客户端收到Cookie后,将其保存在客户端内;在客户端连接的服务器发生中断时,客户端通过池化器的域名解析模块对域名进行解析而得到另一个正常运行的服务器,在与新服务器建立起连接后,客户端发送所存储的 Cookie给新服务器,新服务器可用收到的Cookie来将自己的状态恢复到旧服务器故障前的运行状态;中断的服务就被新服务器不间断地接管。
9.根据权利要求7所述的服务器故障容错方法,其特征在于所述方法还包括如下步骤池化器获取各台服务器的资源使用状况,并根据资源使用状态动态地调整和分配服务器,始终优先分配负荷较低服务器给客户端。
全文摘要
本发明揭示了一种服务器故障容错系统及方法,所述系统包括服务器池、客户端、池化器。服务器池包括若干服务器;客户端用以访问服务器池;池化器用以管理多台服务器组成的服务器池,并对各台服务器的运行状态进行实时监控和采集;若发现某台服务器发生故障,立刻将该台故障服务器从服务器池中去掉,以保证服务器池中的服务器都是正常运行的;若部分客户端由于服务器的故障而导致与该故障服务器的连接中断,该部分客户端可由池化器重新分配并获得下一台正常运行的服务器,中断的连接和业务在本发明的容错系统中可以通过状态共享机制由新服务器平滑接管。本发明提出的服务器故障容错系统及方法,可提高服务器的容错性能,保证系统正常运行。
文档编号H04L12/24GK102437933SQ20121000125
公开日2012年5月2日 申请日期2012年1月4日 优先权日2012年1月4日
发明者张焰 申请人:无锡云捷科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1