掌桥专利:专业的专利平台
掌桥专利
首页

数据中心容灾方法、装置、设备及存储介质

文献发布时间:2023-06-19 10:16:30


数据中心容灾方法、装置、设备及存储介质

技术领域

本发明涉及信息安全技术的访问规则领域,尤其涉及一种数据中心容灾方法、装置、设备及存储介质。

背景技术

在大数据应用体系中,利用消息中间件高效可靠的消息传递机制进行异步的数据传递,并基于数据通信进行分布式计算分析系统的集成,实现数据的实时分析。上游应用将日志、数据库数据、业务消息等数据推送到中间件,以便后续的开源流处理框架flink、计算引擎spark或框架storm进行数据清洗并分析,提取有价值的数据,从而为企业创造更多的经济效益。

其中,中间件集群的稳定性和安全性都直接影响结果的导向,可能导致系统崩溃或者做出错误的决策,所以消息中间件集群的多数据中心支持和自动故障转移能力至关重要。目前在整个数据中心出现故障时,需要使用已有运维手段切换备用数据中心、同步数据并重置偏移量再重启所有业务系统。整个过程繁琐并会导致业务程序长时间处于崩溃状态,数据中心的容灾切换效率低,以及造成数据丢失。

发明内容

本发明提供了一种数据中心容灾方法、装置、设备及存储介质,用于提高数据的安全可靠性和完整性,并提高数据中心的容灾切换效率。

为实现上述目的,本发明第一方面提供了一种数据中心容灾方法,包括:对两个预设数据中心开启双向消息同步服务,并分别对每个预设数据中心创建主题消息和每个预设数据中心对应的消息副本,所述两个预设数据中心包括目标数据中心和备份数据中心;将所述主题消息更新至所述双向消息同步服务中,通过所述双向消息同步服务按照所述主题消息对所述目标数据中心和所述备份数据中心进行监听和数据同步处理,所述主题消息具有对应的唯一标识值;当接收到数据推送请求,并且目标数据中心的心跳检测结果存在异常时,从所述数据推送请求中获取并缓存目标主题数据,按照所述唯一标识值向备份数据中心的主题消息推送所述目标主题数据,当目标数据中心故障恢复时,通过所述双向消息同步服务对每个预设数据中心对应的消息副本进行推送数据;当接收到数据订阅请求,并且目标数据中心的心跳检测结果存在异常时,根据所述数据订阅请求从所述备份数据中心中获取目标数据中心的消费位置,并根据所述消费位置重置所述备份数据中心对应的消息副本,得到目标订阅数据。

可选的,在本发明第一方面的第一种实现方式中,所述对两个预设数据中心开启双向消息同步服务,并分别对每个预设数据中心创建主题消息和每个预设数据中心对应的消息副本,所述两个预设数据中心包括目标数据中心和备份数据中心,包括:通过预设指令对两个预设数据中心开启双向消息同步服务,所述两个预设数据中心包括目标数据中心和备份数据中心;对所述目标数据中心配置第一访问地址,对所述备份数据中心配置第二访问地址;基于所述第一访问地址调用目标数据中心的消息中间件集群接口创建主题消息和所述目标数据中心对应的消息副本,所述目标数据中心对应的消息副本用于同步存储所述备份数据中心对应的主题消息;基于所述第二访问地址调用备份数据中心的消息中间件集群接口创建所述主题消息和所述备份数据中心对应的消息副本,所述备份数据中心对应的消息副本用于同步存储所述目标数据中心对应的主题消息。

可选的,在本发明第一方面的第二种实现方式中,所述将所述主题消息更新至所述双向消息同步服务中,通过所述双向消息同步服务按照所述主题消息对所述目标数据中心和所述备份数据中心进行监听和数据同步处理,所述主题消息具有对应的唯一标识值,包括:将所述主题消息添加至双向消息同步服务的白名单,并对所述主题消息设置对应的唯一标识值,所述唯一标识值用于指示对每个预设数据中心的消息中间件集群进行访问流量限制;通过所述双向消息同步服务分别连接所述目标数据中心和所述备用数据中心,将所述目标数据中心中的主题消息推送至所述备份数据中心对应的消息副本中,并将所述备份数据中心中的主题消息推送至所述目标数据中心对应的消息副本中;从所述目标数据中心中获取主题消息的消费位置,并将所述主题消息的消费位置推送至备用数据中心的配置主题中,主题消息的消费位置的初始值为0。

