时序数据库集群及其故障处理、操作方法、及装置与流程

文档序号:27940441发布日期:2021-12-11 13:06阅读:218来源:国知局
时序数据库集群及其故障处理、操作方法、及装置与流程

1.本技术涉及时序数据库领域,尤其涉及一种时序数据库集群及其故障处理方法、操作方法、及装置。


背景技术:

2.时序数据指时间序列数据(time series data,简称时序数据),是将同一指标的数据按时间顺序记录的数据列,普遍存在于it基础设施、运维监控系统和物联网中。相应的,时序数据库是一种特定类型的数据库,主要用来存储时序数据。
3.在实践中,实现一个时序数据库集群方案是一项非常复杂的工作,至少需要实现高可用的目标,也即,当集群中的数据节点发生故障时,集群具备自愈能力。


技术实现要素:

4.本技术提供了一种时序数据库集群及其故障处理方法、操作方法、及装置,以提高时序数据库集群的可靠性、稳定性。
5.第一方面,本技术提供了一种时序数据库集群的故障处理方法,所述时序数据库集群包括:至少一个元数据节点、多个数据节点;所述数据节点用于存储时序数据,且多个所述数据节点互为副本;所述元数据节点用于存储所述时序数据库集群的元数据,所述元数据至少包括每一个所述数据节点的主机名;所述方法包括:
6.当检测到任一所述数据节点发生故障时,新建虚拟节点;
7.将发生故障的所述数据节点的配置文件拷贝至所述虚拟节点,并将发生故障的所述数据节点的数据盘挂载至所述虚拟节点;
8.在所述时序数据库集群的主机名映射文件中,将目标映射关系中的ip地址更新为所述虚拟节点的ip地址,所述目标映射关系指发生故障的所述数据节点对应的映射关系;
9.重启所述时序数据库集群,以使所述虚拟节点替代发生故障的所述数据节点提供数据服务。
10.在一可能的实现方式中,所述时序数据库集群还包括探活组件,所述探活组件用于周期性地向各所述数据节点发送探活报文;
11.所述检测到任一所述数据节点发生故障,包括:
12.针对每一所述数据节点,若在当前的超时时间内,未接收到所述数据节点基于所述探活报文返回的应答报文,则确定所述数据节点故障,所述当前的超时时间指:以所述探活组件最近一次发送所述探活报文的时间为起始时刻,以设定时长为时长的时间段;或者,
13.针对每一所述数据节点,若在设定周期到达时,未接收到所述数据节点发送的心跳报文,则确定所述数据节点故障。
14.第二方面,本技术提供了一种时序数据库集群的操作方法,应用于第一方面任一项所述的时序数据库集群,所述方法包括:
15.当接收到数据操作请求时,从所述时序数据库集群中确定待操作的目标数据节
点;
16.从所述元数据中获取所述目标数据节点的主机名;
17.从所述主机名映射文件中确定与获取到的所述主机名对应的目标ip地址;
18.基于所述目标ip地址,在所述目标数据节点上对待操作的目标时序数据执行与所述数据操作请求对应的数据操作。
19.在一可能的实现方式中,所述从所述时序数据库集群中确定待操作的目标数据节点,包括:
20.基于所述目标时序数据的时间戳,确定所述目标时序数据所属的目标shardgroup,其中,所述时间戳位于所述目标shardgroup的起始时间和结束时间组成的时间范围内;
21.确定所述目标shardgroup包含的所有shard;
22.将与所述shard绑定的所述数据节点确定为待操作的数据节点。
23.第三方面,本技术提供了一种时序数据库集群,所述时序数据库集群至少包括:至少一个元数据节点、多个数据节点、探活组件以及虚拟节点创建组件;
24.所述数据节点,用于存储时序数据,且多个所述数据节点互为副本;
25.所述元数据节点,用于存储所述时序数据库集群的元数据,所述元数据至少包括每一个所述数据节点的主机名;
26.所述探活组件,用于检测所述数据节点的状态,所述状态包括正常和故障;
27.所述虚拟节点创建组件,用于当所述探活组件检测到任一所述数据节点发生故障时,新建虚拟节点;将发生故障的所述数据节点的配置文件拷贝至所述虚拟节点,并将发生故障的所述数据节点的数据盘挂载至所述虚拟节点;在所述时序数据库集群的主机名映射文件中,将目标映射关系中的ip地址更新为所述虚拟节点的ip地址,所述目标映射关系指发生故障的所述数据节点对应的映射关系;以及重启所述时序数据库集群,以使所述虚拟节点替代发生故障的所述数据节点提供数据服务。
28.在一可能的实现方式中,所述数据盘为云盘。
29.第四方面,本技术提供了一种时序数据库集群的故障处理装置,所述时序数据库集群包括:至少一个元数据节点、多个数据节点;所述数据节点用于存储时序数据,且多个所述数据节点互为副本;所述元数据节点用于存储所述时序数据库集群的元数据,所述元数据至少包括每一个所述数据节点的主机名;所述装置包括:
30.节点新建模块,用于当检测到任一所述数据节点发生故障时,新建虚拟节点;
31.节点配置模块,用于将发生故障的所述数据节点的配置文件拷贝至所述虚拟节点,并将发生故障的所述数据节点的数据盘挂载至所述虚拟节点;
32.映射模块,用于在所述时序数据库集群的主机名映射文件中,将目标映射关系中的ip地址更新为所述虚拟节点的ip地址,所述目标映射关系指发生故障的所述数据节点对应的映射关系;
33.重启模块,用于重启所述时序数据库集群,以使所述虚拟节点替代发生故障的所述数据节点提供数据服务。
34.第五方面,本技术提供了一种时序数据库集群的操作装置,应用于第三方面任一项所述的时序数据库集群,所述装置包括:
35.目标确定模块,用于当接收到数据操作请求时,从所述时序数据库集群中确定待操作的目标数据节点;
36.第一获取模块,用于从所述元数据中获取所述目标数据节点的主机名;
37.第二获取模块,用于从所述主机名映射文件中确定与获取到的所述主机名对应的目标ip地址;
38.数据操作模块,用于基于所述目标ip地址,在所述目标数据节点上对待操作的目标时序数据执行与所述数据操作请求对应的数据操作。
39.第六方面,本技术提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
40.存储器,用于存放计算机程序;
41.处理器,用于执行存储器上所存放的程序时,实现第一方面任一项所述的方法的步骤。
42.第七方面,本技术提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面任一项所述的方法的步骤。
43.本技术实施例提供的上述技术方案与现有技术相比具有如下优点:
44.本发明实施例提供的技术方案,通过在时序数据库集群中设置多个数据节点,在检测到任一数据节点发生故障,新建虚拟节点,将发生故障的数据节点的配置文件拷贝至虚拟节点,并将发生故障的数据节点的数据盘挂载至虚拟节点,使得新建的虚拟节点能够替代发生故障的原数据节点提供数据服务,从而实现故障迁移,使得时序数据库集群高可用;进一步的,由于在建立时序数据库集群时,使用主机名来配置参与创建集群的节点,以及故障迁移后,新建虚拟节点的主机名沿用原数据节点的主机名,因此可以实现在上述故障迁移时,无需对时序数据库集群的元数据做出更改,从而能够提高时序数据库集群故障迁移的效率,且由于时序数据库集群的元数据保持稳定,因此,能够提高时序数据库集群的可靠性、稳定性。
附图说明
45.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
46.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
47.图1为本技术实施例提供的一种时序数据库集群的架构示意图;
48.图2为本技术实施例提供的一种时序数据库集群的故障处理方法的流程示意图;
49.图3为本技术实施例提供的一种时序数据库集群的操作方法的流程示意图;
50.图4为本技术实施例提供的一种时序数据库集群的故障处理装置的示意图;
51.图5为本技术实施例提供的一种时序数据库集群的操作装置的示意图;
52.图6为本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
53.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术的一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
54.图1为本技术实施例提供的一种时序数据库集群的架构示意图。如图1所示的时序数据库集群10中包括元数据节点101、数据节点102~104、探活组件105,以及虚拟节点创建组件106。
55.其中,元数据节点101用于存储时序数据库集群的元数据,这里,元数据可包括但不限于:元数据节点信息、数据节点信息、时序数据库信息等。本技术实施例中,节点信息至少包括节点的主机名,可选的,还可包括节点的ip地址、别名等。这也就意味着,本技术实施例中,在建立图1所示例的时序数据库集群10时,参与创建集群的节点,至少是通过主机名来配置的。例如,如下所示,为数据节点配置文件的示例:
56.hostname="cluster.influxdb.238"
57.[clusterx]
[0058]
#cluster node
[0059]
#joins="10.69.58.54:8091,10.69.32.214:8091,10.69.32.51:8091"
[0060]
joins="cluster.influxdb.54:8091,cluster.influxdb.214:8091,cluster.influxdb.51:8091"
[0061]
上述配置文件中,hostname为数据节点的主机名,joins为时序数据库集群10中,除主机名为“cluster.influxdb.238”的数据节点以外,其他三个节点的节点信息,可包括主机名和ip地址。
[0062]
进一步的,时序数据库集群还具有主机名映射文件。主机名映射文件也称/etc/host文件,是一个负责ip地址与主机名(或者域名)快速解析的文件,以ascii格式保存在/etc/目录下。主机名映射文件包含了ip地址与主机名之间的映射,还可包括主机的别名,对时序数据库集群的访问,都通过查询主机名映射文件来解析得到对应与某个主机名的ip地址,从而实现快速方便的访问。例如,如下所示,为主机名映射文件的示例:
[0063]
10.69.58.54cluster.influxdb.54
[0064]
10.69.32.214cluster.influxdb.214
[0065]
10.69.32.51cluster.influxdb.51
[0066]
10.69.32.238cluster.influxdb.238
[0067]
数据节点102~104互为副本,都用于存储时序数据。可以理解的是,图1所示例的时序数据库集群通过采用多副本的形式存储时序数据,可以提高数据可靠性,进一步提高时序数据库集群的稳定性、可靠性。
[0068]
进一步的,数据节点通过挂载数据盘提供时序数据存储服务。可选的,该数据盘为云盘。可以理解的是,通过设置数据盘为云盘,可以大大降低数据节点本地的存储空间。
[0069]
需要说明的是,在实践中,时序数据库集群可包括至少一个元数据节点,多个数据节点,图1中仅以包括一个元数据节点,三个数据节点为例。以及,元数据节点和数据节点可为同一节点,也即,节点既用于存储时序数据,也用于存储时序数据库集群的元数据,图1中
仅以元数据节点和数据节点相独立为例。此外,在时序数据库集群包括两个或两个以上的元数据节点时,两个或两个以上的元数据节点互为备份,通过该种设置,可以提高元数据可靠性,进一步提高时序数据库集群的稳定性、可靠性。
[0070]
探活组件105,用于检测时序数据库集群中节点的状态,本技术实施例中主要检测数据节点的状态,这里,节点的状态包括正常和故障。至于探活组件105是如何检测节点状态的,在下文图2所示实施例中具有详细说明,这里先不详述。
[0071]
虚拟节点创建组件106,用于在探活组件105检测到任一数据节点发生故障时,新建虚拟节点,并使得新建的虚拟节点能够替代发生故障的原数据节点提供数据服务。这里,数据服务包括但不限于:数据存储服务、数据查询服务等。
[0072]
作为一个可选的实现方式,虚拟节点创建组件106具体可为trove组件,至于虚拟节点创建组件106是如何使得新建的虚拟节点能够替代发生故障的原数据节点提供数据服务的,在下文图2所示实施例中具有详细说明,这里先不详述。
[0073]
图2为本技术实施例提供的一种时序数据库集群的故障处理方法的流程示意图,这里所说的时序数据库集群可以是图1所示例的时序数据库集群10。如图2所示,包括以下步骤:
[0074]
步骤201、当检测到任一数据节点发生故障时,新建虚拟节点。
[0075]
作为一个实施例,在图1所示例的集群架构中,探活组件105可周期性地向每一个数据节点发送探活报文,正常情况下,数据节点接收到探活报文后,可向探活组件105返回应答报文。基于此,若探活组件105在当前的超时时间内,接收到数据节点基于探活报文返回的应答报文,则可确定该数据节点正常;反之,若探活组件105在当前的超时时间内,未接收到数据节点基于探活报文返回的应答报文,则可确定该数据节点故障。这里,当前的超时时间是指:以探活组件最近一次发送探活报文的时间为起始时刻,以设定时长(例如1秒)为时长的时间段。
[0076]
作为另一个实施例,每一数据节点可按照设定周期,向探活组件105发送心跳报文,也即,在正常情况下,数据节点可周期性地向探活组件105发送心跳报文,相应的,正常情况下,探活组件105可每隔该设定周期,则接收到各数据节点发送的心跳报文。基于此,若探活组件105在设定周期到达时,接收到数据节点发送的心跳报文,则可确定该数据节点正常;反之,若探活组件105在设定周期到达时,未接收到数据节点发送的心跳报文,则可确定该数据节点故障。
[0077]
此外,需要说明的是,探活组件105上维护有时序数据库集群中每一数据节点的节点信息,例如主机名、ip地址等,基于此,探活组件105能够向每一数据节点发送探活报文,进而根据接收到的应答报文确定每一数据节点的状态,或者,能够根据接收到心跳报文确定每一数据节点的状态。
[0078]
本技术实施例中,当检测到任一数据节点发生故障时,可针对发生故障的数据节点新建虚拟节点,以使得新建的虚拟节点能够替代发生故障的数据节点来提供数据服务。此处需要注意的是,新建的虚拟节点的数量大于等于发生故障的数据节点的数量,也就是说,针对每一发生故障的数据节点,至少新建一个虚拟节点。
[0079]
步骤202、将发生故障的数据节点的配置文件拷贝至虚拟节点,并将发生故障的数据节点的数据盘挂载至虚拟节点。
[0080]
本技术实施例中,在针对发生故障的数据节点新建虚拟节点之后,将发生故障的数据节点的配置文件拷贝至虚拟节点,以使新建的虚拟节点沿用原数据节点的配置文件,以及,将发生故障的数据节点的数据盘挂载至虚拟节点。此处需要注意的是,新建的虚拟节点沿用原数据节点的配置文件,也就意味着,新建的虚拟节点沿用原数据节点的主机名。
[0081]
例如,在图1所示集群架构中,假设数据节点102发生故障,新建虚拟节点102’,将数据节点102的配置文件拷贝至虚拟节点102’,并将数据节点102挂载的云盘挂载至虚拟节点102’。通过该种处理,则相当于将原数据节点102上的时序数据迁移至新建的虚拟节点102’。
[0082]
步骤203、在时序数据库集群的主机名映射文件中,将目标映射关系中的ip地址更新为虚拟节点的ip地址,目标映射关系指发生故障的数据节点对应的映射关系。
[0083]
可以理解的是,新建虚拟节点的ip地址与发生故障的原数据节点的ip地址是不同的,因此,为使新建的虚拟节点能够替代发生故障的原数据节点,在时序数据库集群的主机名映射文件中,将发生故障的数据节点对应的映射关系(以下称目标对应关系)中的ip地址更新为新建的虚拟节点的ip地址。例如,假设主机名为“cluster.influxdb.238”的数据节点发生故障,且针对该数据节点新建的虚拟节点的ip地址为10.69.32.235,则将上述举例的主机名映射文件中的10.69.32.238cluster.influxdb.238更新为10.69.32.235cluster.influxdb.238。
[0084]
步骤204、重启时序数据库集群,以使虚拟节点替代发生故障的数据节点提供数据服务。
[0085]
本技术实施例中,在执行完上述步骤201~203之后,重启时序数据库集群,可以使虚拟节点生效,从而使虚拟节点替代发生故障的数据节点提供数据服务。
[0086]
本发明实施例提供的技术方案,通过在时序数据库集群中设置多个数据节点,在检测到任一数据节点发生故障,新建虚拟节点,将发生故障的数据节点的配置文件拷贝至虚拟节点,并将发生故障的数据节点的数据盘挂载至虚拟节点,使得新建的虚拟节点能够替代发生故障的原数据节点提供数据服务,从而实现故障迁移,使得时序数据库集群高可用;进一步的,由于在建立时序数据库集群时,使用主机名来配置参与创建集群的节点,以及故障迁移后,新建虚拟节点的主机名沿用原数据节点的主机名,因此可以实现在上述故障迁移时,无需对时序数据库集群的元数据做出更改,从而能够提高时序数据库集群故障迁移的效率,且由于时序数据库集群的元数据保持稳定,因此,能够提高时序数据库集群的可靠性、稳定性。
[0087]
图3为本技术实施例提供的一种时序数据库集群的操作方法的流程示意图,这里所说的时序数据库集群可以是图1所示例的时序数据库集群10。如图3所示,包括以下步骤:
[0088]
步骤301、当接收到数据操作请求时,从时序数据库集群中确定待操作的目标数据节点。
[0089]
步骤302、从元数据中获取目标数据节点的主机名。
[0090]
步骤303、从主机名映射文件中确定与获取到的主机名对应的目标ip地址。
[0091]
步骤304、基于目标ip地址,在目标数据节点上对待操作的目标时序数据执行与数据操作请求对应的数据操作。
[0092]
本技术实施例中,数据操作请求对应的数据操作可以为数据查询操作或者数据写
入操作,待操作的目标时序数据则可以为待查询的时序数据或待写入的时序数据。据此,分别从数据操作请求对应的数据操作为数据查询操作和数据写入操作对上述步骤301~304的详细实现进行说明。
[0093]
首先,在数据操作请求对应的数据操作为数据查询操作时,对上述步骤301~304的详细实现进行说明:
[0094]
时序数据库集群可具有一个负载均衡器,客户端或者其他设备发送至时序数据库集群的数据操作请求首先到达该负载均衡器。负载均衡器在接收到数据操作请求后,将数据操作请求发送至其中一个数据节点。数据节点在启动时,可从元数据节点上拉取时序数据库集群的元数据。
[0095]
如上所述,元数据中可包括时序数据库信息,据此,数据节点在接收到数据操作请求时,先判断待查询的数据库是否存在,如果存在,则根据待查询数据的时间戳,确定待查询数据所属的shardgroup。如下所示,为shardgroup的结构体:
[0096]
typeshardgroupinfostruct{
[0097]
idunit64//自增id,唯一标识shardgroup
[0098]
starttimetime.time//起始时间
[0099]
endtimetime.time//结束时间
[0100]
deletedattime.time//删除的时间
[0101]
shards[]shardinfo//shardgroup中shard的信息,例如shardid
[0102]
}
[0103]
基于上述所示的shardgroup的结构体,在确定待查询数据所属的shardgroup后,可以确定待查询数据对应的所有shardid,进而确定shardid所绑定的数据节点id,该数据节点id对应的数据节点则为待操作的数据节点(以下称为目标数据节点)。
[0104]
若目标数据节点为本数据节点(也即上述接收到数据操作请求的数据节点),则本数据节点可在本地执行数据查询操作;若目标数据节点不为本数据节点,则本数据节点可进一步从元数据中获取到目标数据节点的节点信息。本技术实施例中,节点信息至少包括节点的主机名,因此,本数据节点能够从元数据中获取到目标数据节点的主机名。
[0105]
进一步的,主机名映射文件中存储有主机名和ip地址的映射关系,因此,本数据节点在从元数据的节点信息中获取到主机名之后,可从主机名映射文件中确定与获取到的主机名对应的目标ip地址,也即目标数据节点的ip地址。之后,将数据操作请求发送给该目标ip地址对应的目标数据节点,以在目标数据节点上执行数据查询操作。
[0106]
此外,数据节点在执行数据查询操作后,将查询到的数据发送至负载均衡器,由负载均衡器将数据转发至客户端。需要说明的是,在上述目标数据节点的数目多于1个时,负载均衡器在接收到各个目标数据节点查询到的数据后,先进行合并,然后再将合并后的数据转发至客户端。
[0107]
其次,在数据操作请求对应的数据操作为数据写入操作时,对上述步骤301~304的详细实现进行说明:
[0108]
与上述数据查询操作类似,负载均衡器在接收到数据操作请求后,将数据操作请求发送至其中一个数据节点,数据节点在接收到数据操作请求时,先判断待写入的数据库是否存在,如果存在,则根据待写入数据的时间戳计算出待写入数据所属的shardgroup。这
里,分两种情况:
[0109]
情况一、当待写入数据所属的shardgroup存在时,则可根据该shardgroup的结构体确定其包含的所有shard,进而根据shard id与数据节点id之间的绑定关系,确定每个shard对应的数据节点,也即待操作的目标数据节点。
[0110]
若目标数据节点不为本数据节点,则本数据节点可进一步从元数据中获取到目标数据节点的节点信息。本技术实施例中,节点信息至少包括节点的主机名,因此,本数据节点能够从元数据中获取到目标数据节点的主机名。
[0111]
进一步的,主机名映射文件中存储有主机名和ip地址的映射关系,因此,本数据节点在从元数据的节点信息中获取到主机名之后,可从主机名映射文件中确定与获取到的主机名对应的目标ip地址,也即目标数据节点的ip地址。之后,将数据操作请求发送给该目标ip地址对应的目标数据节点,以在目标数据节点上执行数据查询操作。
[0112]
当然,若目标数据节点id为本数据节点,则可直接在本数据节点上执行数据写入操作。
[0113]
需要说明的是,数据节点在执行数据写入操作成功后,可向客户端返回数据写入成功的指示消息。客户端在接收到n个数据节点发送的指示消息后,则可确定数据写入成功,反之,在接收到低于n个数据节点发送的指示消息后,可确定数据写入失败。在确定数据写入失败时,客户端可在间隔设定时间后,再次向时序数据库集群发送数据操作请求,以再次请求向时序数据库集群写入数据。这里,n大于等于待写入数据对应的副本数目

