一种多机房中的数据存储方法和装置的制造方法

文档序号:9508643阅读:554来源:国知局
一种多机房中的数据存储方法和装置的制造方法
【技术领域】
[0001]本发明涉及计算机网络技术领域,具体涉及一种多机房中的数据存储方法和装置。
【背景技术】
[0002]当今网络环境的建设越来越丰富,而利用建设良好的网络环境发展起来的各项互联网项目也越来越多。而越成功的项目拥有的用户也越多,用户分布在国内外的各地,通过不同的ISP (Internet Service Provider,互联网服务提供商)提供的网络服务访问游戏、网站等运营方的服务器。由于在一个地区部署一个机房很难应对大批的、来自不同地域和不同ISP的网络访问请求,因此各运营方往往部署多个机房,在各个机房分别部署服务器来提供服务,因此,也通常在各个机房中分别部署数据库来提供本机房服务器的数据查询和写入,并为了保证各机房数据库中数据的一致性,将各个机房中部署的数据库中的数据进行同步。
[0003]然而,数据的同步依赖于网络环境。通常情况下,在1秒内即可完成数据库间的数据同步,然而,在网络环境出现波动,或数据同步所需的网络跨运营商等情况下,数据同步会出现延时,达到1秒、2秒甚至更长时间,这时候对用户可能出现不友好的情况,例如:用户A登录游戏A进行了账号注册,具体地,利用游戏客户端访问了部署在A机房的服务器,此时该服务器对A机房的数据库进行了相应账号数据的建立和写入,并应与其他机房中的数据库进行实时同步,但可能由于网络环境波动等原因需要较长时间才能同步成功。而用户A由于自身原因,在注册了账号后登录游戏时,具体地,利用游戏客户端访问了部署在B机房的服务器,此时部署在A机房的服务器中的数据库尚未完成与部署在B机房的服务器中的数据库的同步,因此部署在B机房的服务器无法从该机房的数据库中获取到用户A注册的账号数据,用户A虽然已经注册成功,但并不能通过刚刚注册的账号登录游戏,造成了极差的用户体验。

【发明内容】