可选的,在本发明第一方面的第三种实现方式中,所述当接收到数据推送请求,并且目标数据中心的心跳检测结果存在异常时,从所述数据推送请求中获取并缓存目标主题数据,按照所述唯一标识值向备份数据中心的主题消息推送所述目标主题数据,当目标数据中心故障恢复时,通过所述双向消息同步服务对每个预设数据中心对应的消息副本进行推送数据,包括:当接收到数据推送请求,并且目标数据中心的心跳检测结果存在异常时,解析所述数据推送请求,得到目标主题数据,并将所述目标主题数据存储至内存数据库中,得到缓存后的主题数据;连接所述备份数据中心,得到连接结果,当所述连接结果为连接成功时,按照唯一标识值向备份数据中心的主题消息推送所述缓存后的主题数据;通过预设心跳检测任务检测所述目标数据中心,在目标数据中心故障恢复时,通过所述双向消息同步服务连接所述目标数据中心,并将所述缓存后的主题数据同步至目标数据中心的主题消息;将所述目标数据中心的主题消息推送至所述备份数据中心对应的消息副本中,并将所述备份数据中心的主题消息推送至所述目标数据中心对应的消息副本中。

可选的,在本发明第一方面的第四种实现方式中,所述当接收到数据订阅请求,并且目标数据中心的心跳检测结果存在异常时,根据所述数据订阅请求从所述备份数据中心中获取目标数据中心的消费位置,并根据所述消费位置重置所述备份数据中心对应的消息副本,得到目标订阅数据,包括:当接收到数据订阅请求,并且目标数据中心的心跳检测结果存在异常时,对所述数据订阅请求进行解析,得到主题消息的唯一标识值;按照所述主题消息的唯一标识值订阅备份数据中心的主题消息和所述备份数据中心对应的消息副本;从所述备用数据中心的配置主题中读取目标数据中心的消费位置,根据所述消费位置对目标数据中心的主题消息设置数据读取起始值,并按照所述数据读取起始值提取目标订阅数据。

可选的,在本发明第一方面的第五种实现方式中,在所述对两个预设数据中心开启双向消息同步服务,并分别对每个预设数据中心创建主题消息和每个预设数据中心对应的消息副本,所述两个预设数据中心包括目标数据中心和备份数据中心之前,所述数据中心容灾方法还包括:通过预设心跳检测任务分别向每个预设数据中心发送套接字socket连接请求,并建立socket长连接,所述socket长连接用于指示分别向每个预设数据中心进行消息推送;按照预设频率分别向每个预设数据中心发送心跳包,以进行心跳检测,得到心跳检测结果,所述心跳检测结果用于指示每个预设数据中心是否存在连接异常。

可选的,在本发明第一方面的第六种实现方式中,在所述当接收到数据订阅请求,并且目标数据中心的心跳检测结果存在异常时,根据所述数据订阅请求从所述备份数据中心中获取目标数据中心的消费位置,并根据所述消费位置重置所述备份数据中心对应的消息副本,得到目标订阅数据之后,所述数据中心容灾方法还包括:对每个预设数据中心的主题消息和每个预设数据中心对应的消息副本进行数据持久化处理,并在预设时长内统计分析每个预设数据中心的心跳检测异常数量;当每个预设数据中心的心跳检测异常数量大于预设阈值时,生成警示信息,并将所述警示消息推送至目标终端,以使得所述目标终端按照所述警示消息提示目标人员排查发生故障的预设数据中心。

本发明第二方面提供了一种数据中心容灾装置,包括:创建模块,用于对两个预设数据中心开启双向消息同步服务,并分别对每个预设数据中心创建主题消息和每个预设数据中心对应的消息副本,所述两个预设数据中心包括目标数据中心和备份数据中心;更新模块,用于将所述主题消息更新至所述双向消息同步服务中,通过所述双向消息同步服务按照所述主题消息对所述目标数据中心和所述备份数据中心进行监听和数据同步处理,所述主题消息具有对应的唯一标识值;推送模块,当接收到数据推送请求,并且目标数据中心的心跳检测结果存在异常时,用于从所述数据推送请求中获取并缓存目标主题数据,按照所述唯一标识值向备份数据中心的主题消息推送所述目标主题数据,当目标数据中心故障恢复时,通过所述双向消息同步服务对每个预设数据中心对应的消息副本进行推送数据;订阅模块,当接收到数据订阅请求,并且目标数据中心的心跳检测结果存在异常时,用于根据所述数据订阅请求从所述备份数据中心中获取目标数据中心的消费位置,并根据所述消费位置重置所述备份数据中心对应的消息副本,得到目标订阅数据。

可选的,在本发明第二方面的第一种实现方式中,所述创建模块具体用于:通过预设指令对两个预设数据中心开启双向消息同步服务,所述两个预设数据中心包括目标数据中心和备份数据中心;对所述目标数据中心配置第一访问地址,对所述备份数据中心配置第二访问地址;基于所述第一访问地址调用目标数据中心的消息中间件集群接口创建主题消息和所述目标数据中心对应的消息副本,所述目标数据中心对应的消息副本用于同步存储所述备份数据中心对应的主题消息;基于所述第二访问地址调用备份数据中心的消息中间件集群接口创建所述主题消息和所述备份数据中心对应的消息副本,所述备份数据中心对应的消息副本用于同步存储所述目标数据中心对应的主题消息。