1。
[0114]
情况二、当待写入数据所属的shardgroup不存在时,则新建一个shardgroup,该shardgroup的起始时间为待写入数据的时间戳,结束时间为起始时间加上设定的时间跨度,同时新建shard id以及确定需要绑定的数据节点。至于后续操作,可参见上述描述,这里不再赘述。
[0115]
需要说明的是,上述shard id所需要绑定的数据节点的数目由待写入数据对应的副本数目决定。例如,待写入数据的副本数目为3,则shard id需要绑定3个数据节点。
[0116]
本技术实施例提供的技术方案,通过当接收到数据操作请求时,从元数据中获取待操作的目标数据节点的主机名,从主机名映射文件中确定与获取到的主机名对应的目标ip地址,基于目标ip地址,在目标数据节点上,对待操作的目标时序数据执行与数据操作请求对应的数据操作,实现了在建立时序数据库集群时,使用主机名来配置参与创建集群的节点的情况下,对时序数据库集群进行数据操作,并且,由于在故障迁移时,也无需对时序数据库集群的元数据做出更改,因此,时序数据库集群的元数据能够保持稳定,使得时序数据库集群高可用。
[0117]
图4为本技术实施例提供的一种时序数据库集群的故障处理装置的示意图,这里所说的时序数据库集群可以是图1所示例的时序数据库集群10。如图4所示,该装置包括:
[0118]
节点新建模块41,用于当检测到任一所述数据节点发生故障时,新建虚拟节点;
[0119]
节点配置模块42,用于将发生故障的所述数据节点的配置文件拷贝至所述虚拟节点,并将发生故障的所述数据节点的数据盘挂载至所述虚拟节点;
[0120]
映射模块43,用于在所述时序数据库集群的主机名映射文件中,将目标映射关系中的ip地址更新为所述虚拟节点的ip地址,所述目标映射关系指发生故障的所述数据节点对应的映射关系;
[0121]
重启模块44,用于重启所述时序数据库集群,以使所述虚拟节点替代发生故障的所述数据节点提供数据服务。
[0122]
在一可能的实现方式中,所述时序数据库集群还包括探活组件,所述探活组件用于周期性地向各所述数据节点发送探活报文;所述装置还包括(图中未示出):故障检测模块;
[0123]
所述故障检测模块具体用于:
[0124]
针对每一所述数据节点,若在当前的超时时间内,未接收到所述数据节点基于所述探活报文返回的应答报文,则确定所述数据节点故障,所述当前的超时时间指:以所述探活组件最近一次发送所述探活报文的时间为起始时刻,以设定时长为时长的时间段;或者,
[0125]
针对每一所述数据节点,若在设定周期到达时,未接收到所述数据节点发送的心跳报文,则确定所述数据节点故障。
[0126]
图5为本技术实施例提供的一种时序数据库集群的操作装置的示意图,这里所说的时序数据库集群可以是图1所示例的时序数据库集群10。如图5所示,该装置包括:
[0127]
目标确定模块51,用于当接收到数据操作请求时,从所述时序数据库集群中确定待操作的目标数据节点;
[0128]
第一获取模块52,用于从所述元数据中获取所述目标数据节点的主机名;
[0129]
第二获取模块53,用于从所述主机名映射文件中确定与获取到的所述主机名对应的目标ip地址;
[0130]
数据操作模块54,用于基于所述目标ip地址,在所述目标数据节点上对待操作的目标时序数据执行与所述数据操作请求对应的数据操作。
[0131]
在一可能的实现方式中,所述目标确定模块51从所述时序数据库集群中确定待操作的目标数据节点,包括:
[0132]
基于所述目标时序数据的时间戳,确定所述目标时序数据所属的目标shardgroup,其中,所述时间戳位于所述目标shardgroup的起始时间和结束时间组成的时间范围内;
[0133]
确定所述目标shardgroup包含的所有shard;
[0134]
将与所述shard绑定的所述数据节点确定为待操作的数据节点。
[0135]
如图6所示,本技术实施例提供提供了一种电子设备,包括处理器611、通信接口612、存储器613和通信总线614,其中,处理器611,通信接口612,存储器613通过通信总线614完成相互间的通信,
[0136]
存储器613,用于存放计算机程序;
[0137]
在本技术一个实施例中,处理器611,用于执行存储器613上所存放的程序时,实现前述方法实施例提供的时序数据库集群的故障处理方法,包括:
[0138]
当检测到任一所述数据节点发生故障时,新建虚拟节点;
[0139]
将发生故障的所述数据节点的配置文件拷贝至所述虚拟节点,并将发生故障的所述数据节点的数据盘挂载至所述虚拟节点;
[0140]
在所述时序数据库集群的主机名映射文件中,将目标映射关系中的ip地址更新为所述虚拟节点的ip地址,所述目标映射关系指发生故障的所述数据节点对应的映射关系;
[0141]
重启所述时序数据库集群,以使所述虚拟节点替代发生故障的所述数据节点提供
数据服务。
[0142]
或者,实现前述方法实施例提供的时序数据库集群的操作方法,包括:
[0143]
当接收到数据操作请求时,从所述时序数据库集群中确定待操作的目标数据节点;
[0144]
从所述元数据中获取所述目标数据节点的主机名;
[0145]
从所述主机名映射文件中确定与获取到的所述主机名对应的目标ip地址;
[0146]
基于所述目标ip地址,在所述目标数据节点上对待操作的目标时序数据执行与所述数据操作请求对应的数据操作。
[0147]
本技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前述任意一个方法实施例提供的时序数据库集群的故障处理方法或者时序数据库集群的操作方法的步骤。
[0148]
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0149]
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1