[0004]鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的多机房中的数据存储方法和装置。
[0005]依据本发明的一个方面,提供了一种多机房中的数据存储方法,包括:在所述多机房中的一个机房中部署一个主数据库;所述多个机房中的所有服务器在运行业务的过程中共用所述主数据库,对所述主数据库进行数据读写操作;在所述多个机房中的一个或多个机房中部署一个或多个备份数据库;将所述主数据库中的数据同步到所述一个或多个备份数据库中。
[0006]可选地,该方法进一步包括:当所述主数据库发生异常时,选择一个备份数据库作为新的主数据库;所述多个机房中的所有服务器在运行业务的过程中共用所述新的主数据库,对所述新的主数据库进行数据读写操作。
[0007]可选地,该方法进一步包括:当检测到一个机房发生异常时,依照负载均衡原则将分发至该机房的任务转发至其余各机房。
[0008]可选地,该方法进一步包括:当检测到主数据库所在的机房发生异常时,依照负载均衡原则将分发至该机房的任务转发至其余各机房;选择一个备份数据库作为新的主数据库;所述多个机房中的所有服务器在运行业务的过程中共用所述新的主数据库,对所述新的主数据库进行数据读写操作。
[0009]可选地,该方法进一步包括:将客户端上传的一个或多个任务放入任务队列,调度所述多个机房中的一个或多个服务器来完成任务队列中的任务。
[0010]可选地,所述调度所述多个机房中的一个或多个服务器来完成任务队列中的任务包括:在所述多个机房中一个或多个服务器上启动进程,其中每个机器上启动多个进程;从任务队列中取任务,并使用一致性哈希算法调度所述多个机房中一个或多个服务器上的进程来完成任务。
[0011]可选地,所述将所述主数据库中的数据同步到所述一个或多个备份数据库中包括:每隔预定时间将所述主数据库中的数据同步到所述一个或多个备份数据库中;或者,当所述主数据库中的数据发生变化时,将所述主数据库中的数据同步到所述一个或多个备份数据库中。
[0012]可选地,所述主数据库中的数据包括:用户的登录数据;则所述对所述主数据库进行数据读写操作包括:响应于用户注册指定平台的操作,将所述登录数据写入所述主数据库中;以及,响应于用户登录指定平台的操作,从所述主数据库中读取所述登录数据。
[0013]依据本发明的另一方面,提供了一种多机房中的数据存储装置,包括:数据库部署单元,适于在所述多机房中的一个机房中部署一个主数据库,使得所述多个机房中的所有服务器在运行业务的过程中共用所述主数据库,对所述主数据库进行数据读写操作;以及,适于在所述多个机房中的一个或多个机房中部署一个或多个备份数据库;数据同步单元,适于将所述主数据库中的数据同步到所述一个或多个备份数据库中。
[0014]可选地,所述数据库部署单元,进一步适于当所述主数据库发生异常时,选择一个备份数据库作为新的主数据库,使得所述多个机房中的所有服务器在运行业务的过程中共用所述新的主数据库,对所述新的主数据库进行数据读写操作。
[0015]可选地,所述数据库部署单元,进一步适于当检测到一个机房发生异常时,依照负载均衡原则将分发至该机房的任务转发至其余各机房。
[0016]可选地,所述数据库部署单元,进一步适于当检测到主数据库所在的机房发生异常时,依照负载均衡原则将分发至该机房的任务转发至其余各机房;以及,选择一个备份数据库作为新的主数据库,使得所述多个机房中的所有服务器在运行业务的过程中共用所述新的主数据库,对所述新的主数据库进行数据读写操作。
[0017]可选地,该装置进一步包括:任务处理单元,适于将客户端上传的一个或多个任务放入任务队列,调度所述多个机房中的一个或多个服务器来完成任务队列中的任务。
[0018]可选地,所述任务处理单元,适于在所述多个机房中一个或多个服务器上启动进程,其中每个机器上启动多个进程;从任务队列中取任务,并使用一致性哈希算法调度所述多个机房中一个或多个服务器上的进程来完成任务。
[0019]可选地,所述数据同步单元,适于每隔预定时间将所述主数据库中的数据同步到所述一个或多个备份数据库中;或者,适于当所述主数据库中的数据发生变化时,将所述主数据库中的数据同步到所述一个或多个备份数据库中。
[0020]可选地,所述主数据库中的数据包括:用户的登录数据;所述对所述主数据库进行的数据读写操作包括:响应于用户注册指定平台的操作,将所述登录数据写入所述主数据库中的操作;以及,响应于用户登录指定平台的操作,从所述主数据库中读取所述登录数据的操作。
[0021]由上述可知,根据本发明的技术方案,在部署了多个机房的情境下,可以在多机房中的一个机房中部署一个主数据库,并在在多个机房中的一个或多个机房中部署一个或多个备份数据库,在运行业务的过程中,多个机房中的所有服务器共用主数据库并进行数据读写操作,保证了用户在通过客户端等方式访问了任意一个机房的任一个服务器时,都可以通过该服务器正确地获得数据库中的数据,不会出现用户先后登录到不同的机房的情况下,由于机房间数据库未能及时同步因而不能正确获取数据或正常访问的情况,将主数据库中的数据同步到一个或多个备份数据库中,进行了很好的容灾处理,在主数据库出现问题时可以提供多个可用的备份数据库,形成了良好的单主一一热备模式。
[0022]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的【具体实施方式】。
【附图说明】
[0023]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0024]图1示出了根据本发明一个实施例的一种多机房中的数据存储方法的流程图;
[0025]图2示出了根据本发明一个实施例提供的多机房示意图;
[0026]图3示出了根据本发明一个实施例的一种多机房中的数据存储装置的结构示意图。
【具体实施方式】
[0027]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0028]图1示出了根据本发明一个实施例的一种多机房中的数据存储方法的流程图,如图1所示,该方法包括:
[0029]步骤S110,在多机房中的一个机房中部署一个主数
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1