可选的,在本发明第二方面的第二种实现方式中,所述更新模块具体用于:将所述主题消息添加至双向消息同步服务的白名单,并对所述主题消息设置对应的唯一标识值,所述唯一标识值用于指示对每个预设数据中心的消息中间件集群进行访问流量限制;通过所述双向消息同步服务分别连接所述目标数据中心和所述备用数据中心,将所述目标数据中心中的主题消息推送至所述备份数据中心对应的消息副本中,并将所述备份数据中心中的主题消息推送至所述目标数据中心对应的消息副本中;从所述目标数据中心中获取主题消息的消费位置,并将所述主题消息的消费位置推送至备用数据中心的配置主题中,主题消息的消费位置的初始值为0。

可选的,在本发明第二方面的第三种实现方式中,所述推送模块具体用于:当接收到数据推送请求,并且目标数据中心的心跳检测结果存在异常时,解析所述数据推送请求,得到目标主题数据,并将所述目标主题数据存储至内存数据库中,得到缓存后的主题数据;连接所述备份数据中心,得到连接结果,当所述连接结果为连接成功时,按照唯一标识值向备份数据中心的主题消息推送所述缓存后的主题数据;通过预设心跳检测任务检测所述目标数据中心,在目标数据中心故障恢复时,通过所述双向消息同步服务连接所述目标数据中心,并将所述缓存后的主题数据同步至目标数据中心的主题消息;将所述目标数据中心的主题消息推送至所述备份数据中心对应的消息副本中,并将所述备份数据中心的主题消息推送至所述目标数据中心对应的消息副本中。

可选的,在本发明第二方面的第四种实现方式中,所述订阅模块具体用于:当接收到数据订阅请求,并且目标数据中心的心跳检测结果存在异常时,对所述数据订阅请求进行解析,得到主题消息的唯一标识值;按照所述主题消息的唯一标识值订阅备份数据中心的主题消息和所述备份数据中心对应的消息副本;从所述备用数据中心的配置主题中读取目标数据中心的消费位置,根据所述消费位置对目标数据中心的主题消息设置数据读取起始值,并按照所述数据读取起始值提取目标订阅数据。

可选的,在本发明第二方面的第五种实现方式中,所述数据中心容灾装置还包括:连接模块,用于通过预设心跳检测任务分别向每个预设数据中心发送套接字socket连接请求,并建立socket长连接,所述socket长连接用于指示分别向每个预设数据中心进行消息推送;检测模块,用于按照预设频率分别向每个预设数据中心发送心跳包,以进行心跳检测,得到心跳检测结果,所述心跳检测结果用于指示每个预设数据中心是否存在连接异常。

可选的,在本发明第二方面的第六种实现方式中,所述数据中心容灾装置还包括:统计模块,用于对每个预设数据中心的主题消息和每个预设数据中心对应的消息副本进行数据持久化处理,并在预设时长内统计分析每个预设数据中心的心跳检测异常数量;预警模块,当每个预设数据中心的心跳检测异常数量大于预设阈值时,用于生成警示信息,并将所述警示消息推送至目标终端,以使得所述目标终端按照所述警示消息提示目标人员排查发生故障的预设数据中心。

本发明第三方面提供了一种数据中心容灾设备,包括:存储器和至少一个处理器,所述存储器中存储有指令;所述至少一个处理器调用所述存储器中的所述指令,以使得所述数据中心容灾设备执行上述的数据中心容灾方法。

本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的数据中心容灾方法。

本发明提供的技术方案中,对两个预设数据中心开启双向消息同步服务,并分别对每个预设数据中心创建主题消息和每个预设数据中心对应的消息副本,所述两个预设数据中心包括目标数据中心和备份数据中心;将所述主题消息更新至所述双向消息同步服务中,通过所述双向消息同步服务按照所述主题消息对所述目标数据中心和所述备份数据中心进行监听和数据同步处理,所述主题消息具有对应的唯一标识值;当接收到数据推送请求,并且目标数据中心的心跳检测结果存在异常时,从所述数据推送请求中获取并缓存目标主题数据,按照所述唯一标识值向备份数据中心的主题消息推送所述目标主题数据,当目标数据中心故障恢复时,通过所述双向消息同步服务对每个预设数据中心对应的消息副本进行推送数据;当接收到数据订阅请求,并且目标数据中心的心跳检测结果存在异常时,根据所述数据订阅请求从所述备份数据中心中获取目标数据中心的消费位置,并根据所述消费位置重置所述备份数据中心对应的消息副本,得到目标订阅数据。本发明实施例中,通过对两个预设数据中心开启双向消息同步服务,并创建主题消息和对应的消息副本,提高了数据同步效率和准确率;当目标数据中心的心跳检测结果存在异常时,按照唯一标识值向备份数据中心的主题消息推送目标主题数据,降低了数据中心的分区资源损耗;根据数据订阅请求从备份数据中心中获取目标数据中心的消费位置,并根据消费位置重置备份数据中心对应的消息副本,得到目标订阅数据,采用两个预设数据中心提高了数据的安全可靠性和完整性,以及提高了数据中心的容灾切换效率。

