CN110399249A - 一种数据容灾方法及相关装置 - Google Patents
一种数据容灾方法及相关装置 Download PDFInfo
- Publication number
- CN110399249A CN110399249A CN201910484237.4A CN201910484237A CN110399249A CN 110399249 A CN110399249 A CN 110399249A CN 201910484237 A CN201910484237 A CN 201910484237A CN 110399249 A CN110399249 A CN 110399249A
- Authority
- CN
- China
- Prior art keywords
- data
- details
- revealing
- requesting instructions
- disaster tolerance
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000013500 data storage Methods 0.000 claims abstract description 22
- 238000004590 computer program Methods 0.000 claims description 3
- 230000002159 abnormal effect Effects 0.000 abstract description 19
- 238000010586 diagram Methods 0.000 description 12
- 238000012545 processing Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 4
- 238000009877 rendering Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000002203 pretreatment Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请公开了一种数据容灾方法及相关装置,可以对兜底数据进行实时更新,在后台服务器发生异常故障时,能够为用户终端提供较为准确的数据,提高用户体验。本申请方法包括:接收用户终端的第一数据请求指令,其中,第一数据请求指令携带索引参数;若从后台服务器中获取到目标数据,则根据索引参数和目标数据构建兜底数据;将兜底数据储存至本地缓存,将兜底数据储存至远程数据库;当接收第二数据请求指令时,若未从后台服务器中获取到目标数据,则根据索引参数在本地缓存中或远程数据库中获取兜底数据,以向用户终端发送兜底数据,其中,第二数据请求指令携带索引参数。
Description
技术领域
本申请涉及后台服务技术领域,尤其涉及一种数据容灾方法及相关装置。
背景技术
随着信息化技术的飞速发展,信息***在各种行业的关键业务中扮演者越来越重要的角色。在通讯、金融、医疗、电子商务、物流、政府等领域,信息***业务中断会导致巨大经济损失、影响品牌形象并可能导致重要数据丢失。因此,保证业务连续性是信息***建设的关键。而近年来,由于大范围自然灾害时常发生,为保障业务连续性,可靠的数据容灾方案越来越得到业界的重视和认可。
现有的数据容灾方案包含多种类型的方法,最常用的为容灾兜底数据方法,后台工作人员通常在后台服务器上预置容灾兜底数据。当用户终端向后台服务器发送数据请求后,后台服务器在确认与数据请求相应的接口存在异常后,则通过另一备用接口将预置容灾兜底数据发送至用户终端,以渲染相应的页面。
然而,由于预置容灾兜底数据是提前固定的,无法进行更新或更新缓慢,导致其在用户终端相应显示的内容无法与用户的需求相呼应,进而使得用户的体验不佳。
发明内容
本申请实施例提供了一种数据容灾方法及相关装置,能够对兜底数据进行实时更新,在后台服务器发生异常故障时,为用户终端提供较为准确的数据,提高用户体验。
有鉴于此,本申请实施例的第一方面提供一种对象控制的方法,包括:
接收用户终端的第一数据请求指令,其中,所述第一数据请求指令携带索引参数;
若从后台服务器中获取到目标数据,则根据所述索引参数和所述目标数据构建兜底数据;
将所述兜底数据储存至本地缓存,将所述兜底数据储存至远程数据库;
当接收第二数据请求指令时,若未从所述后台服务器中获取到所述目标数据,则根据所述索引参数在所述本地缓存中或所述远程数据库中获取所述兜底数据,以向所述用户终端发送所述兜底数据,其中,所述第二数据请求指令携带所述索引参数。
本申请实施例的第二方面提供了一种数据容灾装置,包括:
接收模块,用于接收用户终端的第一数据请求指令,其中,所述第一数据请求指令携带索引参数;
构建模块,用于若从后台服务器中获取到目标数据,则根据所述索引参数和所述目标数据构建兜底数据;
存储模块,用于将所述兜底数据储存至本地缓存,将所述兜底数据储存至远程数据库;
第一发送模块,用于当接收第二数据请求指令时,若未从所述后台服务器中获取到所述目标数据,则根据所述索引参数在所述本地缓存中或所述远程数据库中获取所述兜底数据,以向所述用户终端发送所述兜底数据,其中,所述第二数据请求指令携带所述索引参数。
基于第二方面,本申请实施例还提供了第二方面的第一种实施方式:
所述索引参数为在所述第一数据请求指令或所述第二数据请求指令的统一资源定位符中,用于表征所述目标数据的字段。
基于第二方面的第一种实施方式,本申请实施例还提供了第二方面的第二种实施方式:
所述构建模块还用于根据所述用于表征所述目标数据的字段构建第一缓存关键字,将所述第一缓存关键字和所述目标数据组成键值结构的兜底数据。
基于第二方面的第二种实施方式,本申请实施例还提供了第二方面的第三种实施方式:
所述第一发送模块还用于:
当接收第二数据请求指令时,若未从所述后台服务器中获取到所述目标数据,则根据所述用于表征所述目标数据的字段构建第二缓存关键字;
若根据所述第二缓存关键字在所述本地缓存中获取到所述兜底数据,则向所述用户终端发送所述兜底数据;
若根据所述第二缓存关键字未在所述本地缓存中获取到所述兜底数据,则根据所述第二缓存关键字在所述远程数据库中获取所述兜底数据;
若根据所述第二缓存关键字在所述远程数据库中获取到所述兜底数据,则向所述用户终端发送所述兜底数据;
基于第二方面的第一种实施方式、第二种实施方式或第三种实施方式,本申请实施例还提供了第二方面的第四种实施方式:
所述数据容灾装置还包括:
第二发送模块,用于:
根据所述用于表征所述目标数据的字段构建第三缓存关键字;
若根据所述第三缓存关键字未在所述本地缓存中获取到所述兜底数据,则根据所述第三缓存关键字在所述远程数据库中获取所述兜底数据;
若根据所述第三缓存关键字未在所述远程数据库中获取到所述兜底数据,则向所述用户终端发送预置备用数据。
基于第二方面的第四种实施方式,本申请实施例还提供了第二方面的第五种实施方式:
所述预置备用数据为预置接口异常错误码或预置容灾兜底数据。
本申请实施例的第三方面提供了一种数据容灾设备,包括:存储器、收发器、处理器以及总线***;
其中,所述存储器用于存储程序;
所述处理器用于执行所述存储器中的程序,包括如下步骤:
接收用户终端的第一数据请求指令,其中,所述第一数据请求指令携带索引参数;
若从后台服务器中获取到目标数据,则根据所述索引参数和所述目标数据构建兜底数据;
将所述兜底数据储存至本地缓存,将所述兜底数据储存至远程数据库;
当接收第二数据请求指令时,若未从所述后台服务器中获取到所述目标数据,则根据所述索引参数在所述本地缓存中或所述远程数据库中获取所述兜底数据,以向所述用户终端发送所述兜底数据,其中,所述第二数据请求指令携带所述索引参数;
所述总线***用于连接所述存储器以及所述处理器,以使所述存储器以及所述处理器进行通信。
本申请实施例的第四方面一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行第一方面所述的方法。
本申请实施例的第五方面一种包含指令的计算机程序产品,当其在计算机或处理器上运行时,使得计算机或处理器执行第五方面所述的方法。
从以上技术方案可以看出,本申请实施例具有以下优点:
本申请实施例提供了一种数据容灾方法及相关装置,其中,该方法在首次成功将后台服务器的目标数据返回至用户终端后,则将目标数据和数据请求指令中的索引参数包装成兜底数据,若再次接收相同的数据请求指令,一旦后台服务器发生故障异常时,则可以根据数据请求指令中的索引参数获取兜底数据,返回至用户终端以渲染相应的页面供用户使用,由于本申请实施例中兜底数据可以进行实时更新,在后台服务器发生异常故障时,能够为用户终端提供较为准确的数据,提高用户体验。
附图说明
图1为现有技术中接口异常时目标视频的详情页面的示意图;
图2为本申请实施例提供的一种数据容灾***的一个架构示意图;
图3为本申请实施例中数据容灾方法的一个实施例的流程示意图;
图4为本申请实施例提供的一种数据容灾方法的应用例示意图;
图5为本申请实施例中数据容灾装置的一个实施例的结构示意图;
图6为本申请实施例中数据容灾装置的另一个实施例的结构示意图;
图7是本申请实施例提供的一种数据容灾设备的结构示意图。
具体实施方式
本申请实施例提供了一种数据容灾方法及相关装置,能够对兜底数据进行实时更新,在后台服务器发生异常故障时,为用户终端提供较为准确的数据,提高用户体验。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“对应于”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应理解,本申请应用于大型应用开发场景,如用户可以通过Web访问应用程序,在用户侧只需安装浏览器即可,不需再安装其他软件,又如用户可以预先安装应用软件,进而直接访问该应用软件,以获取所需的信息。具体的,为方便说明,以下均以用户直接访问应用软件作为示例进行介绍。
用户在用户终端启动某个应用软件后,当输入数据获取指令时,后台服务器可以返回与该指令相应的数据,进而在应用软件上渲染出页面以供用户使用。更进一步地,上述场景具体如:用户通过用户终端上进行网上购物,用户能够在目标物品的详情页上获取该物品的具体信息,同时也可以在该详情页面上获取与目标物品关联的其余近似物品的信息,又如用户通过用户终端进行视频观看,用户能够在目标视频的详情页上获取该视频的具体信息,也可以在该详情页面上获取与目标视频关联的其余推荐视频的信息等等,类似场景不再一一列举。
在现有技术中,后台服务器通常设置有多个页面数据接口,如当用户在用户终端通过视频软件进行视频观看时,该视频软件对应的后台服务器上所设置的接口可以包括:首页接口、详情页接口、列表页接口、搜索页接口、频道索引接口等等。在用户访问目标视频的详情页时,通常不仅会显示目标视频的信息,在页面下方的相关栏会显示与目标视频相关联的视频信息,然而,当后台服务器上用于显示该详情页的接口发生异常时,则需要进行数据容灾。
如图1所示,当后台服务器的关联视频接口发生异常时,现有的数据容灾方案是在后台服务器中预置有备份视频数据(如某段时间前热搜视频的数据),然后通过备用接口将该备份视频数据返回至用户终端进行渲染,因此,在视频详情页的相关栏处,本应显示与目标视频相关的视频,最终显示成过往热搜榜上的视频,无法与目标视频形成高相关联系,用户在观看完目标视频后,难以进行更优的视频选择。故现有技术由于容灾兜底数据是提前预置的,无法及时进行更新,导致用户体验较差。
有鉴于此,本申请实施例提供了一种数据容灾方法,能够对兜底数据进行实时更新,在后台服务器发生异常故障时,为用户终端提供较为准确的数据,提高用户体验。
为了便于理解,本申请提出了一种数据容灾方法,该方法应用于图2所示的数据容灾***,请参阅图2,图2为本申请实施例中数据容灾***的一个架构示意图,如图2所示,数据容灾***包括:用户终端201、数据容灾装置202和后台服务器203。
用户终端201通过数据容灾装置202与后台服务器203通信连接。
在本申请实施例中,用户终端包含但不仅限于平板电脑、笔记本电脑、掌上电脑及手机等,此处不做限定。用户可通过用户终端启动应用软件,如观看视频的视频软件,在点击某个目标视频后,即相当于输入数据请求指令,可以跳转至目标视频的详情页以获取目标视频的信息。
应理解,用户终端接收输入数据请求指令后,将该指令发送至数据容灾装置202,数据容灾装置202可以为兜底服务器,需要说明的是,兜底服务器的数量可以为至少两个,即用户终端201可以同时与多台兜底服务器通信连接,每台兜底服务器上均设置有本地缓存,用于存储一定量的数据。此外,每台兜底服务器还与远程数据库204通信连接,远程数据库可以作为兜底服务器本地缓存的备用,且通常为远程redis集群。
兜底服务器内包含Cache逻辑层,该逻辑层上设置有接口名称、后台服务器IP和超时时间等参数,其中,接口名称和后台服务器IP可用于在兜底服务器接收数据请求指令后,确定请求某台后台服务器的某个接口,超时时间用于兜底服务器在等待某段时间后,若未获取到后台服务器返回的数据,则确定接口异常。
在接收数据请求指令后,可以从后台服务器203获取与该数据请求指令对应的目标数据,在获取成功后,则可以将该目标数据进行包装得到兜底数据。当用户再次需求该目标数据时,若后台服务器203的接口发生异常,兜底服务器则可以将该兜底数据返回至用户终端,实现数据容灾。
以上是对本申请实施例提供的一种数据容灾***的***框架进行的具体介绍,以下将对本申请实施例提供的一种数据容灾方法进行说明,请参阅图3,本申请实施例提供的一种数据容灾方法的一个实施例,包括:
301、接收用户终端的第一数据请求指令;
在本实施例中,当用户需要获取目标数据时,可以向用户终端输入第一数据请求指令,其中,第一数据请求指令携带索引参数,应理解,该索引参数与存储在后台服务器中的目标参数相对应。此后,数据容灾装置接收用户终端发送的第一数据请求指令,并从后台服务器中尝试获取目标数据。
302、若从后台服务器中获取到目标数据,则根据索引参数和目标数据构建兜底数据;
数据容灾装置若从后台服务器中获取到目标数据,则根据第一数据请求指令中的索引参数和目标数据构建兜底参数。可以理解的是,由于兜底数据是根据索引参数和目标数据构建的,故兜底数据与索引参数之间存在索引关系,数据容灾装置可以根据索引参数迅速找到相应的兜底数据。
303、将兜底数据储存至本地缓存,将兜底数据储存至远程数据库;
得到兜底数据后,数据容灾装置可以将兜底数据储存至数据容灾装置的本地缓存,并将兜底数据储存至远程数据库。
需要说明的是,由于用户终端连接的数据容灾装置有多台,若处理用户终端的第一数据请求指令的装置为数据容灾装置A,数据容灾装置A在后台服务器请求目标数据成功后,则根据索引参数和目标参数构建兜底参数,并储存在数据容灾装置A的本地缓存中。当用户终端发送第二数据请求指令(与第一数据请求指令携带相同的索引参数)时,处理第二数据请求指令的装置可能为数据容灾装置B,而数据容灾装置B的本地缓存未储存有与第一数据请求指令对应的兜底数据,若后台服务器接口存在异常,通过数据容灾装置B的本地缓存则无法完成数据容灾。因此,在进行兜底数据储存时,可以将兜底数据储存至远程数据库,防止上述情况发生。
304、当接收第二数据请求指令时,若未从后台服务器中获取到目标数据,则根据索引参数在本地缓存中或远程数据库中获取兜底数据,以向用户终端发送兜底数据。
当数据容灾装置接收用户终端发送的第二数据请求指令时,由于第二数据请求指令携带与第一数据请求指令相同的索引参数,因此,数据容灾装置会从后台服务器中再次请求目标数据,当后台服务器的相应接口存在异常时,数据容灾装置无法从后台服务器中获取到目标数据,则根据第二数据请求指令的索引参数在本地缓存中或远程数据库中获取兜底数据,以向用户终端发送兜底数据完成页面渲染,供用户使用,完成数据容灾。
本实施例在首次成功将后台服务器的目标数据返回至用户终端后,则将目标数据和数据请求指令中的索引参数包装成兜底数据,若再次接收相同的数据请求指令,一旦后台服务器发生故障异常时,则可以根据数据请求指令中的索引参数获取兜底数据,返回至用户终端以渲染相应的页面供用户使用,由于本申请实施例中兜底数据可以进行实时更新,在后台服务器发生异常故障时,能够为用户终端提供较为准确的数据,提高用户体验。
在本申请实施例中,当用户通过用户终端请求后台服务器的接口时,则需要发送数据请求指令至兜底服务器,再由兜底服务器转发至后台服务器。应理解,本实施例中的第一数据请求指令或第二数据请求指令可以为各种协议下的请求指令,如HTTP请求指令、HTTPS请求指令等等,因此,第一数据请求指令和第二数据请求指令在网路资源访问中通常是以统一资源定位符URL进行表示的。由于URL可以指向后台服务器的目标数据,因此可通过URL中的索引参数在后台服务器中获取目标数据,而URL的组成通常包含模式(或称协议)、服务器名称(或IP地址)、路径和文件名,故本申请实施例中的索引参数可以在URL的组成部分中进行选择。
可选的,基于图3对应的实施例,本申请实施例提供的数据容灾方法的第一个可选实施例中,索引参数为在第一数据请求指令或第二数据请求指令的统一资源定位符URL中,用于表征目标数据的字段。应理解,本实施例中,用于表征目标数据的字段可以为目标数据的文件名中所包含的信息,如目标数据为某个视频的详情页时,用于表征该视频详情页的字段通常包括:产线、渠道、版本、语言id、影片id等,由于目标数据为某部电视剧的首页时,用于表征该电视剧首页的字段通常包括:产线、渠道、版本、语言id、频道id、是否支持付费等。由于用于表征目标数据的字段可以用于准确索引目标数据,因此,兜底数据中包含用于表征目标数据的字段,当用户需要再次请求目标数据且后台服务器接收发生异常时,兜底服务器可以通过第二数据请求指令中用于表征目标数据的字段在本地缓存或远程服务器中准确获取兜底数据,返回用户终端以进行页面渲染。
更进一步地,兜底数据包含用于表征目标数据的字段和目标数据,可以为各种各样的数据结构,此处不一一列举。为了增加容灾方案的操作便捷性,可以选择键值结构(KV结构)的数据作为用于容灾的兜底数据。可选的,基于上述第一个可选实施例,本申请实施例提供的数据容灾方法的第二个可选实施例中,根据索引参数和目标数据构建兜底数据具体包括:
根据用于表征目标数据的字段构建第一缓存关键字;
将第一缓存关键字和目标数据组成键值结构的兜底数据。
在本实施例中,先根据用于表征目标数据的字段构建第一缓存关键字,依旧如上述视频详情页为目标数据的例子作为说明,用于表征该视频详情页的字段包括产线、渠道、版本、语言id、影片id等,选择其中不可替代的字段,如版本、语言id和影片id构建第一缓存关键字[版本]_[语言id]_[影片id],然后将第一缓存关键字和目标数据组成键值结构的兜底数据,分别存入本地缓存和远程数据库中。
应理解,兜底服务器在接收用户终端的第一数据请求后,且成功从后台服务器中获取目标数据(即首次成功获取目标数据)则可以将根据用于表征目标数据的字段构建第一缓存关键字,将第一缓存关键字和目标数据组成键值结构的兜底数据,以分别储存至远程数据库和兜底服务器的本地缓存中,可以在用户终端再次请求该目标数据时,若后台服务器接口异常,进行数据容灾。
更进一步地,当兜底服务器无法从后台服务器中获取目标数据时,则需要从本地缓存或远程数据库中获取兜底数据,兜底服务器内通常设置有兜底数据获取规则,该规则确定了兜底服务器在本地缓存或远程数据库中获取兜底数据的顺序,如兜底服务器同时向本地缓存和远程数据库请求兜底数据,将先获取到的兜底数据进行使用,又如仅从远程服务器中直接获取兜底数据,再如仅从本地缓存中直接获取兜底数据等,为了充分利用远程服务器和各个兜底服务器的本地缓存所提供的存储资源,可选的,基于上述第二个可选实施例,本申请实施例提供的数据容灾方法的第三个可选实施例中,根据索引参数在本地缓存中或远程数据库中获取兜底数据,以向用户终端发送兜底数据包括:
根据用于表征目标数据的字段构建第二缓存关键字;
若根据第二缓存关键字在本地缓存中获取到兜底数据,则向用户终端发送兜底数据;
若根据第二缓存关键字未在本地缓存中获取到兜底数据,则根据第二缓存关键字在远程数据库中获取兜底数据;
若根据第二缓存关键字在远程数据库中获取到兜底数据,则向用户终端发送兜底数据。
应理解,由于第二数据请求指令中存在和第一数据请求指令相同的用于表征目标数据的字段,为了快速获取兜底数据,首先需要构建第二缓存关键字,构建过程如同第二个可选实施例中构建第一缓存关键字的过程,此处不再赘述。
本实施例提供了一种较优的兜底数据获取规则,当前的兜底服务器在接收到第二数据请求指令且确定后台服务器接口异常后,则优先在本地缓存中获取兜底数据,若本地缓存存在兜底数据(说明处理第一数据请求指令的兜底服务器为当前的兜底服务器),则向用户终端发送兜底数据,以完成页面渲染。
若本地缓存不存在兜底数据(说明处理第一数据请求指令的兜底服务器并非当前的兜底服务器),则从远程数据库中获取兜底数据,由于之前处理第一数据请求指令的兜底服务器成功获取目标数据,因此远程数据库中储存有兜底数据,故当前的兜底服务器可以成功从远程数据库中获取兜底数据,并向用户终端发送兜底数据,以完成页面渲染。在该兜底数据获取规则下,能够充分分配和调用本地缓存和远程数据库的资源,提高容灾方案的可行性。
可选的,基于图3对应的实施例,本申请实施例提供的数据容灾方法的第四个可选实施例中,在接收用户终端的第一数据请求指令后,若未从后台服务器中获取到目标数据之后还包括:
根据用于表征目标数据的字段构建第三缓存关键字;
若根据第三缓存关键字未在本地缓存中获取到兜底数据,则根据第三缓存关键字在远程数据库中获取兜底数据;
若根据第三缓存关键字未在远程数据库中获取到兜底数据,则向用户终端发送预置备用数据。
本实施例中,当兜底服务器接收用户终端的第一数据请求指令后,且后台服务器接口存在异常,导致兜底服务器无法获取目标数据,此时也应进行数据容灾。由于第一数据请求指令中存在用于表征目标数据的字段,为了快速获取兜底数据,首先需要构建第三缓存关键字,构建过程如同第二个可选实施例中构建第一缓存关键字的过程,此处不再赘述。接下来获取兜底数据的过程如同上述第三个可选实施例的兜底数据获取规则,然而,由于在兜底服务器接收用户终端的第一数据请求指令之前,远程数据库和任何一个兜底服务器的本地缓存均未储存有该目标数据对应的兜底数据,因此,从本地缓存、远程数据库中兜底服务器均无法成功获取兜底数据,此时则向用户终端发送预置备用数据。需要说明的是,预置备用数据为工作人员提前在各个兜底服务器中设置的备用数据,其内容可以有多种,当用户终端接收到该预置备用数据时,则可以渲染得到工作人员提前设置的页面,但该页面与目标数据对应的页面可能存在一定的差异。
可选的,预置备用数据为预置接口异常错误码或预置容灾兜底数据,可以理解的是,当为预置接口异常错误码时,用户终端得到的页面为显示错误码的页面,当为预置容灾兜底数据时,用户终端得到页面是具备一定显示内容的页面,如视频、图片等。本实施例中,当兜底服务器未存储有兜底数据时,则可以通过备用的数据进行容灾,使得本实施例提供的容灾方案进一步完善和全面。
以下将以一应用例对本申请实施例提供的一种数据容灾方法进行更为具体的说明,图4为本申请实施例提供的一种数据容灾方法的应用例示意图,请参阅图4,需要说明的是,该应用例的执行主体为兜底服务器,该应用例具体包括:
401、接收用户终端发送的详情页请求指令;
402、从后台服务器中获取详情页数据;
若成功获取,则执行404,若无法成功获取,则执行403。
403、提取详情页请求指令中的参数,构建缓存关键字;
需要说明的是,执行完403,则执行405。
404、发送详情页数据至用户终端,提取详情页请求指令中的参数,构建缓存关键字;
需要说明的是,执行完404,则执行409。
405、判断本地缓存是否存在具有该缓存关键字的兜底数据;
若有,则执行407,若无,则执行406。
406、判断远程数据库是否存在具有该缓存关键字的兜底数据;
若有,则执行407,若无,则执行408。
407、提取兜底数据,发送至用户终端;
408、发送预置备用数据;
409、将缓存关键字和详情页数据包装成兜底数据;
410、将兜底数据写入本地缓存和远程数据库。
本申请实施例在首次成功将后台服务器的目标数据返回至用户终端后,则将目标数据和数据请求指令中的索引参数包装成兜底数据,若再次接收相同的数据请求指令,一旦后台服务器发生故障异常时,则可以根据数据请求指令中的索引参数获取兜底数据,返回至用户终端以渲染相应的页面供用户使用,由于本申请实施例中兜底数据可以进行实时更新,在后台服务器发生异常故障时,能够为用户终端提供较为准确的数据,提高用户体验。
以上是对本申请实施例提供的一种数据容灾方法进行的具体说明,以下将对本申请实施例提供的一种数据容灾装置的结构和连接关系进行介绍,图5为本申请实施例中数据容灾装置的一个实施例的结构示意图,请参阅图5,该实施例包括:
接收模块501,用于接收用户终端的第一数据请求指令,其中,第一数据请求指令携带索引参数;
构建模块502,用于若从后台服务器中获取到目标数据,则根据索引参数和目标数据构建兜底数据;
存储模块503,用于将兜底数据储存至本地缓存,将兜底数据储存至远程数据库;
第一发送模块504,用于当接收第二数据请求指令时,若未从后台服务器中获取到目标数据,则根据索引参数在本地缓存中或远程数据库中获取兜底数据,以向用户终端发送兜底数据,其中,第二数据请求指令携带索引参数。
基于图5对应的实施例,请参阅图6,本申请实施例提供的数据容灾装置的第一个可选实施例中,包括:接收模块601、构建模块602、存储模块603和第一发送模块604,需要说明的是,接收模块601、构建模块602、存储模块603和第一发送模块604和上述实施例中的接收模块501、构建模块502、存储模块503和第一发送模块504功能一致,本实施例中不再赘述。
更进一步地,索引参数为在第一数据请求指令或第二数据请求指令的统一资源定位符中,用于表征目标数据的字段。
更进一步地,构建模块602还用于根据用于表征目标数据的字段构建第一缓存关键字,将第一缓存关键字和目标数据组成键值结构的兜底数据。
更进一步地,第一发送模块604还用于:
当接收第二数据请求指令时,若未从后台服务器中获取到目标数据,则根据用于表征目标数据的字段构建第二缓存关键字;
若根据第二缓存关键字在本地缓存中获取到兜底数据,则向用户终端发送兜底数据;
若根据第二缓存关键字未在本地缓存中获取到兜底数据,则根据第二缓存关键字在远程数据库中获取兜底数据;
若根据第二缓存关键字在远程数据库中获取到兜底数据,则向用户终端发送兜底数据;
更进一步地,数据容灾装置还包括:
第二发送模块605,用于:
根据用于表征目标数据的字段构建第三缓存关键字;
若根据第三缓存关键字未在本地缓存中获取到兜底数据,则根据第三缓存关键字在远程数据库中获取兜底数据;
若根据第三缓存关键字未在远程数据库中获取到兜底数据,则向用户终端发送预置备用数据。
更进一步地,预置备用数据为预置接口异常错误码或预置容灾兜底数据。
本申请实施例在首次成功将后台服务器的目标数据返回至用户终端后,则将目标数据和数据请求指令中的索引参数包装成兜底数据,若再次接收相同的数据请求指令,一旦后台服务器发生故障异常时,则可以根据数据请求指令中的索引参数获取兜底数据,返回至用户终端以渲染相应的页面供用户使用,由于本申请实施例中兜底数据可以进行实时更新,在后台服务器发生异常故障时,能够为用户终端提供较为准确的数据,提高用户体验。
图7是本申请实施例提供的一种数据容灾设备的结构示意图,该数据容灾设备700可因配置或性能不同而产生比较大的差异,可以包括一个或一个以***处理器(centralprocessing units,CPU)722(例如,一个或一个以上处理器)和存储器732,一个或一个以上存储应用程序742或数据744的存储介质730(例如一个或一个以上海量存储设备)。其中,存储器732和存储介质730可以是短暂存储或持久存储。存储在存储介质730的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器722可以设置为与存储介质730通信,在数据容灾设备700上执行存储介质730中的一系列指令操作。
数据容灾设备700还可以包括一个或一个以上电源726,一个或一个以上有线或无线网络接口750,一个或一个以上输入输出接口758,和/或,一个或一个以上操作***741,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述图3所对应的实施例以及各个可选实施例中由数据容灾装置所执行的步骤可以基于该图7所示的数据容灾设备结构。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述数据容灾方法。
本申请实施例还涉及一种包含指令的计算机程序产品,当其在计算机或处理器上运行时,使得计算机或处理器执行上述数据容灾方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
1.一种数据容灾方法,其特征在于,包括:
接收用户终端的第一数据请求指令,其中,所述第一数据请求指令携带索引参数;
若从后台服务器中获取到目标数据,则根据所述索引参数和所述目标数据构建兜底数据;
将所述兜底数据储存至本地缓存,将所述兜底数据储存至远程数据库;
当接收第二数据请求指令时,若未从所述后台服务器中获取到所述目标数据,则根据所述索引参数在所述本地缓存中或所述远程数据库中获取所述兜底数据,以向所述用户终端发送所述兜底数据,其中,所述第二数据请求指令携带所述索引参数。
2.根据权利要求1所述的数据容灾方法,其特征在于,所述索引参数为在所述第一数据请求指令或所述第二数据请求指令的统一资源定位符中,用于表征所述目标数据的字段。
3.根据权利要求2所述的数据容灾方法,其特征在于,所述根据所述索引参数和所述目标数据构建兜底数据具体包括:
根据所述用于表征所述目标数据的字段构建第一缓存关键字;
将所述第一缓存关键字和所述目标数据组成键值结构的兜底数据。
4.根据权利要求3所述的数据容灾方法,其特征在于,所述根据所述索引参数在所述本地缓存中或所述远程数据库中获取所述兜底数据,以向所述用户终端发送所述兜底数据包括:
根据所述用于表征所述目标数据的字段构建第二缓存关键字;
若根据所述第二缓存关键字在所述本地缓存中获取到所述兜底数据,则向所述用户终端发送所述兜底数据;
若根据所述第二缓存关键字未在所述本地缓存中获取到所述兜底数据,则根据所述第二缓存关键字在所述远程数据库中获取所述兜底数据;
若根据所述第二缓存关键字在所述远程数据库中获取到所述兜底数据,则向所述用户终端发送所述兜底数据。
5.根据权利要求2至4任意一项所述的数据容灾方法,其特征在于,在接收用户终端的第一数据请求指令后,若未从后台服务器中获取到目标数据之后还包括:
根据所述用于表征所述目标数据的字段构建第三缓存关键字;
若根据所述第三缓存关键字未在所述本地缓存中获取到所述兜底数据,则根据所述第三缓存关键字在所述远程数据库中获取所述兜底数据;
若根据所述第三缓存关键字未在所述远程数据库中获取到所述兜底数据,则向所述用户终端发送预置备用数据。
6.根据权利要求5所述的数据容灾方法,其特征在于,所述预置备用数据为预置接口异常错误码或预置容灾兜底数据。
7.一种数据容灾装置,其特征在于,包括:
接收模块,用于接收用户终端的第一数据请求指令,其中,所述第一数据请求指令携带索引参数;
构建模块,用于若从后台服务器中获取到目标数据,则根据所述索引参数和所述目标数据构建兜底数据;
存储模块,用于将所述兜底数据储存至本地缓存,将所述兜底数据储存至远程数据库;
发送模块,用于当接收第二数据请求指令时,若未从所述后台服务器中获取到所述目标数据,则根据所述索引参数在所述本地缓存中或所述远程数据库中获取所述兜底数据,以向所述用户终端发送所述兜底数据,其中,所述第二数据请求指令携带所述索引参数。
8.一种数据容灾设备,其特征在于,包括:存储器、收发器、处理器以及总线***;
其中,所述存储器用于存储程序;
所述处理器用于执行所述存储器中的程序,包括如下步骤:
接收用户终端的第一数据请求指令,其中,所述第一数据请求指令携带索引参数;
若从后台服务器中获取到目标数据,则根据所述索引参数和所述目标数据构建兜底数据;
将所述兜底数据储存至本地缓存,将所述兜底数据储存至远程数据库;
当接收第二数据请求指令时,若未从所述后台服务器中获取到所述目标数据,则根据所述索引参数在所述本地缓存中或所述远程数据库中获取所述兜底数据,以向所述用户终端发送所述兜底数据,其中,所述第二数据请求指令携带所述索引参数;
所述总线***用于连接所述存储器以及所述处理器,以使所述存储器以及所述处理器进行通信。
9.一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行权利要求1至6中任意一项所述的方法。
10.一种包含指令的计算机程序产品,当其在计算机或处理器上运行时,使得计算机或处理器执行权利要求1至6中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910484237.4A CN110399249A (zh) | 2019-06-04 | 2019-06-04 | 一种数据容灾方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910484237.4A CN110399249A (zh) | 2019-06-04 | 2019-06-04 | 一种数据容灾方法及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110399249A true CN110399249A (zh) | 2019-11-01 |
Family
ID=68323042
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910484237.4A Pending CN110399249A (zh) | 2019-06-04 | 2019-06-04 | 一种数据容灾方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110399249A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111290804A (zh) * | 2020-02-20 | 2020-06-16 | 广州市百果园信息技术有限公司 | 一种业务配置***以及业务配置方法、装置和配置服务器 |
CN111404754A (zh) * | 2020-03-23 | 2020-07-10 | 北京九州云动科技有限公司 | 接口的容灾方法、装置和设备 |
CN112256984A (zh) * | 2020-10-22 | 2021-01-22 | 上海悦易网络信息技术有限公司 | 一种网页对应的接口托底截图的获取方法及设备 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6128627A (en) * | 1998-04-15 | 2000-10-03 | Inktomi Corporation | Consistent data storage in an object cache |
CN1975683A (zh) * | 2006-09-21 | 2007-06-06 | 上海交通大学 | 计算机网络数据恢复的方法 |
CN103516736A (zh) * | 2012-06-20 | 2014-01-15 | 中兴通讯股份有限公司 | 分布式缓存***的数据恢复方法及装置 |
CN103793290A (zh) * | 2012-10-31 | 2014-05-14 | 腾讯科技(深圳)有限公司 | 一种容灾***及其数据读取方法 |
CN103873307A (zh) * | 2014-04-11 | 2014-06-18 | 北京极科极客科技有限公司 | 用于pppoe用户名和密码备份和还原的方法 |
CN104636218A (zh) * | 2013-11-15 | 2015-05-20 | 腾讯科技(深圳)有限公司 | 数据恢复方法及装置 |
CN104813276A (zh) * | 2012-11-26 | 2015-07-29 | 亚马逊科技公司 | 从备份***流式恢复数据库 |
CN104881334A (zh) * | 2015-02-06 | 2015-09-02 | 北京飞杰信息技术有限公司 | 缓存数据的防掉电保护方法及*** |
CN105487942A (zh) * | 2015-11-30 | 2016-04-13 | 上海爱数信息技术股份有限公司 | 一种基于重复数据删除的备份与远程复制方法 |
CN105704789A (zh) * | 2014-11-25 | 2016-06-22 | 中兴通讯股份有限公司 | 一种恢复网络连接的方法及装置 |
CN107508700A (zh) * | 2017-08-15 | 2017-12-22 | 北京小米移动软件有限公司 | 容灾方法、装置、设备及存储介质 |
-
2019
- 2019-06-04 CN CN201910484237.4A patent/CN110399249A/zh active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6128627A (en) * | 1998-04-15 | 2000-10-03 | Inktomi Corporation | Consistent data storage in an object cache |
CN1975683A (zh) * | 2006-09-21 | 2007-06-06 | 上海交通大学 | 计算机网络数据恢复的方法 |
CN103516736A (zh) * | 2012-06-20 | 2014-01-15 | 中兴通讯股份有限公司 | 分布式缓存***的数据恢复方法及装置 |
CN103793290A (zh) * | 2012-10-31 | 2014-05-14 | 腾讯科技(深圳)有限公司 | 一种容灾***及其数据读取方法 |
CN104813276A (zh) * | 2012-11-26 | 2015-07-29 | 亚马逊科技公司 | 从备份***流式恢复数据库 |
CN104636218A (zh) * | 2013-11-15 | 2015-05-20 | 腾讯科技(深圳)有限公司 | 数据恢复方法及装置 |
CN103873307A (zh) * | 2014-04-11 | 2014-06-18 | 北京极科极客科技有限公司 | 用于pppoe用户名和密码备份和还原的方法 |
CN105704789A (zh) * | 2014-11-25 | 2016-06-22 | 中兴通讯股份有限公司 | 一种恢复网络连接的方法及装置 |
CN104881334A (zh) * | 2015-02-06 | 2015-09-02 | 北京飞杰信息技术有限公司 | 缓存数据的防掉电保护方法及*** |
CN105487942A (zh) * | 2015-11-30 | 2016-04-13 | 上海爱数信息技术股份有限公司 | 一种基于重复数据删除的备份与远程复制方法 |
CN107508700A (zh) * | 2017-08-15 | 2017-12-22 | 北京小米移动软件有限公司 | 容灾方法、装置、设备及存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111290804A (zh) * | 2020-02-20 | 2020-06-16 | 广州市百果园信息技术有限公司 | 一种业务配置***以及业务配置方法、装置和配置服务器 |
CN111404754A (zh) * | 2020-03-23 | 2020-07-10 | 北京九州云动科技有限公司 | 接口的容灾方法、装置和设备 |
CN112256984A (zh) * | 2020-10-22 | 2021-01-22 | 上海悦易网络信息技术有限公司 | 一种网页对应的接口托底截图的获取方法及设备 |
CN112256984B (zh) * | 2020-10-22 | 2022-09-30 | 上海万物新生环保科技集团有限公司 | 一种网页对应的接口托底截图的获取方法及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7827166B2 (en) | Handling dynamic URLs in crawl for better coverage of unique content | |
CN103221951B (zh) | 预测查询建议高速缓存 | |
CN110221872A (zh) | 页面跳转方法、装置、电子设备和存储介质 | |
CN109582903B (zh) | 一种信息展示的方法、装置、设备和存储介质 | |
US20140249964A1 (en) | System and method for gathering ecommerce data | |
CN110399249A (zh) | 一种数据容灾方法及相关装置 | |
CN105260299A (zh) | 软件测试方法、装置及*** | |
US20110231778A1 (en) | Customizing content displayed for a user based on user preferences of another user | |
CN105027121A (zh) | 对本机应用的应用页面建索引 | |
CN104025084B (zh) | 历史浏览会话管理 | |
CN110275983A (zh) | 交通监控数据的检索方法及装置 | |
SG190645A1 (en) | System and method for tracking usage | |
CN102306171A (zh) | 一种用于提供网络访问建议和网络搜索建议的方法与设备 | |
US20190182208A1 (en) | Apparatus and method for correlating addresses of different internet protocol versions | |
CN106687949A (zh) | 本地应用的搜索结果 | |
CN111797134A (zh) | 分布式数据库的数据查询方法、装置和存储介质 | |
CN107203470B (zh) | 页面调试方法和装置 | |
CN103812906B (zh) | 一种网址推荐方法、装置和通信*** | |
CN106471497A (zh) | 使用上下文的辅助浏览 | |
CN107797918A (zh) | 测试方法和测试装置 | |
CN111931100A (zh) | 请求处理***、方法、装置、电子设备和计算机可读介质 | |
CN110196759A (zh) | 分布式事务处理方法和装置、存储介质及电子装置 | |
CN102436509B (zh) | 在移动终端进行网页浏览的方法及*** | |
CN110515631B (zh) | 应用安装数据包的生成方法、服务器及计算机存储介质 | |
CN108958855B (zh) | 页面跳转的方法、装置及*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |