一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种数据处理方法及装置与流程

2022-03-05 03:01:28 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,尤其涉及一种数据处理方法及装置。


背景技术:

2.远程字典服务(remote dictionary server,redis)是一种高性能的开源的 内存型键值对数据库,为保证存储效率,通常将redis服务器设置为主从构架, 例如,一主一从构架,一主多从构架等。
3.相关技术中,在主服务器发生异常,可以进行主从切换,即将从服务器作 为新的主服务器。
4.然而,若从服务器也发生异常,则无法进行主从切换,此时,为保障业务 正常访问,则需要重新启动主服务器,但是,重启会导致主服务器中的内存数 据丢失,进而导致业务故障。


技术实现要素:

5.本技术提供了一种数据同步方法及装置,用以在发生主从切换时,快速恢 复redis内存数据,缩短业务故障时长。
6.第一方面,本技术提供一种数据处理方法,应用于redis中的主服务器, 包括:
7.若监控到所述主服务器发生redis服务异常,且未发生主从切换,则获取 目标从服务器根据所述目标从服务器中存储的内存数据生成的数据备份信息, 其中,在异常发生前所述目标从服务器和所述主服务器中存储的内存数据同步, 所述数据备份信息的数据备份时间和异常发生时间之间的时长小于预设时长 门限值;
8.根据所述数据备份信息,对所述主服务器中的内存数据进行恢复。
9.第二方面,本技术提供一种数据处理装置,包括:
10.存储器,用于存储可执行指令;
11.处理器,用于读取并执行存储器中存储的可执行指令,执行下列过程:
12.若监控到redis中的主服务器发生redis服务异常,且未发生主从切换, 则获取目标从服务器根据所述目标从服务器中存储的内存数据生成的数据备 份信息,其中,在异常发生前所述目标从服务器和所述主服务器中存储的内存 数据同步,所述数据备份信息的数据备份时间和异常发生时间之间的时长小于 预设时长门限值;
13.根据所述数据备份信息,对所述主服务器中的内存数据进行恢复。
14.第三方面,本技术提供一种数据处理装置,包括:
15.获取单元,用于若监控到redis中的主服务器发生redis服务异常,且未 发生主从切换,则获取目标从服务器根据所述目标从服务器中存储的内存数据 生成的数据备份信息,其中,在异常发生前所述目标从服务器和所述主服务器 中存储的内存数据同步,所述数据备份信息的数据备份时间和异常发生时间之 间的时长小于预设时长门限值;
16.恢复单元,用于根据所述数据备份信息,对所述主服务器中的内存数据进 行恢
复。
17.第四方面,一种存储介质,当所述存储介质中的指令由处理器执行时,使 得所述处理器能够执行如上述任一项所述的数据处理方法。
18.综上所述,本技术实施例中,在异常发生前目标从服务器和主服务器中存 储的内存数据同步,若监控到redis中的主服务器发生redis服务异常,且未 发生主从切换,则获取目标从服务器生成的数据备份信息,进而根据数据备份 信息,对主服务器中的内存数据进行恢复。这样,通过获取从服务器生成的数 据备份信息,主服务器可以在发生redis服务异常,且无法进行主从切换的情 况下,根据数据备份信息,对丢失的内存数据进行恢复,从而能够最大粒度地 快速恢复业务,缩短了业务故障时长,从而提高业务稳定性。
附图说明
19.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施 例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述 中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付 出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
20.图1a为本技术实施例中提供的一种可能的应用场景示意图;
21.图1b为本技术实施例中提供的一种可能的服务器之间的交互示意图;
22.图1c为本技术实施例中提供的另一种可能的应用场景示意图;
23.图1d为本技术实施例中提供的另一种可能的服务器之间的交互示意图;
24.图2为本技术实施例中提供的一种数据处理方法的流程示意图;
25.图3为本技术实施例中提供的一种确定主服务器是否发生redis服务异常 且未发生主从切换的流程示意图;
26.图4a为本技术实施例中提供的一种服务器a和服务器b之间的交互示意 图;
27.图4b为本技术实施例中提供的另一种服务器a和服务器b之间的交互示 意图;
28.图4c为本技术实施例中提供的一种服务器a和文件服务器之间的交互示 意图;
29.图5为本技术实施例中提供的一种数据处理装置的硬件结构示意图;
30.图6为本技术实施例中提供的一种数据处理装置的硬件结构示意图;图7为本技术实施例中提供的一种数据处理装置的逻辑结构示意图。
具体实施方式
31.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术 实施例中的附图,对本技术的技术方案进行清楚、完整地描述,显然,所描述 的实施例是本技术技术方案的一部分实施例,而不是全部的实施例。基于本申 请文件中记载的实施例,本领域普通技术人员在没有作出创造性劳动前提下所 获得的所有其他实施例,都属于本技术技术方案保护的范围。
32.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用 于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使 用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了 在这里图示或描述的那些以外的顺序实施。
33.需要说明的是,本技术中对于术语的简要说明,仅是为了方便理解接下来 描述的实施方式,而不是意图限定本技术的实施方式。除非另有说明,这些术 语应当按照其普通和通常的含义理解。
34.此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖但不 排他的包含,例如,包含了一系列组件的产品或设备不必限于清楚地列出的那 些组件,而是可包括没有清楚地列出的或对于这些产品或设备固有的其它组件。
35.本技术中使用的术语“模块”,是指任何已知或后来开发的硬件、软件、 固件、人工智能、模糊逻辑或硬件或/和软件代码的组合,能够执行与该元件相 关的功能。
36.redis是一种高性能的开源的内存型键值对数据库,为保证存储效率,通 常将redis服务器设置为主从构架,例如,一主一从构架。在主节点发生redis 服务异常,可以进行主从切换,即将从节点作为新的主节点。
37.在redis中,通常基于redis-sentinel进行主从切换,redis-sentinel是redis 自带的监控管理工具,可以监控主节点以及从节点,以及自动完成故障转移。 具体的,当redis-sentinel监控到主节点因故障无法提供redis业务时, redis-sentinel可以将主节点的一个从节点切换为新的主节点,由这个新的主节 点继续进行业务处理,并通知其他从节点将新的主节点的从节点。
38.然而,若从节点也发生redis服务异常,则无法进行主从切换,此时,为 保障业务正常访问,则需要重新启动主节点,但是,重启会导致主服务器中的 内存数据丢失,进而导致业务故障。
39.相关技术中,redis可以将存储在内存的键值对数据持久化到硬盘、磁盘 等存储介质中,从而在数据丢失时,根据硬盘、磁盘等存储介质中的数据,对 内存数据进行恢复。redis提供两种持久化方式:rdb(redis database)和 aof(append only file)。本文中,rdb文件也可称为快照文件。
40.在rdb持久化方式中,按照快照生成时间间隔,生成内存数据的快照 (snapshot),对快照进行持久化,快照是指某个数据集在某一特定时刻的镜像, 也称为即时拷贝,它是这个数据集的一个完整可用的副本。而aof持久化方 式中,记录服务器执行的所有写操作命令。
41.数据持久化为redis提供了异常情况下的数据恢复机制,但是,无论是rdb 持久化方式,还是aof持久化方式,均存在开销,可能造成cpu卡顿,影响 业务处理效率。为了最大化redis性能,redis中通常由从节点进行数据持久化, 主节点进行业务处理。
42.由于rdb持久化方式中,用于业务处理的父进程可以创建一个子进程, 由子进程来负责创建rdb文件,因此,rdb可以最大化redis的性能,且rdb 文件比aof文件小的多,在大数据集的情况下,基于rdb文件的恢复速度比 基于aof文件的恢复速度快,因此,通常选用rdb方式进行持久化。rdb 持久化的配置方式为设定时间内redis数据有设定次数的变化则进行持久化, 例如,若配置save“3600 1”,则表示3600秒内redis有一次写操作则进行持 久化。
43.基于redis-sentinel进行主从切换时,由于redis中主节点和从节点之间保 持数据同步,因此,在从节点成为新的主节点,业务处理可以保持连续。但是, 在主服务器发生redis服务异常,但是主从切换失败的情况下,主节点重启导 致内存数据丢失时,主节点中
无法根据aof或者rdb文件进行数据恢复,存 在redis数据异常、业务故障等问题。
44.为了快速恢复redis内存数据,缩短业务故障时长,本技术实施例中,若 监控到redis中的主服务器发生redis服务异常,且未发生主从切换,则获取 目标从服务器生成的数据备份信息,其中,数据备份信息用于表征异常发生前 主服务器中存储的内存数据,进而根据数据备份信息,对主服务器中的内存数 据进行恢复。
45.这样,通过获取从服务器生成的数据备份信息,主服务器可以在发生redis 服务异常,且无法进行主从切换的情况下,根据数据备份信息,对丢失的内存 数据进行恢复,从而能够最大粒度地快速恢复业务,缩短了业务故障时长,从 而提高业务稳定性。
46.以下结合说明书附图对本技术的优选实施例进行说明,应当理解,此处所 描述的优选实施例仅用于说明和解释本技术,并不用于限定本技术,并且在不 冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。
47.参阅图1a所示,其为本技术实施例提供的第一种可能的应用场景示意图。 该应用场景中包括redis服务器101、redis服务器102以及流量控制服务器103。
48.其中,redis服务器101中包含redis主节点和redis服务器101的代理模 块,redis服务器101也可以称为主服务器。redis服务器101的代理模块用于 若监控到主服务器发生redis服务异常,且未发生主从切换,则通过redis服 务器102,获取目标从服务器生成的数据备份信息,进而根据数据备份信息, 对redis主节点的内存数据进行恢复。
49.redis服务器102中包含redis从节点和redis服务器102的代理模块,redis 服务器102也可以称为从服务器。redis服务器102的代理模块用于按照预设 的持久化频率,生成数据备份信息,并将数据备份信息发送给redis服务器101, 以使redis服务器101根据数据备份信息对redis主节点的内存数据进行恢复。
50.需要说明的是,本技术实施例中,在redis主节点和redis从节点初次连 接时,redis主节点与redis从节点之间可以进行全量同步,以使redis从节点 复制redis主节点中的所有内存数据。在全量同步结束后,若redis主节点中 存在缓存的写命令,则redis主节点与redis从节点之间进行增量同步,以使redis从节点与redis主节点之间保持数据同步。由于redis主节点和redis从 节点中的数据保持同步,因此,后续发生redis服务异常时,redis主节点可以 根据redis从节点生成的数据备份文件,进行内存数据恢复。
51.流量控制服务器103也可以称为redis-sentinel或redis-sentinel集群,本 申请实施例中,流量控制服务器103具体用于监控主服务器是否发生redis服 务异常,以及是否发生主从切换。通过redis-sentinel集群对redis中的主节点 和从节点进行监控,当主节点异常时可以将从节点提升为主节点。示例性的, redis-sentinel集群中包含3个及以上的redis-sentinel。
52.以数据备份为rdb文件为例,参阅图1b所示,其为本技术实施例中提供 的一种可能的各个服务器之间的交互示意图。其中,redis服务器101与redis 服务器102之间保持数据一致,redis服务器101进行业务处理,redis服务器 102进行数据持久化。
53.s111、redis服务器101监控自身是否发生redis服务异常。
54.s112、redis服务器101在redis服务异常时,向流量控制服务器103发 送主节点地址查询请求。主节点地址查询请求也可称为主服务器地址查询请求。
55.s113、redis服务器101获取流量控制服务器103返回的当前主节点的地 主。需要
说明的是,主节点的地址也可以理解为主服务器的地址。
56.s114、redis服务器101根据当前主节点的地址确定未发生主从切换。
57.s115、redis服务器101向redis服务器102发送信息获取请求。信息获 取请求中可以携带异常发生时间,也可以不携带异常发生时间,具体实施过程 参见下文。
58.s116、redis服务器101接收redis服务器102返回的rdb文件。
59.s117、redis服务器101根据rdb文件进行内存数据恢复。
60.参阅图1c所示,其为本技术实施例提供的第二种可能的应用场景示意图。 该应用场景中除redis服务器101、redis服务器102以及流量控制服务器103 之后,还包括文件服务器104。
61.redis服务器102按照预设的持久化频率,生成数据备份信息之后,将数 据备份信息上传至文件服务器104。文件服务器104中存储有各个数据备份信 息,相应的,redis服务器101的代理模块用于若监控到主服务器发生redis 服务异常,且未发生主从切换,则通过文件服务器104,获取目标从服务器生 成的数据备份信息,进而根据数据备份信息,对redis主节点的内存数据进行 恢复。
62.仍以数据备份为rdb文件为例,参阅图1d所示,其为本技术实施例中提 供的另一种可能的各个服务器之间的交互示意图。其中,redis服务器101与 redis服务器102之间保持数据一致,redis服务器101进行业务处理,redis 服务器102进行数据持久化,redis服务器102进行数据持久化的过程中,若 生成rdb文件,则将rdb文件上传至文件服务器104。
63.s121、redis服务器101监控自身是否发生redis服务异常。
64.s122、redis服务器101在redis服务异常时,向流量控制服务器103发 送主节点地址查询请求。主节点地址查询请求也可称为主服务器地址查询请求。
65.s123、redis服务器101获取流量控制服务器103返回的当前主节点的地 主。
66.s124、redis服务器101根据当前主节点的地址确定未发生主从切换。
67.s125、redis服务器101向文件服务器104发送信息获取请求。
68.s126、redis服务器101接收文件服务器104返回的rdb文件。信息获取 请求中可以携带异常发生时间,也可以不携带异常发生时间,具体实施过程参 见下文。
69.s127、redis服务器101根据rdb文件进行内存数据恢复。
70.不论是redis服务器101、redis服务器102、流量控制服务器103,还是 文件服务器104,均可以是独立的物理服务器,也可以是多个物理服务器构成 的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云 函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容 分发网络(content delivery network,cdn)、以及大数据和人工智能平台等基 础云计算服务的云服务器。
71.需要说明的是,数据备份信息可以是rdb文件,也可以是aof文件,对 此不作限制,下文中仅以rdb文件进行说明。
72.下面,以服务器a和服务器b为例,对本技术实施例进行说明。其中, 服务器a为redis中的主服务器,服务器b为redis中进行数据持久化的从服 务器,本文中,服务器b也可以称为目标从服务器。
73.参阅图2所示,其为本技术实施例中提供的一种数据处理方法的流程示意 图,应用于服务器a,具体流程如下。
74.s201、若监控到服务器a发生redis服务异常,且未发生主从切换,则获 取服务器b根据服务器b中存储的内存数据生成的rdb文件,其中,在异常 发生前服务器b和服务器a中存储的内存数据同步,rdb文件的数据备份时 间和异常发生时间之间的时长小于预设时长门限值。
75.本技术实施例中,redis服务异常可以是指因服务器a中redis服务不可 用、服务器a宕机等原因导致服务器a无法提供redis服务。
76.在监控到服务器a发生redis服务异常,且未发生主从切换的情况下,为 保持业务连续,服务器a作为主节点,为保障业务正常访问,需要重新启动主 节点,然而,主节点会因重启丢失内存数据。
77.本技术实施例中,服务器a和服务器b异常发生前保持数据一致,即在 异常发生前,服务器a中存储的内存数据和服务器b中存储的内存数据相同。
78.在服务器b进行数据持久化的过程中,服务器b可以按照预设的持久化 频率,以及配置操作数目阈值,根据自身存储的内存数据,生成rdb文件, 例如,持久化频率可以是每3600秒进行持久化,操作数目阈值为1次,即3600 内redis有一次写操作则进行持久化。
79.具体的,参阅图3所示,服务器a可以通过以下方式确定服务器a是否 发生redis服务异常,以及是否发生主从切换:
80.s301、按照预设的进程检测时间间隔,检测服务器a中是否存在redis进 程,若不存在,则确定服务器a发生redis服务异常,执行s302,否则执行 s306。
81.其中,进程检测时间间隔可以预先设置,例如,进程检测时间间隔可以是 1秒。
82.s302、通过redis-sentinel集群,获取当前主服务器的地址。
83.本技术实施例中,redis-sentinel集群可以对redis中的主节点和从节点进 行监控,当主节点异常时可以将从节点提升为主节点,因此,服务器a可以通 过redis-sentinel集群获取当前主服务器的网际协议地址(internet protocoladdress,ip)。
84.s303、判断当前主服务器的地址与服务器a的地址是否相同,若相同,则 执行s304,否则执行s305。
85.s304、确定服务器a发生redis服务异常,且未发生主从切换。
86.需要说明的是,本技术实施例中,未发生主从切换可以是指没有进行过主 从切换,也可以是指主从切换失败。
87.例如,假设服务器a的ip为0.0.0.10,当前主服务器的ip为0.0.0.10,说 明服务器a发生redis服务异常,且未发生主从切换。
88.s305、确定服务器a发生redis服务异常,且已发生主从切换。
89.例如,假设服务器a的ip为0.0.0.10,当前主服务器的ip为0.0.0.1,说 明服务器a发生redis服务异常,且已发生主从切换。
90.s306、确定服务器a未发生redis服务异常。
91.本技术实施例中,当redis进程不存在时,通过redis-sentinel集群来获取 最新的主节点的ip,与服务器a的ip进行对比,来判断服务器a异常时是否 正常进行主从切换,提高了数据恢复速度。
92.s202、根据rdb文件,对服务器a的内存数据进行恢复。
93.本技术实施例中,服务器a可以将从远程文件服务器获取的rdb文件, 放置于
redis配置的持久化文件路径中,这样,服务器a可以将获取的rdb 文件加载到内存中,实现对服务器a中的内存数据的恢复。
94.进一步的,本技术实施例中,确定服务器a发生redis服务异常,且发生 主从切换之后,作为一种可能的实现方式,服务器a可以在确定自身成为从服 务器时,修改主服务器的配置文件,修改后的配置文件表征服务器a对内存数 据进行持久化。
95.作为另一种可能的实现方式,服务器a也可以在确定自身成为从服务器时, 向redis-sentinel集群发送持久化开启指令,以实现服务器a对内存数据进行持 久化。
96.其中,服务器a发生redis服务异常且发生主从切换,包括但不限于以下 情况:
97.服务器a发生redis服务异常后,服务器a成为一个新的从服务器;
98.服务器a发生redis服务异常后,服务器a停止提供服务。
99.这样,根据redis的主从角色,若主节点成为新的从节点,那么可以开启 持久化,相应的,若从节点成为新的主节点,也可以关闭持久化,基于redis 主从角色,实现动态开启或关闭持久化,提高产品可用性。
100.进一步的,在确定自身成为从服务器之后,服务器a还可以按照预设的持 久化频率,生成各个新的数据备份信息,以及将各个新的数据备份信息上传至 文件服务器中。
101.这样,根据redis的主从角色,在主节点成为新的从节点时,可以进行及 时进行rdb文件的备份,避免数据恢复时缺少rdb文件。
102.本技术实施例中,服务器a获取服务器b生成的rdb文件时,可以通过 服务器b处获取,也可以从文件服务器中获取,下面,分别对这两种方式进行 介绍。
103.第一种方式:通过服务器b获取rdb文件。
104.作为一种可能的实现方式,参阅图4a所示,服务器a可以向服务器b发 送信息获取请求,并接收服务器b返回的rdb文件。
105.本技术实施例中,服务器b可以按照预设的持久化频率,生成各个rdb 文件。
106.作为一种示例,目标服务器中可以存储有上述各个rdb文件,为了提高 数据恢复速度,信息获取请求中可以携带异常发生时间,服务器b可以根据接 收到的异常发生时间,将各个rdb文件中,数据备份时间与异常发生时间之 间的时长最小的rdb文件,发送给服务器a。若信息获取请求中未携带异常 发生时间,服务器b还可以将最新的rdb文件发送给服务器a。相应的,服 务器a根据接收到的rdb文件对内存数据进行恢复。
107.例如,假设,异常发生时间为15时13分,服务器b中存储有rdb文件 1、rdb文件2和rdb文件3,rdb文件1、rdb文件2和rdb文件3的数 据备份时间分别为12时10分、13时13分、14时12分,显然,数据备份时 间与异常发生时间之间的时长最小的rdb文件是rdb文件3,因此,服务器 a向服务器b发送信息获取请求后,服务器b可以将rdb文件3发送给服务 器a,进而服务器a根据rdb文件3进行内存数据的恢复。下文中,仍以rdb 文件1、rdb文件2和rdb文件3为例进行说明。
108.作为另一种示例,考虑到减少存储空间的消耗,服务器b在对各个rdb 文件进行存储时,将当前生成的rdb文件,覆盖上一次生成的rdb文件,即 服务器b中仅存储有最新的rdb文件。服务器b接收到服务器a发送的信息 获取请求之后,可以直接将rdb文件发送给服务器a。相应的,服务器a接 收最新的rdb文件,进而根据最新的rdb文件对内存数据进行恢复。
109.例如,服务器b生成rdb文件2之后,将rdb文件2覆盖rdb文件1, 生成rdb文件3之后,将rdb文件3覆盖rdb文件2,服务器b接收到服 务器a发送的信息获取请求之后,可以直接将rdb文件3发送给服务器a, 相应的,服务器a可以根据接收到的rdb文件3对内存数据进行恢复。
110.作为另一种可能的实现方式,参阅图4b所示,服务器a可以接收服务器b按照设定频率发送的各个候选rdb文件,并将数据备份时间与异常发生时 间之间的时长最短的候选rdb文件,作为后续进行内存数据恢复的rdb文件。
111.例如,服务器b中存储有rdb文件1、rdb文件2和rdb文件3,rdb 文件1、rdb文件2和rdb文件3的数据备份时间分别为12时10分、13时 13分、14时12分,显然,数据备份时间与异常发生时间之间的时长最小的 rdb文件是rdb文件3,服务器a向服务器b发送信息获取请求后,服务器 b按照设定频率发送rdb文件1、rdb文件2和rdb文件3,相应的,服务 器a接收到rdb文件1、rdb文件2和rdb文件3之后,根据rdb文件3 进行内存数据的恢复。
112.第二种方式:通过文件服务器获取rdb文件。
113.作为一种可能的实现方式,参阅图4c所示,服务器b将生成的rdb文 件,上传至文件服务器,相应的,服务器a向文件数据库发送信息获取请求后, 接收文件数据库返回的rdb文件。
114.作为一种示例,文件数据库中可以存储有服务器b上传的各个rdb文件, 为了提高数据恢复速度,信息获取请求中可以携带异常发生时间,文件数据库 可以根据接收到的异常发生时间,将各个rdb文件中,数据备份时间与异常 发生时间之间的时长最小的rdb文件,发送给服务器a。若信息获取请求中 未携带异常发生时间,服务器b还可以将最新的rdb文件发送给服务器a。 相应的,服务器a根据接收到的rdb文件,对内存数据进行恢复。
115.由于文件数据库中存储各个rdb文件的情况与第一种方式中服务器b中 存储各个rdb文件的情况相同,在此不再赘述。
116.作为另一种示例,文件数据库也可以在对各个rdb文件进行存储时,将 当前生成的rdb文件,覆盖上一次生成的rdb文件,即文件数据库中仅存储 有最新的rdb文件。文件数据库接收到服务器a发送的信息获取请求之后, 可以直接将rdb文件发送给服务器a。相应的,服务器a接收最新的rdb 文件,进而根据最新的rdb文件对内存数据进行恢复。由于文件数据库中存 储最新的rdb文件的情况与第一种方式中服务器b中存储最新的rdb文件的 情况相同,在此不再赘述。
117.作为另一种可能的实现方式,服务器a可以文件数据库按照设定频率发送 的各个候选数据备份信息,并将数据备份时间与异常发生时间之间的时长最短 的候选数据备份信息,作为后续进行内存数据恢复的rdb文件。由于文件数 据库发送各个rdb文件的情况与第一种方式中服务器b中发送各个rdb文件 的情况相同,在此不再赘述。
118.需要说明的是,本技术实施例中,目标从服务器将rdb文件上传至文件 服务器的过程中,还可以上传目标从服务器的地址,这样,文件服务器可以根 据存储的目标从服务器的地址,确定目标从服务器的生成的rdb文件。
119.下面,结合一个具体实施例对本技术进行说明。
120.仍以服务器a为例,参阅图5所示,服务器a通过redis-sentinel集群, 获取当前主服务器的地址,判断当前主服务地址与服务器a的地址是否相同, 若相同,则说明服务器a
为主服务器,进而在确定服务器a不具有虚拟地址 时,为自身分配虚拟地址,以及广播虚拟地址,若不相同,则说明服务器a为 从服务器,因此,在确定服务器a具有虚拟地址时,取消为服务器a设置的 虚拟地址。
121.需要说明的是,本技术实施例中,可以由服务器a中包含的代理(agent) 模块,从redis-sentinel集群获取当前主服务器的地址。虚拟地址可以是指虚ip (vip),也可以是指域名,该虚拟地址指向redis中的主服务器,以使业务服 务可以通过虚拟地址来访问redis。比如,读业务和写业务都可以通过vip或 者域名,访问redis中的主服务器。
122.进一步的,服务器a可以按照预设的进程检测时间间隔,检测服务器器a 中是否存在redis进程。
123.在每次检测过程中,若服务器a中存在redis进程,则说明服务器a为发 生redis服务异常,进而可以通过redis-sentinel集群,获取redis状态,进而 根据redis状态,判断服务器a是否为从服务器。
124.如果服务器a是从服务器,在确定服务器a未开启持久化时,服务器a 开启持久化,如果服务器a是主服务器,在确定服务器a已开启持久化时, 服务器a关闭持久化。
125.若服务器a中不存在redis进程,则说明服务器a发生redis服务异常, 进而服务器a可以通过redis-sentinel集群,当前主服务器的地址。如果当前 主服务的地址与服务器a的地址相同,说明服务器a是主服务。然后,服务 器a通过redis-sentinel集群,确定设定切换时长内,是否进行主从切换,若 是,则通过文件服务器获取服务器b生成的rdb文件,并根据获取的rdb 文件,对服务器a中的内存数据进行恢复,否则启动redis。
126.基于同一发明构思,参阅图6所示,本技术实施例提供一种数据同步装置, 至少包括:
127.存储器601,用于存储可执行指令;
128.处理器602,用于读取并执行存储器中存储的可执行指令,执行下列过程:
129.若监控到主服务器发生redis服务异常,且未发生主从切换,则获取目标 从服务器根据所述目标从服务器中存储的内存数据生成的数据备份信息,其中, 在异常发生前所述目标从服务器和所述主服务器中存储的内存数据同步,所述 数据备份信息的数据备份时间和异常发生时间之间的时长小于预设时长门限 值;
130.根据所述数据备份信息,对所述主服务器中的内存数据进行恢复。
131.在一些实施例中,所述数据备份信息为快照文件rdb文件;
132.则根据所述数据备份信息,对所述主服务器中的内存数据进行恢复时,所 述处理器602具体用于:
133.根据所述rdb文件,对所述主服务器中的内存数据进行恢复。
134.在一些实施例中,所述获取目标从服务器生成的数据备份信息时,所述处 理器602具体用于:
135.通过所述目标从服务器获取所述数据备份信息;或者,
136.通过文件数据库获取所述数据备份信息,所述文件数据中存储的所述数据 备份信息是所述目标从服务器上传的。
137.在一些实施例中,所述通过文件数据库获取所述数据备份信息时,所述处 理器602具体用于:
138.向所述文件数据库发送信息获取请求,并接收所述文件数据库返回的所述 数据备份信息,其中,所述数据备份信息是所述目标从服务器上传的各个候选 数据备份信息中,数据备份时间与异常发生时间之间的时长最短的候选数据备 份信息;或者,
139.接收所述文件数据库按照设定频率发送的各个候选数据备份信息,并将数 据备份时间与异常发生时间之间的时长最短的候选数据备份信息,作为所述数 据备份信息。
140.在一些实施例中,所述监控到所述主服务器发生redis服务异常,且未发 生主从切换时,所述处理器602具体用于:
141.若所述主服务器中存在redis进程,则通过流量控制服务器,获取当前主 服务器的地址;
142.若当前主服务器的地址与所述主服务器的地址相同,则监控到所述主服务 器发生redis服务异常,且未发生主从切换。
143.在一些实施例中,所述处理器602还用于:
144.若当前主服务器的地址与所述主服务器的地址不同,则确定所述主服务器 发生redis服务异常,且发生主从切换;
145.确定所述主服务器成为一个从服务器时,修改所述主服务器的配置文件, 修改后的配置文件表征所述主服务器对内存数据进行持久化。
146.在一些实施例中,确定所述主服务器成为一个从服务器时,修改所述主服 务器的配置文件之后,所述处理器602还用于:
147.按照预设的持久化频率,生成各个新的数据备份信息;
148.将所述各个新的数据备份信息上传至文件服务器中。
149.收发机603,用于在处理器602的控制下接收和发送数据。
150.其中,在图6中,总线架构可以包括任意数量的互联的总线和桥,具体由 处理器602代表的一个或多个处理器和存储器601代表的存储器的各种电路链 接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的 各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进 行进一步描述。总线接口提供接口。收发机603可以是多个元件,即包括发送 机和收发机,提供用于在传输介质上与各种其他装置通信的单元。处理器602 负责管理总线架构和通常的处理,存储器601可以存储处理器602在执行操作 时所使用的数据。
151.基于同一发明构思,本技术实施例中,提供一种数据处理装置,参阅图7 所示,至少包括:获取单元701和恢复单元702。
152.获取单元701,用于若监控到主服务器发生redis服务异常,且未发生主 从切换,则获取目标从服务器根据所述目标从服务器中存储的内存数据生成的 数据备份信息,其中,在异常发生前所述目标从服务器和所述主服务器中存储 的内存数据同步,所述数据备份信息的数据备份时间和异常发生时间之间的时 长小于预设时长门限值;
153.恢复单元702,用于根据所述数据备份信息,对所述主服务器中的内存数 据进行恢复。
154.在一些实施例中,所述数据备份信息为快照文件rdb文件;则根据所述 数据备份信息,对所述主服务器中的内存数据进行恢复时,所述恢复单元702 具体用于:
155.根据所述rdb文件,对所述主服务器中的内存数据进行恢复。
156.在一些实施例中,所述获取目标从服务器生成的数据备份信息时,所述处 获取单元701具体用于:
157.通过所述目标从服务器获取所述数据备份信息;或者,
158.通过文件数据库获取所述数据备份信息,所述文件数据中存储的所述数据 备份信息是所述目标从服务器上传的。
159.在一些实施例中,所述通过文件数据库获取所述数据备份信息时,所述获 取单元701具体用于:
160.向所述文件数据库发送信息获取请求,并接收所述文件数据库返回的所述 数据备份信息,其中,所述数据备份信息是所述目标从服务器上传的各个候选 数据备份信息中,数据备份时间与异常发生时间之间的时长最短的候选数据备 份信息;或者,
161.接收所述文件数据库按照设定频率发送的各个候选数据备份信息,并将数 据备份时间与异常发生时间之间的时长最短的候选数据备份信息,作为所述数 据备份信息。
162.在一些实施例中,所述监控到所述主服务器发生redis服务异常,且未发 生主从切换时,所述获取单元701具体用于:
163.若所述主服务器中存在redis进程,则通过流量控制服务器,获取当前主 服务器的地址;
164.若当前主服务器的地址与所述主服务器的地址相同,则监控到所述主服务 器发生redis服务异常,且未发生主从切换。
165.在一些实施例中,获取单元701还用于:
166.若当前主服务器的地址与所述主服务器的地址不同,则确定所述主服务器 发生redis服务异常,且发生主从切换;
167.确定所述主服务器成为一个从服务器时,修改所述主服务器的配置文件, 修改后的配置文件表征所述主服务器对内存数据进行持久化。
168.在一些实施例中,确定所述主服务器成为一个从服务器时,修改所述主服 务器的配置文件之后,所述获取单元701还用于:
169.按照预设的持久化频率,生成各个新的数据备份信息;
170.将所述各个新的数据备份信息上传至文件服务器中。
171.基于同一发明构思,本技术实施例提供一种存储介质,当所述存储介质中 的指令由处理器执行时,使得所述处理器能够执行上述流程中数据处理装置实 现的任一项方法。
172.对于系统/装置实施例而言,由于其基本相似于方法实施例,所以描述的比 较简单,相关之处参见方法实施例的部分说明即可。
173.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将 一个实体或者一个操作与另一个实体或者另一个操作区分开来,而不一定要求 或者暗示这些实体或者操作之间存在任何这种实际的关系或者顺序。
174.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计 算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结 合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包 含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、 cd-rom、光学存储器等)上实施的计算机程序产品的形式。
175.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产 品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和 /或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/ 或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入 式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算 机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一 个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
176.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设 备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中 的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个 流程和/或方框图一个方框或多个方框中指定的功能。
177.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使 得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处 理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个 流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
178.尽管已描述了本技术的优选实施例,但本领域内的技术人员一旦得知了基 本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要 求意欲解释为包括优选实施例以及落入本技术范围的所有变更和修改。
179.显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本申 请的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及 其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献