附图说明

图1为本发明实施例中数据中心容灾方法的一个实施例示意图;

图2为本发明实施例中数据中心容灾方法的另一个实施例示意图;

图3为本发明实施例中数据中心容灾架构的一个结构示意图;

图4为本发明实施例中数据中心容灾装置的一个实施例示意图;

图5为本发明实施例中数据中心容灾装置的另一个实施例示意图;

图6为本发明实施例中数据中心容灾设备的一个实施例示意图。

具体实施方式

本发明实施例提供了一种数据中心容灾方法、装置、设备及存储介质,用于采用两个预设数据中心提高数据的安全可靠性和完整性,以及提高数据中心的容灾切换效率。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中数据中心容灾方法的一个实施例包括:

101、对两个预设数据中心开启双向消息同步服务,并分别对每个预设数据中心创建主题消息和每个预设数据中心对应的消息副本,两个预设数据中心包括目标数据中心和备份数据中心。

其中,预设数据中心的数量根据实际业务需求进行设置,可以为两个,也可以为多个,具体此处不做限定。具体的,服务器对两个预设数据中心开启双向消息同步服务,两个预设数据中心包括目标数据中心和备份数据中心,双向消息同步服务用于指示根据白名单策略自动匹配需要同步的主题消息;服务器对目标数据中心所在数据模型zookeeper中创建主题消息和目标数据中心对应的消息副本;服务器对备份数据中心所在zookeeper中创建主题消息和备份数据中心对应的消息副本。

需要说明的是,每个预设数据中心对应的消息副本用于备份另一个预设数据中心的相同主题消息。例如,两个预设数据中心DC1和DC2,其中,DC1为目标数据中心,DC2为备份数据中心,服务器两个预设数据中心之间开启双向消息同步。服务器在创建xxx主题消息Topic时,也会在DC1中创建主题消息xxx和DC1对应的消息副本DC2.xxx,并在DC2中创建主题消息xxx和DC2对应的消息副本DC1.xxx。

进一步地,将主题消息存储于区块链数据库中,具体此处不做限定。

可以理解的是,本发明的执行主体可以为数据中心容灾装置,还可以是终端或者服务器,具体此处不做限定。本发明实施例以服务器为执行主体为例进行说明。

102、将主题消息更新至双向消息同步服务中,通过双向消息同步服务按照主题消息对目标数据中心和备份数据中心进行监听和数据同步处理,主题消息具有对应的唯一标识值。

其中,双向消息同步服务是服务器基于开源组件mirrormaker2进行二次开发的同步服务。具体的,服务器将主题消息写入至双向消息同步服务中的白名单;服务器通过双向消息同步服务按照白名单策略自动匹配需要同步的主题消息,服务器按照匹配到的主题消息分别检测目标数据中心所在zookeeper和备份数据中心所在zookeeper中主题消息是否存在数据变更(也就是,数据增删改处理导致的数据变化);当服务器检测到任意一个预设数据中心(目标数据中心或者备份数据中心)发生数据变更时,然后服务器调用每个预设数据中心的消息中间件集群的预设接口将每个预设数据中心中发生变更的主题消息中的数据同步到另一个预设数据中心对应的消息副本中。

103、当接收到数据推送请求,并且目标数据中心的心跳检测结果存在异常时,从数据推送请求中获取并缓存目标主题数据,按照唯一标识值向备份数据中心的主题消息推送目标主题数据,当目标数据中心故障恢复时,通过双向消息同步服务对每个预设数据中心对应的消息副本进行推送数据。

可以理解的是,服务器在进行主题数据的推送过程中,还通过预设心跳检测任务向目标数据中心进行心跳检测,得到目标数据中心的心跳检测结果,目标数据中心的心跳检测结果包括心跳检测正常和心跳检测异常。其中,数据推送请求用于指示生产者向每个数据中兴的主题消息中写入数据。

具体的,当服务器接收到数据推送请求,并且目标数据中心的心跳检测结果存在异常时,服务器对数据推送请求进行解析,得到目标主题数据,并对目标主题数据进行缓存;服务器按照唯一标识值将目标主题数据推送至备份数据中心的主题消息中;服务器通过预设心跳检测任务向目标数据中心进行心跳检测,当目标数据中心故障恢复时,服务器通过双向消息同步服务将每个预设数据中心的主题消息中的数据同步到另一个预设数据中心对应的消息副本中,确保了目标数据中心和备份数据中心之间的数据一致性和完整性。

例如,当向目标数据中心DC1的xxx主题推送目标主题数据时,服务器对目标主题数据进行缓存,当服务器检测到DC1发生故障时,服务器此时无法感应到DC1的心跳,然后服务器与备用数据中心DC2建立连接,将缓存的目标主题数据推送到DC2的xxx主题中,确保数据在生产过程中不丢失。

104、当接收到数据订阅请求,并且目标数据中心的心跳检测结果存在异常时,根据数据订阅请求从备份数据中心中获取目标数据中心的消费位置,并根据消费位置重置备份数据中心对应的消息副本,得到目标订阅数据。

需要说明的是,服务器对目标数据中心进行心跳检测与步骤103的执行过程相似,具体此处不再赘述。其中,数据订阅请求用于指示消费者向每个数据中心的主题消息提取数据。具体的,当服务器接收到数据订阅请求,并且目标数据中心的心跳检测结果存在异常时,服务器根据数据订阅请求确定主题消息和主题消息的唯一标识值;服务器按照唯一标识值向备份数据中心提取目标数据中心的消费位置,并根据消费位置重置备份数据中心对应的消息副本,得到目标订阅数据。

本发明实施例中,对两个预设数据中心开启双向消息同步服务,并创建主题消息和对应的消息副本,提高了数据同步效率和准确率;当目标数据中心的心跳检测结果存在异常时,按照唯一标识值向备份数据中心的主题消息推送目标主题数据,降低了数据中心的分区资源损耗;根据数据订阅请求从备份数据中心中获取目标数据中心的消费位置,并根据消费位置重置备份数据中心对应的消息副本,得到目标订阅数据,采用两个预设数据中心提高了数据的安全可靠性和完整性,以及提高了数据中心的容灾切换效率。

请参阅图2,本发明实施例中数据中心容灾方法的另一个实施例包括:

201、对两个预设数据中心开启双向消息同步服务,并分别对每个预设数据中心创建主题消息和每个预设数据中心对应的消息副本,两个预设数据中心包括目标数据中心和备份数据中心。

其中,主题消息按照不同消息类型可以划分为1个,也可以划分为2个,还可以划分为多个。如图3所示,两个预设数据中心为目标数据中心301(也就是DC1)和备份数据中心302(也就是DC2),服务器在DC1中创建主题消息包括xxx、yyy和/或zzz和对应的消息副本为DC2.xxx、DC2.yyy和/或DC2zzz;服务器在DC2中创建主题消息包括xxx、yyy和/或zzz和对应的消息副本为DC1.xxx、DC1.yyy和/或DC1zzz。其中,服务器还可以创建其他主题消息和对应的其他消息副本,具体此处不做限定。服务器通过双向消息同步服务对DC1和DC2之间的主题消息进行数据同步处理,确保主题消息中数据安全性。

可选的,服务器通过预设指令对两个预设数据中心开启双向消息同步服务,两个预设数据中心包括目标数据中心和备份数据中心,其中,预设指令可以为预先设置的开启服务的壳shell脚本指令;服务器通过预设指令对两个预设数据中心开启双向消息同步服务,两个预设数据中心包括目标数据中心和备份数据中心;服务器对目标数据中心配置第一访问地址,对备份数据中心配置第二访问地址,其中,第一访问地址和第二访问地址并不相同;服务器基于第一访问地址调用目标数据中心的消息中间件集群接口创建主题消息和目标数据中心对应的消息副本,目标数据中心对应的消息副本用于同步存储备份数据中心对应的主题消息;服务器基于第二访问地址调用备份数据中心的消息中间件集群接口创建主题消息和备份数据中心对应的消息副本,备份数据中心对应的消息副本用于同步存储目标数据中心对应的主题消息。

202、将主题消息更新至双向消息同步服务中,通过双向消息同步服务按照主题消息对目标数据中心和备份数据中心进行监听和数据同步处理,主题消息具有对应的唯一标识值。

其中,主题消息对应的唯一标识值可以为通用唯一识别码(universally uniqueidentifier,UUID),也可以为其他标识码,具体此处不做限定。需要说明的是,每个预设数据中心(目标数据中心或者备份数据中心)均具有对应的消费者接口和生产者接口。

可选的,首先,服务器将主题消息添加至双向消息同步服务中的白名单中,并对主题消息设置对应的唯一标识值,进一步地,服务器调用java开发工具包jdk的工具类生成目标UUID(唯一标识值),服务器调用卡夫卡kafka的预设应用接口配置该目标UUID对应的主题消息topic的限流规则,唯一标识值用于指示对每个预设数据中心的消息中间件集群进行访问流量限制。然后,服务器通过双向消息同步服务分别连接目标数据中心和备用数据中心,将目标数据中心中的主题消息推送至备份数据中心对应的消息副本中,并将备份数据中心中的主题消息推送至目标数据中心对应的消息副本中;其次,服务器从目标数据中心中获取主题消息的消费位置,并将主题消息的消费位置推送至备用数据中心的配置主题(也就是config主题)中,主题消息的消费位置的初始值为0。

