一种互联网应用中的容灾备份系统及方法技术方案

技术编号:10894836 阅读:100 留言:0更新日期:2015-01-09 17:40
本申请提供了一种互联网应用中的容灾备份系统及方法,以解决大规模互联网应用中的数据访问的问题。所述的容灾备份系统是一个整套的容灾解决方案,对互联网应用系统做到了分级的容灾备份,从数据库、缓存、业务访问各个级别分别进行主备实时同步,保证数据库有问题立刻切换备机使用,有一份缓存数据失效的时候,可以从备份缓存文件加载数据,一台业务逻辑服务器访问失败,可以从备机访问。这种整套的容灾备份系统,不是针对单个点来做容灾,因此对于大规模应用的访问数据情况可以做到更好地适应,最大限定地保证用户的服务可用,从而保证大型互联网数据访问的安全和访问成功率。

【技术实现步骤摘要】

本申请涉及数据安全技术,特别是涉及。
技术介绍
在大规模的互联网应用,如大型的即时通讯、电子商务网站等应用中,很多业务的处理都需要服务器集群来操作。服务器集群就是指将很多服务器集中起来一起进行同一种服务,在客户端看来就像是只有一个服务器。 但是,长期运行的服务器,由于服务器运行比较久,出现宕机或者出问题的情况会越来越普遍。而且,运行久了之后硬件会有损坏,系统也有可能出现不稳定的情况。系统运行的不稳定不仅造成数据丢失,还无法及时为用户提供应用服务,造成用户的等待。 为了解决上述问题,需要提出一种容灾解决方案,以更好地适应大规模互联网应用中的数据访问。
技术实现思路
本申请提供了,以解决大规模互联网应用中的数据访问的问题。 为了解决上述问题,本申请公开了一种互联网应用中的容灾备份系统,包括: 业务逻辑服务器、数据库服务器和缓存服务器,其中,所述业务逻辑服务器通过部署在每个应用服务器上的代理模块与应用服务器交互,并通过部署在每个数据库服务器上的代理模块与数据库服务器交互; 所述业务逻辑服务器包含两组,其中一组包含多个主业务逻辑服务器,另一组包含一个或多个备用业务逻辑服务器; 所述数据库服务器和缓存服务器也分别包含主、备两种; 所述部署在每个应用服务器上的代理模块包含以下子模块: 请求路由子模块,用于将应用服务器产生的访问请求路由到其中一台主业务逻辑服务器;还用于当其中任意一台主业务逻辑服务器访问失败时,从两组业务逻辑服务器中选择一台主或备用业务逻辑服务器并将访问请求进行路由; 所述业务逻辑服务器包含以下子模块: 数据库访问子模块,用于接收访问请求,并根据该访问请求,通过部署在每个数据库服务器上的代理模块访问主、备中的一台数据库服务器; 缓存访问子模块,用于接收访问请求,并根据该访问请求,访问主、备中的一台缓存服务器。 优选的,所述数据库服务器包含两组,其中一组包含多个主数据库服务器,另一组包含一个或多个备用数据库服务器;所述缓存服务器包含双层,其中第一层包含多个主缓存服务器,第二层包含一个或多个备用缓存服务器。 优选的,所述业务逻辑服务器的数据库访问子模块用于接收访问请求,并根据该访问请求,通过部署在每个数据库服务器上的代理模块访问其中一台主数据库服务器;还用于当其中任意一台主数据库服务器访问失败时,从所述两组数据库服务器中选择一台主或备用数据库服务器进行访问;所述业务逻辑服务器的缓存访问子模块用于接收访问请求,并根据该访问请求,访问其中一台主缓存服务器;还用于当其中任意一台主缓存服务器访问失败时,从所述双层缓存服务器中选择一台主或备用缓存服务器进行访问。 优选的,所述数据库服务器采用读写分离,其中主数据库服务器用于读操作和写操作,备用数据库服务器仅用于读操作;针对读操作的访问请求,当其中任意一台主数据库服务器访问失败时,所述业务逻辑服务器的数据库访问子模块从所述两组数据库服务器中选择一台备用数据库服务器进行访问。 优选的,所述部署在每个应用服务器上的代理模块还包括:选择子模块,用于通过一致性哈希从多个主业务逻辑服务器中选择一台主业务逻辑服务器,还用于通过一致性哈希从两组业务逻辑服务器中选择一台主或备用业务逻辑服务器。 优选的,所述业务逻辑服务器还包括:选择子模块,用于通过一致性哈希从多个主数据库服务器中选择一台主数据库服务器,或者,通过一致性哈希从多个主缓存服务器中选择一台主缓存服务器;还用于通过一致性哈希从两组数据库服务器中选择一台主或备用数据库服务器,或者,通过一致性哈希从双层缓存服务器中选择一台主或备用缓存服务器。 本申请还提供了一种互联网应用中的容灾备份方法,用于互联网应用系统中: 所述互联网应用系统包括应用服务器、业务逻辑服务器、数据库服务器和缓存服务器;其中,所述业务逻辑服务器包含两组,其中一组包含多个主业务逻辑服务器,另一组包含一个或多个备用业务逻辑服务器;所述数据库服务器和缓存服务器也分别包含主、备两种; 所述方法包括: 将应用服务器产生的访问请求路由到其中一台主业务逻辑服务器; 当其中任意一台主业务逻辑服务器访问失败时,从两组业务逻辑服务器中选择一台主或备用业务逻辑服务器并将访问请求进行路由; 所述业务逻辑服务器接收访问请求,并根据该访问请求,访问主、备中的一台数据库服务器,或者,访问主、备中的一台缓存服务器。 优选的,所述数据库服务器包含两组,其中一组包含多个主数据库服务器,另一组包含一个或多个备用数据库服务器;所述业务逻辑服务器访问主、备中的一台数据库服务器包括:所述业务逻辑服务器访问其中一台主数据库服务器,当其中任意一台主数据库服务器访问失败时,从所述两组数据库服务器中选择一台主或备用数据库服务器进行访问。 优选的,所述缓存服务器包含双层,其中第一层包含多个主缓存服务器,第二层包含一个或多个备用缓存服务器;所述业务逻辑服务器访问主、备中的一台缓存服务器包括:所述业务逻辑服务器访问其中一台主缓存服务器,当其中任意一台主缓存服务器访问失败时,从所述双层缓存服务器中选择一台主或备用缓存服务器进行访问。 优选的,所述数据库服务器采用读写分离,其中主数据库服务器用于读操作和写操作,备用数据库服务器仅用于读操作;针对读操作的访问请求,当其中任意一台主数据库服务器访问失败时,所述业务逻辑服务器从所述两组数据库服务器中选择一台备用数据库服务器进行访问。 优选的,将应用服务器产生的访问请求路由到其中一台主业务逻辑服务器之前,还包括:通过一致性哈希从多个主业务逻辑服务器中选择一台主业务逻辑服务器;当其中任意一台主业务逻辑服务器访问失败时,还包括:通过一致性哈希从两组业务逻辑服务器中选择一台主或备用业务逻辑服务器。 与现有技术相比,本申请包括以下优点: 第一,本申请所述的容灾备份系统是一个整套的容灾解决方案,对互联网应用系统做到了分级的容灾备份,从数据库、缓存、业务访问各个级别分别进行主备实时同步,保证数据库有问题立刻切换备机使用,有一份缓存数据失效的时候,可以从备份缓存文件加载数据,一台业务逻辑服务器访问失败,可以从备机访问。这种整套的容灾备份系统,不是针对单个点来做容灾,因此对于大规模应用的访问数据情况可以做到更好地适应,最大限定地保证用户的服务可用,从而保证大型互联网数据访问的安全和访问成功率。 第二,所有级别的主备服务器都为分组,其中备机可以与传统方案不同,备机分组可以不是一台机器,而是一组机器,使得备机的能力更强,主机宕机后,服务压力可集中到备份分组的多台机器上,分担压力。 第三,对于业务访问级,尽量把业务逻辑服务器做成无状态的,即每台业务逻辑服务器提供一样的服务,这样可以更好地动态扩容,并且更好地做到服务不受硬件故障的影响。 第四,通过代理机制,一方面,后端业务做到对前端尽量透明,使得数据访问不会因为后端的扩容受到影响;另一方面,数据同步、备份等都是通过代理内部实现,全部为内网访问,因此没有多余的网络开销。 第五,对于数据库级别,主备读写分离,主库可以读写,备库只能用来读数据,这样的好处是可以更好地利用数据的读能力。例如,针对读操作的访问请求,当其中任意一个主库访问失败时,将读操作本文档来自技高网...
一种<a href="http://www.xjishu.com/zhuanli/55/201410510400.html" title="一种互联网应用中的容灾备份系统及方法原文来自X技术">互联网应用中的容灾备份系统及方法</a>

【技术保护点】
一种互联网应用中的容灾备份系统,其特征在于,包括:业务逻辑服务器、数据库服务器和缓存服务器,其中,所述业务逻辑服务器通过部署在每个应用服务器上的代理模块与应用服务器交互,并通过部署在每个数据库服务器上的代理模块与数据库服务器交互;所述业务逻辑服务器包含两组,其中一组包含多个主业务逻辑服务器,另一组包含一个或多个备用业务逻辑服务器;所述数据库服务器和缓存服务器也分别包含主、备两种;所述部署在每个应用服务器上的代理模块包含以下子模块:请求路由子模块,用于将应用服务器产生的访问请求路由到其中一台主业务逻辑服务器;还用于当其中任意一台主业务逻辑服务器访问失败时,从两组业务逻辑服务器中选择一台主或备用业务逻辑服务器并将访问请求进行路由;所述业务逻辑服务器包含以下子模块:数据库访问子模块,用于接收访问请求,并根据该访问请求,通过部署在每个数据库服务器上的代理模块访问主、备中的一台数据库服务器;缓存访问子模块,用于接收访问请求,并根据该访问请求,访问主、备中的一台缓存服务器。

【技术特征摘要】
1.一种互联网应用中的容灾备份系统,其特征在于,包括: 业务逻辑服务器、数据库服务器和缓存服务器,其中,所述业务逻辑服务器通过部署在每个应用服务器上的代理模块与应用服务器交互,并通过部署在每个数据库服务器上的代理模块与数据库服务器交互; 所述业务逻辑服务器包含两组,其中一组包含多个主业务逻辑服务器,另一组包含一个或多个备用业务逻辑服务器; 所述数据库服务器和缓存服务器也分别包含主、备两种; 所述部署在每个应用服务器上的代理模块包含以下子模块: 请求路由子模块,用于将应用服务器产生的访问请求路由到其中一台主业务逻辑服务器;还用于当其中任意一台主业务逻辑服务器访问失败时,从两组业务逻辑服务器中选择一台主或备用业务逻辑服务器并将访问请求进行路由; 所述业务逻辑服务器包含以下子模块: 数据库访问子模块,用于接收访问请求,并根据该访问请求,通过部署在每个数据库服务器上的代理模块访问主、备中的一台数据库服务器; 缓存访问子模块,用于接收访问请求,并根据该访问请求,访问主、备中的一台缓存服务器。2.根据权利要求1所述的系统,其特征在于: 所述数据库服务器包含两组,其中一组包含多个主数据库服务器,另一组包含一个或多个备用数据库服务器; 所述缓存服务器包含双层,其中第一层包含多个主缓存服务器,第二层包含一个或多个备用缓存服务器。3.根据权利要求2所述的系统,其特征在于: 所述业务逻辑服务器的数据库访问子模块用于接收访问请求,并根据该访问请求,通过部署在每个数据库服务器上的代理模块访问其中一台主数据库服务器;还用于当其中任意一台主数据库服务器访问失败时,从所述两组数据库服务器中选择一台主或备用数据库服务器进行访问; 所述业务逻辑服务器的缓存访问子模块用于接收访问请求,并根据该访问请求,访问其中一台主缓存服务器;还用于当其中任意一台主缓存服务器访问失败时,从所述双层缓存服务器中选择一台主或备用缓存服务器进行访问。4.根据权利要求1或3所述的系统,其特征在于: 所述数据库服务器采用读写分离,其中主数据库服务器用于读操作和写操作,备用数据库服务器仅用于读操作; 针对读操作的访问请求,当其中任意一台主数据库服务器访问失败时,所述业务逻辑服务器的数据库访问子模块从所述两组数据库服务器中选择一台备用数据库服务器进行访问。5.根据权利要求1所述的系统,其特征在于,所述部署在每个应用服务器上的代理模块还包括: 选择子模块,用于通过一致性哈希从多个主业务逻辑服务器中选择一台主业务逻辑服务器,还用于通过一致性哈希从两组业务逻辑服务器中选择一台主或备用业务逻辑服务 器。6.根据权利要求3所述的系统...

【专利技术属性】
技术研发人员:宋学东黄蔚
申请(专利权)人:北京奇虎科技有限公司奇智软件北京有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1