例如,服务器通过双向消息同步服务在备份数据中心DC2开启生产者任务和消费者任务;服务器通过消费者任务调用备份数据中心DC2的消费者接口从目标数据中心DC1的主题消息xxx中抽取数据;服务器通过生产者任务调用备份数据中心DC2的生产者接口将抽取的数据推动到DC2的消息副本DC1.xxx中。

203、当接收到数据推送请求,并且目标数据中心的心跳检测结果存在异常时,从数据推送请求中获取并缓存目标主题数据,按照唯一标识值向备份数据中心的主题消息推送目标主题数据,当目标数据中心故障恢复时,通过双向消息同步服务对每个预设数据中心对应的消息副本进行推送数据。

可以理解的是,服务器对目标数据中心进行心跳检测,可选的,服务器通过预设心跳检测任务分别向每个预设数据中心发送套接字socket连接请求,并建立socket长连接,socket长连接用于指示分别向每个预设数据中心(包括目标数据中心)进行消息推送;服务器按照预设频率分别向每个预设数据中心发送心跳包,以进行心跳检测,得到心跳检测结果,心跳检测结果用于指示每个预设数据中心是否存在连接异常。进一步地,服务器按照预设频率发送一个心跳包至目标数据中心,并同时启动一个超时定时器;若服务器在预置时长内接收到目标数据中心的应答包,则服务器确定目标数据中心的心跳检测结果正常,并且删除超时定时器;若服务器的超时定时器超时,并且没有收到目标数据中心的应答包,则服务器确定目标数据中心的心跳检测结果存在异常,并进行重新连接。

可选的,当服务器接收到数据推送请求,并且目标数据中心的心跳检测结果存在异常时,服务器解析数据推送请求,得到目标主题数据,并将目标主题数据存储至内存数据库中,得到缓存后的主题数据;服务器连接备份数据中心,得到连接结果,当连接结果为连接成功时,按照唯一标识值向备份数据中心的主题消息推送缓存后的主题数据;服务器通过预设心跳检测任务检测目标数据中心,在目标数据中心故障恢复时,通过双向消息同步服务连接目标数据中心,并将缓存后的主题数据同步至目标数据中心的主题消息;服务将目标数据中心的主题消息推送至备份数据中心对应的消息副本中,并将备份数据中心的主题消息推送至目标数据中心对应的消息副本中。

204、当接收到数据订阅请求,并且目标数据中心的心跳检测结果存在异常时,根据数据订阅请求从备份数据中心中获取目标数据中心的消费位置,并根据消费位置重置备份数据中心对应的消息副本,得到目标订阅数据。

其中,本步骤204的心跳检测过程与步骤203的心跳检测过程相似,具体此处不再赘述。可选的,当服务器接收到数据订阅请求,并且目标数据中心的心跳检测结果存在异常时,服务器对数据订阅请求进行解析,得到主题消息的唯一标识值;服务器按照主题消息的唯一标识值订阅备份数据中心的主题消息和备份数据中心对应的消息副本;服务器从备用数据中心的配置主题中读取目标数据中心的消费位置,根据消费位置对目标数据中心的主题消息设置数据读取起始值,并按照数据读取起始值提取目标订阅数据。

例如,当服务器从目标数据中心DC1中的主题消息xxx提取目标订阅数据时,也会同时订阅主题消息xxx和对应的消息副本DC2.xxx,当DC1发生灾难时,服务器根据心跳检测结果与备份数据中心DC2建立连接,并订阅DC2中的主题消息xxx和对应的消息副本DC1.xxx,同时从DC2中配置config主题中获取之前在DC1中的消费位置offset,并重置DC1.xxx到offset(数据读取起始值),并按照offset提取目标订阅数据。确保服务器从灾难发生前的位置继续消费数据,同时也能消费到最新推送的数据。

205、对每个预设数据中心的主题消息和每个预设数据中心对应的消息副本进行数据持久化处理,并在预设时长内统计分析每个预设数据中心的心跳检测异常数量。

也就是,服务器将每个预设数据中心的主题消息和每个预设数据中心对应的消息副本存储至内存数据库(例如,远程字典服务)中;进一步地,服务器通过远程字典服务服务数据库(redis dataBase,RDB)或者追加文件(append only file,AOF)方式对每个预设数据中心的主题消息和每个预设数据中心对应的消息副本进行持久化处理,用于对内存数据库中的数据进行快速恢复。当目标数据中心由于发生故障导致缓存的数据存在异常时,服务器通过读取RDB或AOF文件,将数据重新加载到内存数据库中。然后,服务器在预设时长内统计分析每个预设数据中心的心跳检测异常数量,包括目标数据中心的心跳检测异常数量和备份数据中心的心跳检测异常数量。

206、当每个预设数据中心的心跳检测异常数量大于预设阈值时,生成警示信息,并将警示消息推送至目标终端,以使得目标终端按照警示消息提示目标人员排查发生故障的预设数据中心。

例如,若目标数据中心的心跳检测异常数量为15,备份数据中心的心跳检测异常数量为0,预设阈值为5,预设时长为3分钟,则服务器确定目标数据中心的心跳检测异常数量大于预设阈值,备份数据中心的心跳检测异常数量小于预设阈值。服务器对目标数据中心生成对应的警示信息,并调用预设接口将警示信息发送至目标终端,以使得目标终端按照警示消息提示目标人员排查发生故障的预设数据中心(也就是目标数据中心)。

进一步地,服务器还可以获取每个预设数据中心的故障信息,并将每个预设数据中心的心跳检测异常数量和每个预设数据中心的故障信息生成统计报表。

本发明实施例中,对两个预设数据中心开启双向消息同步服务,并创建主题消息和对应的消息副本,提高了数据同步效率和准确率;当目标数据中心的心跳检测结果存在异常时,按照唯一标识值向备份数据中心的主题消息推送目标主题数据,降低了数据中心的分区资源损耗;根据数据订阅请求从备份数据中心中获取目标数据中心的消费位置,并根据消费位置重置备份数据中心对应的消息副本,得到目标订阅数据,采用两个预设数据中心提高了数据的安全可靠性和完整性,以及提高了数据中心的容灾切换效率。

上面对本发明实施例中数据中心容灾方法进行了描述,下面对本发明实施例中数据中心容灾装置进行描述,请参阅图4,本发明实施例中数据中心容灾装置的一个实施例包括:

创建模块401,用于对两个预设数据中心开启双向消息同步服务,并分别对每个预设数据中心创建主题消息和每个预设数据中心对应的消息副本,两个预设数据中心包括目标数据中心和备份数据中心;

更新模块402,用于将主题消息更新至双向消息同步服务中,通过双向消息同步服务按照主题消息对目标数据中心和备份数据中心进行监听和数据同步处理,主题消息具有对应的唯一标识值;

推送模块403,当接收到数据推送请求,并且目标数据中心的心跳检测结果存在异常时,用于从数据推送请求中获取并缓存目标主题数据,按照唯一标识值向备份数据中心的主题消息推送目标主题数据,当目标数据中心故障恢复时,通过双向消息同步服务对每个预设数据中心对应的消息副本进行推送数据;

订阅模块404,当接收到数据订阅请求,并且目标数据中心的心跳检测结果存在异常时,用于根据数据订阅请求从备份数据中心中获取目标数据中心的消费位置,并根据消费位置重置备份数据中心对应的消息副本,得到目标订阅数据。

进一步地,将主题消息存储于区块链数据库中,具体此处不做限定。

本发明实施例中,对两个预设数据中心开启双向消息同步服务,并创建主题消息和对应的消息副本,提高了数据同步效率和准确率;当目标数据中心的心跳检测结果存在异常时,按照唯一标识值向备份数据中心的主题消息推送目标主题数据,降低了数据中心的分区资源损耗;根据数据订阅请求从备份数据中心中获取目标数据中心的消费位置,并根据消费位置重置备份数据中心对应的消息副本,得到目标订阅数据,采用两个预设数据中心提高了数据的安全可靠性和完整性,以及提高了数据中心的容灾切换效率。

请参阅图5,本发明实施例中数据中心容灾装置的另一个实施例包括:

创建模块401,用于对两个预设数据中心开启双向消息同步服务,并分别对每个预设数据中心创建主题消息和每个预设数据中心对应的消息副本,两个预设数据中心包括目标数据中心和备份数据中心;

更新模块402,用于将主题消息更新至双向消息同步服务中,通过双向消息同步服务按照主题消息对目标数据中心和备份数据中心进行监听和数据同步处理,主题消息具有对应的唯一标识值;

推送模块403,当接收到数据推送请求,并且目标数据中心的心跳检测结果存在异常时,用于从数据推送请求中获取并缓存目标主题数据,按照唯一标识值向备份数据中心的主题消息推送目标主题数据,当目标数据中心故障恢复时,通过双向消息同步服务对每个预设数据中心对应的消息副本进行推送数据;

订阅模块404,当接收到数据订阅请求,并且目标数据中心的心跳检测结果存在异常时,用于根据数据订阅请求从备份数据中心中获取目标数据中心的消费位置,并根据消费位置重置备份数据中心对应的消息副本,得到目标订阅数据。

可选的,创建模块401还可以具体用于:

通过预设指令对两个预设数据中心开启双向消息同步服务,两个预设数据中心包括目标数据中心和备份数据中心;

对目标数据中心配置第一访问地址,对备份数据中心配置第二访问地址;

基于第一访问地址调用目标数据中心的消息中间件集群接口创建主题消息和目标数据中心对应的消息副本,目标数据中心对应的消息副本用于同步存储备份数据中心对应的主题消息;

基于第二访问地址调用备份数据中心的消息中间件集群接口创建主题消息和备份数据中心对应的消息副本,备份数据中心对应的消息副本用于同步存储目标数据中心对应的主题消息。

可选的,更新模块402还可以具体用于:

将主题消息添加至双向消息同步服务的白名单,并对主题消息设置对应的唯一标识值,唯一标识值用于指示对每个预设数据中心的消息中间件集群进行访问流量限制;

通过双向消息同步服务分别连接目标数据中心和备用数据中心,将目标数据中心中的主题消息推送至备份数据中心对应的消息副本中,并将备份数据中心中的主题消息推送至目标数据中心对应的消息副本中;

从目标数据中心中获取主题消息的消费位置,并将主题消息的消费位置推送至备用数据中心的配置主题中,主题消息的消费位置的初始值为0。

可选的,推送模块403还可以具体用于:

当接收到数据推送请求,并且目标数据中心的心跳检测结果存在异常时,解析数据推送请求,得到目标主题数据,并将目标主题数据存储至内存数据库中,得到缓存后的主题数据;

连接备份数据中心,得到连接结果,当连接结果为连接成功时,按照唯一标识值向备份数据中心的主题消息推送缓存后的主题数据;

通过预设心跳检测任务检测目标数据中心,在目标数据中心故障恢复时,通过双向消息同步服务连接目标数据中心,并将缓存后的主题数据同步至目标数据中心的主题消息;

将目标数据中心的主题消息推送至备份数据中心对应的消息副本中,并将备份数据中心的主题消息推送至目标数据中心对应的消息副本中。

可选的,订阅模块404还可以具体用于:

当接收到数据订阅请求,并且目标数据中心的心跳检测结果存在异常时,对数据订阅请求进行解析,得到主题消息的唯一标识值;

按照主题消息的唯一标识值订阅备份数据中心的主题消息和备份数据中心对应的消息副本;

从备用数据中心的配置主题中读取目标数据中心的消费位置,根据消费位置对目标数据中心的主题消息设置数据读取起始值,并按照数据读取起始值提取目标订阅数据。

可选的,数据中心容灾装置还包括:

连接模块405,用于通过预设心跳检测任务分别向每个预设数据中心发送套接字socket连接请求,并建立socket长连接,socket长连接用于指示分别向每个预设数据中心进行消息推送;

检测模块406,用于按照预设频率分别向每个预设数据中心发送心跳包,以进行心跳检测,得到心跳检测结果,心跳检测结果用于指示每个预设数据中心是否存在连接异常。

可选的,数据中心容灾装置还包括:

统计模块407,用于对每个预设数据中心的主题消息和每个预设数据中心对应的消息副本进行数据持久化处理,并在预设时长内统计分析每个预设数据中心的心跳检测异常数量;

预警模块408,当每个预设数据中心的心跳检测异常数量大于预设阈值时,用于生成警示信息,并将警示消息推送至目标终端,以使得目标终端按照警示消息提示目标人员排查发生故障的预设数据中心。

本发明实施例中,对两个预设数据中心开启双向消息同步服务,并创建主题消息和对应的消息副本,提高了数据同步效率和准确率;当目标数据中心的心跳检测结果存在异常时,按照唯一标识值向备份数据中心的主题消息推送目标主题数据,降低了数据中心的分区资源损耗;根据数据订阅请求从备份数据中心中获取目标数据中心的消费位置,并根据消费位置重置备份数据中心对应的消息副本,得到目标订阅数据,采用两个预设数据中心提高了数据的安全可靠性和完整性,以及提高了数据中心的容灾切换效率。

上面图4和图5从模块化的角度对本发明实施例中的数据中心容灾装置进行详细描述,下面从硬件处理的角度对本发明实施例中数据中心容灾设备进行详细描述。

图6是本发明实施例提供的一种数据中心容灾设备的结构示意图,该数据中心容灾设备600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)610(例如,一个或一个以上处理器)和存储器620,一个或一个以上存储应用程序633或数据632的存储介质630(例如一个或一个以上海量存储设备)。其中,存储器620和存储介质630可以是短暂存储或持久存储。存储在存储介质630的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据中心容灾设备600中的一系列指令操作。更进一步地,处理器610可以设置为与存储介质630通信,在数据中心容灾设备600上执行存储介质630中的一系列指令操作。

数据中心容灾设备600还可以包括一个或一个以上电源640,一个或一个以上有线或无线网络接口650,一个或一个以上输入输出接口660,和/或,一个或一个以上操作系统631,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图6示出的数据中心容灾设备结构并不构成对数据中心容灾设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述数据中心容灾方法的步骤。

本发明还提供一种数据中心容灾设备,所述数据中心容灾设备包括存储器和处理器,存储器中存储有指令,所述指令被处理器执行时,使得处理器执行上述各实施例中的所述数据中心容灾方法的步骤。

进一步地,所述计算机可读存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。

本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

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

相关技术
  • PaaS的中间件容灾方法、容灾装置、容灾设备及存储介质
  • 数据中心容灾方法、装置、设备及存储介质
技术分类

06120112481545