CN112306989A - 数据库实例的处理方法及装置、存储介质、电子装置 - Google Patents
数据库实例的处理方法及装置、存储介质、电子装置 Download PDFInfo
- Publication number
- CN112306989A CN112306989A CN202011157936.7A CN202011157936A CN112306989A CN 112306989 A CN112306989 A CN 112306989A CN 202011157936 A CN202011157936 A CN 202011157936A CN 112306989 A CN112306989 A CN 112306989A
- Authority
- CN
- China
- Prior art keywords
- database instance
- abnormal
- target database
- preset time
- index data
- 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
- 238000003672 processing method Methods 0.000 title abstract description 8
- 230000002159 abnormal effect Effects 0.000 claims abstract description 138
- 238000000034 method Methods 0.000 claims abstract description 42
- 230000015556 catabolic process Effects 0.000 claims description 43
- 238000006731 degradation reaction Methods 0.000 claims description 43
- 238000012545 processing Methods 0.000 claims description 25
- 238000004590 computer program Methods 0.000 claims description 10
- 238000005516 engineering process Methods 0.000 abstract description 4
- 230000006870 function Effects 0.000 description 9
- 238000012544 monitoring process Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 241000700189 Hystrix <Rodentia> Species 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- 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/21—Design, administration or maintenance of databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据库实例的处理方法及装置、存储介质、电子装置,涉及计算机领域,该方法包括:获取预设时间段内将第一指标数据写入目标数据库实例时出现的第一异常次数,其中,所述第一异常次数表示写入失败的次数或写入所述第一指标数据的耗时超过预设时长的次数;基于所述第一异常次数确定是否对所述目标数据库实例进行服务降级。通过本发明,解决了相关技术中因分布式服务***中任意数据库实例写入异常导致影响***上其他节点工作的技术问题。
Description
技术领域
本发明涉及计算机领域,尤其是一种数据库实例的处理方法及装置、存储介质、电子装置。
背景技术
目前,随着大数据的业务发展,监控时序数据越来越多,通过将时序数据分发到对应的Influxdb(时序数据库实例)进行存储,以便进行监控。但是在实际运行的过程中遇到了写入某一个Influxdb实例时出现延迟会导致整体写入延迟,使用Grafana(一种时序数据展示工具)查看监控数据也会出现延迟,报警***由于数据延迟导致大量的误报。
相关技术中,Hystrix(熔断器)针对依赖的延迟和故障进行防护和控制,隔离故障的影响范围,维持应用的可用性,并且提供告警。原理上记录请求调用的成功数和失败数等,配置自己所能忍受的服务出错阈值和响应能够容忍的超时时间,根据调用的基础信息对自己服务进行降级熔断来保护***。然而Hystrix是单台机器,它只能配置自身的服务出错阈值以及能容忍的超时时间,不清楚其他机器上的服务,无法实现分布式服务***的统一配置。
针对相关技术中存在的上述问题,目前尚未发现有效的解决方案。
发明内容
本发明实施例所要解决的一个技术问题是相关技术中因分布式服务***中任意数据库实例写入异常导致影响***上其他节点工作的技术问题。本发明实施例提供了一种数据库实例的处理方法及装置、存储介质、电子装置。
根据本发明的一个实施例,提供了一种数据库实例的处理方法,包括:获取预设时间段内将第一指标数据写入目标数据库实例时出现的第一异常次数,其中,所述第一异常次数表示写入失败的次数或写入所述第一指标数据的耗时超过预设时长的次数;基于所述第一异常次数确定是否对所述目标数据库实例进行服务降级。
可选的,所述获取预设时间段内将第一指标数据写入目标数据库实例时出现的第一异常次数包括:确定所述预设时间段内写入所述第一指标数据的时间戳以及所述目标数据库实例的唯一编码;根据所述时间戳和所述唯一编码生成唯一键名;确定所述唯一键名对应的计数值;对所述预设时间段内的计数值进行求和,得到所述第一异常次数。
可选的,若所述第一异常次数表示写入失败的次数,所述基于所述第一异常次数确定是否对所述目标数据库实例进行服务降级,包括:将所述第一异常次数与第一预设值进行比较,其中,所述第一预设值是基于所述预设时间段和写入失败的历史次数设定的;若所述第一异常次数大于或等于所述第一预设值,则将所述目标数据库实例作为异常数据库实例,并对所述目标数据库实例进行服务降级。
可选的,若所述第一异常次数表示写入所述第一指标数据的耗时超过预设时长的次数,所述基于所述第一异常次数确定是否对所述目标数据库实例进行服务降级,包括:将所述第一异常次数与第二预设值进行比较,其中,所述第二预设值是基于所述预设时间段和写入所述第一指标数据的耗时超过预设时长的历史次数设定的;若所述第一异常次数大于或等于所述第二预设值,则将所述目标数据库实例作为异常数据库实例,并对所述目标数据库实例进行服务降级。
可选的,在对所述目标数据库实例进行服务降级之后,所述方法还包括:检测下一个预设时间段内将第二指标数据写入所述目标数据库实例的第二异常次数;若所述第二异常次数表示写入失败的次数,若所述第二异常次数大于或等于所述第一预设值,则持续对所述目标数据库实例进行服务降级;若所述第二异常次数小于所述第一预设值,则恢复所述目标数据库实例的服务等级;或,若所述第二异常次数表示写入所述第二指标数据的耗时超过预设时长的次数,若所述第二异常次数大于或等于所述第二预设值,则持续对所述目标数据库实例进行服务降级;若所述第二异常次数小于所述第二预设值,则恢复所述目标数据库实例的服务等级。
可选的,在对所述目标数据库实例进行服务降级之后,所述方法还包括:屏蔽报警消息,其中,所述报警消息为所述目标数据库实例的代理***向客户端发出的告警信息,用于指示所述目标数据库实例为异常的数据库实例。
根据本发明的又一个实施例,还提供了一种数据库实例的处理装置,包括:获取模块,用于获取预设时间段内将第一指标数据写入目标数据库实例时出现的第一异常次数,其中,所述第一异常次数表示写入失败的次数或写入所述第一指标数据的耗时超过预设时长的次数;确定模块,用于基于所述第一异常次数确定是否对所述目标数据库实例进行服务降级。
可选的,所述获取模块包括:第一确定单元,用于确定所述预设时间段内写入所述第一指标数据的时间戳以及所述目标数据库实例的唯一编码;生成单元,用于根据所述时间戳和所述唯一编码生成唯一键名;第二确定单元,用于确定所述唯一键名对应的计数值;计算单元,用于对所述预设时间段内的计数值进行求和,得到所述第一异常次数。
可选的,当所述第一异常次数表示写入失败的次数时,所述确定模块包括:第一比较单元,用于将所述第一异常次数与第一预设值进行比较,其中,所述第一预设值是基于所述预设时间段和写入失败的历史次数设定的;第一处理单元,用于当所述第一异常次数大于或等于所述第一预设值时,将所述目标数据库实例作为异常数据库实例,并对所述目标数据库实例进行服务降级。
可选的,当所述第一异常次数表示写入所述第一指标数据的耗时超过预设时长的次数时,所述确定模块包括:第二比较单元,用于将所述第一异常次数与第二预设值进行比较,其中,所述第二预设值是基于所述预设时间段和写入所述第一指标数据的耗时超过预设时长的历史次数设定的;第二处理单元,用于当所述第一异常次数大于或等于所述第二预设值时,将所述目标数据库实例作为异常数据库实例,并对所述目标数据库实例进行服务降级。
可选的,所述装置还包括:检测模块,用于在对所述目标数据库实例进行服务降级之后,检测下一个预设时间段内将第二指标数据写入所述目标数据库实例的第二异常次数;处理模块,用于若所述第二异常次数表示写入失败的次数,当所述第二异常次数大于或等于所述第一预设值时,持续对所述目标数据库实例进行服务降级;当所述第二异常次数小于所述第一预设值时,恢复所述目标数据库实例的服务等级;或,若所述第二异常次数表示写入所述第二指标数据的耗时超过预设时长的次数,当所述第二异常次数大于或等于所述第二预设值时,持续对所述目标数据库实例进行服务降级;当所述第二异常次数小于所述第二预设值时,恢复所述目标数据库实例的服务等级。
可选的,所述装置还包括:屏蔽模块,用于在对所述目标数据库实例进行服务降级之后,屏蔽报警消息,其中,所述报警消息为所述目标数据库实例的代理***向客户端发出的告警信息,用于指示所述目标数据库实例为异常的数据库实例。
根据本发明的又一个实施例,还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
根据本发明的又一个实施例,还提供了一种计算机存储介质,所述计算机存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项装置实施例中的步骤。
通过本发明实施例,获取预设时间段内将第一指标数据写入目标数据库实例时出现的写入失败的次数或写入成功但写入耗时超过预设时长的次数,基于第一异常次数确定是否对目标数据库实例进行服务降级,不仅能够实现对分布式数据库实例的代理***的统一维护调用请求记录的信息,在任意数据库实例出现写入异常时,能够及时对故障实例进行服务降级,通过隔离该故障实例来避免影响分布式数据库实例的代理***上其他节点的工作,解决了相关技术中因分布式数据库实例的代理***中任意数据库实例写入异常而影响***上其他节点工作的技术问题,提高了数据库实例的代理***的工作效率以及工作性能。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
构成说明书的一部分的附图描述了本发明的实施例,并且连同描述一起用于解释本发明的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本发明,其中:
图1是根据本发明实施例的一种数据库实例的处理方法的流程图;
图2是根据本发明一具体实施例提供的一种数据库实例的处理流程图;
图3是根据本发明实施例的数据库实例的处理装置的结构框图;
图4是根据本申请一实施例的电子设备的结构图。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
本发明实施例可以应用于计算机***/服务器,其可与众多其它通用或专用计算***环境或配置一起操作。适于与计算机***/服务器一起使用的众所周知的计算***、环境和/或配置的例子包括但不限于:个人计算机***、服务器计算机***、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的***、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机***、大型计算机***和包括上述任何***的分布式云计算技术环境,等等。
计算机***/服务器可以在由计算机***执行的计算机***可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机***/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算***存储介质上。
计算机***/服务器可以在由计算机***执行的计算机***可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机***/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算***存储介质上。
在本实施例中提供了一种数据库实例的处理方法,图1是根据本发明实施例的一种数据库实例的处理方法的流程图,如图1所示,该流程包括如下步骤:
步骤S102,获取预设时间段内将第一指标数据写入目标数据库实例时出现的第一异常次数,其中,第一异常次数表示写入失败的次数或写入所述第一指标数据的耗时超过预设时长的次数;
步骤S104,基于第一异常次数确定是否对目标数据库实例进行服务降级。
本发明实施例提供的数据库实例的处理方法,获取预设时间段内将第一指标数据写入目标数据库实例时出现的写入失败的次数或写入成功但写入耗时超过预设时长的次数,基于第一异常次数确定是否对目标数据库实例进行服务降级,不仅能够实现对分布式数据库实例的代理***的统一维护调用请求记录的信息,在任意数据库实例出现写入异常时,能够及时对故障实例进行服务降级,通过隔离该故障实例来避免影响分布式数据库实例的代理***上其他节点的工作,解决了相关技术中因分布式数据库实例的代理***中任意数据库实例写入异常而影响***上其他节点工作的技术问题,提高了数据库实例的代理***的工作效率以及工作性能。
在本发明实施例中提供一种可能的实现方式中,在获取预设时间段内将第一指标数据写入目标数据库实例时出现的第一异常次数之前,还包括:从分布式消息***集群中读取第一指标数据;根据预设路由表确定将第一指标数据写入对应的数据库实例。
在本案的一种可能的实现方式,本发明提供的数据库实例的处理方法应用于InfluxDB proxy代理***,在将指标数据写入InfluxDB proxy代理之前,先将指标数据写入消息队列kafka中,然后再消费kafka中的指标数据,即将指标数据从kafka中写入InfluxDB proxy代理;通过维护路由表以及InfluxDB实例表,拆分指标数据,以确定各个指标数据到各个真实influDB实例中,它支持横向扩容,主备复制。
然后获取对应influxDB实例最近n分钟(即上述预设时间段)的错误次数(即写入失败的次数)以及耗时超时次数(即写入数据库实例成功,但是写入时长超过预设时长的次数);再判断异常次数是否超过异常次数阈值和耗时超时次数阈值,以确定是否对目标数据库实例进行服务降级处理,即限制目标数据库实例的功能服务。进一步的,如果超过阈值,则将目标数据库实例塞入降级队列隔离消费;反之,当最近n分钟错误次数和耗时异常次数小于阈值,则使用现在正常消息队列消费将指标数据写入到对应的influxDB。
本发明实施例中提供一种可能的实现方式,获取预设时间段内将第一指标数据写入目标数据库实例时出现的第一异常次数包括:确定预设时间段内写入第一指标数据的时间戳以及目标数据库实例的唯一编码;根据时间戳和唯一编码生成唯一键名;确定唯一键名对应的计数值;对预设时间段内的计数值进行求和,得到第一异常次数。
在本实施例中,在按照路由表拆分成不同的实例组的指标数据之后,从redis(全称为Remote Dictionary Server,即远程数据服务,是一个key-value键值存储***)当中获取对应influxDB实例最近n分钟的错误次数以及耗时超时次数,具体地,包括以下步骤:从远程数据服务数据库的时间槽中读取目标数据库实例的ID以及分钟字符串(即上述写入第一指标数据的时间戳),根据influxDB实例的ID和分钟字符串生成唯一key(键名);获取唯一key对应的计数值value,然后对近n分钟的计数值相加。
在本实施例中,按照事先约定的规则,明确了唯一key对应的计数值是属于写入失败的次数还是属于写入成功但是写入时长超过预设时长的次数,因为若产生写入失败,会反馈一个写入失败的错误代码(例如异常代码303),若写入成功但是写入时长超过预设时长,会返回一个耗时超时代码(例如异常代码402)。
另外,字符串是Redis最基本的数据类型,一个键名key对应一个值value,一个键值最大存储512MB。在本实施例的一个示例中,Redis key的存储格式为如下:
Redis-time-cost-${influxinstanceid}-yyyy-MM-dd
MM:mm:count
Redis-error-${influxinstanceid}-yyyy-MM-dd
MM:mm:count
其中,time-cost表示耗时,error表示错误,influxinstanceid为influxdb实例的id;yyyy-MM-dd为时间戳的默认格式;MM:mm:count表示异常次数,存储在value中。
在本案的一种可能的实现方式中,若第一异常次数表示写入失败的次数,基于第一异常次数确定是否对目标数据库实例进行服务降级,包括:将第一异常次数与第一预设值进行比较,其中,第一预设值是基于预设时间段和写入失败的历史次数设定的;若第一异常次数大于或等于第一预设值,则将所述目标数据库实例作为异常数据库实例,并对目标数据库实例进行服务降级。
根据上述实施例,在对从Redis中获取到的错误次数之后,判断是否超过错误次数阈值(即上述第一预设值),其中,错误次数阈值是根据预设时间段(比如最近n分钟)以及历史存储的异常次数而定的,可以按照用户需求灵活调整该预设值;如果超过错误次数阈值,则将目标数据库实例塞入降级队列隔离消费;反之,当最近n分钟错误次数小于阈值,使用现在正常消息队列消费将指标数据写入influxDB,从而实现了自动识别异常influxDB实例,并实现influxDB实例的功能自动降级,从而保证非正常influxdb的数据写入,且不影响其他数据库实例消费指标数据的功能服务。
在本案的一种可能的实现方式中,若第一异常次数表示写入所述第一指标数据的耗时超过预设时长的次数,基于第一异常次数确定是否对目标数据库实例进行服务降级,包括:将第一异常次数与第二预设值进行比较,其中,第二预设值是基于预设时间段和写入所述第一指标数据的耗时超过预设时长的历史次数设定的;若第一异常次数大于或等于第二预设值,则将所述目标数据库实例作为异常数据库实例,并对目标数据库实例进行服务降级。
根据上述实施例,若从Redis中获取到写入指标数据成功,但是写入时长超过了预设时长(该时长可根据用户需求灵活调整),并且超过预设时长的次数超过超时次数阈值(即上述第二预设值)之后,其中,耗时超时次数阈值是根据预设时间段(比如最近n分钟)以及历史存储的耗时超时次数而定的,可以按照用户需求灵活调整该预设值;例如,超时500ms且超过600次则确定目标数据库实例异常,则将目标数据库实例塞入降级队列隔离消费;反之,当最近n分钟耗时超时次数小于阈值,使用现在正常消息队列消费将指标数据写入对应的influxDB,从而实现了自动识别异常influxDB实例并实现influxDB实例的功能自动降级,从而保证非正常influxDB的数据写入,且不影响其他数据库实例消费指标数据的功能服务。
在本案的一个可选的实施例中,在对目标数据库实例进行服务降级之后,还包括:检测下一个预设时间段内将第二指标数据写入目标数据库实例的第二异常次数;若第二异常次数表示写入失败的次数,若第二异常次数大于或等于第一预设值,则持续对目标数据库实例进行服务降级;若第二异常次数小于第一预设值,则恢复目标数据库实例的服务等级;或,若第二异常次数表示写入第二指标数据的耗时超过预设时长的次数,若第二异常次数大于或等于第二预设值,则持续对目标数据库实例进行服务降级;若第二异常次数小于第二预设值,则恢复目标数据库实例的服务等级。
在本实施例中,在最近n分钟内,若写入数据出现异常时,会返回一个异常代码,该代码指示是错误还是指耗时超时的;然后再统计错误次数或者超时次数;针对当前时间戳,若异常次数超过阈值,则对目标数据库实例作出降级操作;在下一个n分钟时间内产生的超时次数或错误次数小于阈值,则针对下一个n分钟使用正常的消息队列将下一个n分钟读取的指标数据写入对应的influxDB实例。从而实现了influxDB实例功能服务(即上述服务等级)的自动恢复。
根据上述实施例的步骤,无论是正常消费还是降级消费,都需要在写入真实influxDB之后将异常和超时进行记录,如果写入失败或者写入超时,需要对redis key(由真实influxDB实例id和分钟槽(即上述时间戳)组成key)进行操作;对这个key中的数值进行自增;降级消费唯一的不同就是不需要再去判断是否需要降级,因为已经是降级处理。降级消费和正常消费还有一个不同是队列是两个互相不干扰的消息队列,在写入influxDB的线程池也是两个互相不干扰的线程池。从而实现了对分布式服务中的异常数据库实例进行隔离处理时,不会影响其他数据库实例的写入或者报警,或者监控的工作,进而提高了数据库实例代理***的工作性能。
在本案的一个可选的实施例中,在对目标数据库实例进行服务降级之后,还包括:屏蔽报警消息,其中,报警消息为目标数据库实例的代理***向客户端发出的告警信息,用于指示目标数据库实例为异常的数据库实例。
在本实施例中,对目标数据实例进行降级处理,说明该数据库实例为异常数据库实例,由于数据库实例的代理***proxy会在感知异常influxDB实例存在时,代理服务***会主动向客户端(例如即时通信应用程序)发送报警消息,以便告知用户异常数据库实例,方便用户主动排查异常influxDB的问题;而异常的influxDB的定制报警规则发送的报警消息是不准确的,因此通过屏蔽掉该报警消息,避免干扰。
下面结合一具体实施例的数据库实例的处理流程,对本发明提供的方案做进一步的说明:
图2是根据本发明一具体实施例提供的一种数据库实例的处理流程图,参见图2,将指标数据写入influxdb Proxy数据库实例代理之前,先将指标数据写入kafka集群中;然后influxdb Proxy通过向kafka集群写请求write_influxdb_normal,以消费kafka集群中的指标数据;从Redis中获取最近n分钟内读取指标数据A的错误次数以及读取指标数据A超时次数,其中,超时次数表示读取指标数据A的第一时长大于预设时间;如果错误次数大于错误次数阈值(即上述第一预设值)或第一时长大于预设时间,则将数据库实例A确定为异常数据库实例,并将数据库实例A写入降级队列,以对数据库实例A进行功能限制,比如限制数据库实例A的线程池的大小;可选的,在对数据库实例进行降级的过程中,向企业微信发送降级消息。
若错误次数或超时次数小于阈值,则正常写入流程,按照路由表将指标数据写入对应的influxdb;然后请求耗时超时,计数到当前Redis时间槽中,请求错误计数到当前Redis时间槽中。
根据本发明提供的上述实施步骤,通过收集写influxdb异常指标和超时指标,来判断是否隔离异常的influxdb实例,最终保证了非异常influxdb实例正常写入,屏蔽了异常influxdb报警消息发送,将报警***影响范围降低到最小,保证监控报警***正常运行。
在本实施例中还提供了一种数据库实例的处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图3是根据本发明实施例的数据库实例的处理装置的结构框图,如图3所示,该装置包括:获取模块30,用于获取预设时间段内将第一指标数据写入目标数据库实例时出现的第一异常次数,其中,第一异常次数表示写入失败的次数或写入所述第一指标数据的耗时超过预设时长的次数;确定模块32,连接至上述获取模块30,用于基于第一异常次数确定是否对目标数据库实例进行服务降级。
可选的,获取模块30包括:第一确定单元,用于确定预设时间段内写入第一指标数据的时间戳以及目标数据库实例的唯一编码;生成单元,用于根据时间戳和唯一编码生成唯一键名;第二确定单元,用于确定唯一键名对应的计数值;计算单元,用于对预设时间段内的计数值进行求和,得到第一异常次数。
可选的,当第一异常次数表示写入失败的次数时,确定模块32包括:第一比较单元,用于将第一异常次数与第一预设值进行比较,其中,第一预设值是基于预设时间段和写入失败的历史次数设定的;第一处理单元,用于当第一异常次数大于或等于第一预设值时,将所述目标数据库实例作为异常数据库实例,并对目标数据库实例进行服务降级。
可选的,当第一异常次数表示写入所述第一指标数据的耗时超过预设时长的次数时,确定模块32包括:第二比较单元,用于将第一异常次数与第二预设值进行比较,其中,第二预设值是基于预设时间段和写入所述第一指标数据的耗时超过预设时长的历史次数设定的;第二处理单元,用于当第一异常次数大于或等于第二预设值时,将所述目标数据库实例作为异常数据库实例,并对目标数据库实例进行服务降级。
可选的,上述装置还包括:检测模块,用于在对目标数据库实例进行服务降级之后,检测下一个预设时间段内将第二指标数据写入目标数据库实例的第二异常次数;处理模块,用于若第二异常次数表示写入失败的次数,当第二异常次数大于或等于第一预设值时,持续对目标数据库实例进行服务降级;当第二异常次数小于第一预设值时,恢复目标数据库实例的服务等级;或,若第二异常次数表示写入第二指标数据的耗时超过预设时长的次数,当第二异常次数大于或等于第二预设值时,持续对目标数据库实例进行服务降级;当第二异常次数小于第二预设值时,恢复目标数据库实例的服务等级。
可选的,上述装置还包括:屏蔽模块,用于在对目标数据库实例进行服务降级之后,屏蔽报警消息,其中,报警消息为目标数据库实例的代理***向客户端发出的告警信息,用于指示目标数据库实例为异常的数据库实例。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
在示例性的实施例中,提供了一种电子设备,如图4所示,图4所示的电子设备400包括:处理器401和存储器403。其中,处理器401和存储器403相连,如通过总线402相连。可选地,电子设备400还可以包括收发器404。需要说明的是,实际应用中收发器404不限于一个,该电子设备400的结构并不构成对本申请实施例的限定。
处理器401可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器401也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线402可包括一通路,在上述组件之间传送信息。总线402可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线402可以分为地址总线、数据总线、控制总线等。
为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器403可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
存储器403用于存储执行本申请方案的应用程序代码,并由处理器401来控制执行。处理器401用于执行存储器403中存储的应用程序代码,以实现前述方法实施例所示的内容。
其中,电子设备包括但不限于:移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图4示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
基于同一发明构思,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,计算机程序被设置为运行时执行上述任意一个实施例的数据库实例的处理方法。
所属领域的技术人员可以清楚地了解到,上述描述的***、装置、模块的具体工作过程,可以参考前述方法实施例中的对应过程,为简洁起见,在此不另赘述。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于***实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
可能以许多方式来实现本发明的方法和***。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法和***。用于所述方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。
本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。
Claims (10)
1.一种数据库实例的处理方法,其特征在于,包括:
获取预设时间段内将第一指标数据写入目标数据库实例时出现的第一异常次数,其中,所述第一异常次数表示写入失败的次数或写入所述第一指标数据的耗时超过预设时长的次数;
基于所述第一异常次数确定是否对所述目标数据库实例进行服务降级。
2.根据权利要求1所述的方法,其特征在于,所述获取预设时间段内将第一指标数据写入目标数据库实例时出现的第一异常次数包括:
确定所述预设时间段内写入所述第一指标数据的时间戳以及所述目标数据库实例的唯一编码;
根据所述时间戳和所述唯一编码生成唯一键名;
确定所述唯一键名对应的计数值;
对所述预设时间段内的计数值进行求和,得到所述第一异常次数。
3.根据权利要求1所述的方法,其特征在于,若所述第一异常次数表示写入失败的次数,所述基于所述第一异常次数确定是否对所述目标数据库实例进行服务降级,包括:
将所述第一异常次数与第一预设值进行比较,其中,所述第一预设值是基于所述预设时间段和写入失败的历史次数设定的;
若所述第一异常次数大于或等于所述第一预设值,则将所述目标数据库实例作为异常数据库实例,并对所述目标数据库实例进行服务降级。
4.根据权利要求1所述的方法,其特征在于,若所述第一异常次数表示写入所述第一指标数据的耗时超过预设时长的次数,所述基于所述第一异常次数确定是否对所述目标数据库实例进行服务降级,包括:
将所述第一异常次数与第二预设值进行比较,其中,所述第二预设值是基于所述预设时间段和写入所述第一指标数据的耗时超过预设时长的历史次数设定的;
若所述第一异常次数大于或等于所述第二预设值,则将所述目标数据库实例作为异常数据库实例,并对所述目标数据库实例进行服务降级。
5.根据权利要求3或4中任一项所述的方法,其特征在于,在对所述目标数据库实例进行服务降级之后,所述方法还包括:
检测下一个预设时间段内将第二指标数据写入所述目标数据库实例的第二异常次数;
若所述第二异常次数表示写入失败的次数,若所述第二异常次数大于或等于所述第一预设值,则持续对所述目标数据库实例进行服务降级;若所述第二异常次数小于所述第一预设值,则恢复所述目标数据库实例的服务等级;或,
若所述第二异常次数表示写入所述第二指标数据的耗时超过预设时长的次数,若所述第二异常次数大于或等于所述第二预设值,则持续对所述目标数据库实例进行服务降级;若所述第二异常次数小于所述第二预设值,则恢复所述目标数据库实例的服务等级。
6.根据权利要求3或4中任一项所述的方法,其特征在于,在对所述目标数据库实例进行服务降级之后,所述方法还包括:
屏蔽报警消息,其中,所述报警消息为所述目标数据库实例的代理***向客户端发出的告警信息,用于指示所述目标数据库实例为异常数据库实例。
7.一种数据库实例的处理装置,其特征在于,包括:
获取模块,用于获取预设时间段内将第一指标数据写入目标数据库实例时出现的第一异常次数,其中,所述第一异常次数表示写入失败的次数或写入所述第一指标数据的耗时超过预设时长的次数;
确定模块,用于基于所述第一异常次数确定是否对所述目标数据库实例进行服务降级。
8.根据权利要求7所述的装置,其特征在于,所述获取模块包括:
第一确定单元,用于确定所述预设时间段内写入所述第一指标数据的时间戳以及所述目标数据库实例的唯一编码;
生成单元,用于根据所述时间戳和所述唯一编码生成唯一键名;
第二确定单元,用于确定所述唯一键名对应的计数值;
计算单元,用于对所述预设时间段内的计数值进行求和,得到所述第一异常次数。
9.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行权利要求1至6任一项中所述的方法。
10.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1至6任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011157936.7A CN112306989A (zh) | 2020-10-26 | 2020-10-26 | 数据库实例的处理方法及装置、存储介质、电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011157936.7A CN112306989A (zh) | 2020-10-26 | 2020-10-26 | 数据库实例的处理方法及装置、存储介质、电子装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112306989A true CN112306989A (zh) | 2021-02-02 |
Family
ID=74331015
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011157936.7A Pending CN112306989A (zh) | 2020-10-26 | 2020-10-26 | 数据库实例的处理方法及装置、存储介质、电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112306989A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114327279A (zh) * | 2021-12-29 | 2022-04-12 | 湖南国科微电子股份有限公司 | 一种迁移数据的方法及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104125095A (zh) * | 2014-06-25 | 2014-10-29 | 世纪禾光科技发展(北京)有限公司 | 一种事件故障实时监控的***和方法 |
CN104252458A (zh) * | 2013-06-25 | 2014-12-31 | 博雅网络游戏开发(深圳)有限公司 | 数据分析方法和装置 |
CN106528664A (zh) * | 2016-10-21 | 2017-03-22 | 广东亿迅科技有限公司 | 基于分布式的关系数据库的事务数据监控方法及其*** |
CN108829498A (zh) * | 2018-03-30 | 2018-11-16 | 阿里巴巴集团控股有限公司 | 业务数据访问方法和装置 |
CN109739727A (zh) * | 2019-01-03 | 2019-05-10 | 优信拍(北京)信息科技有限公司 | 微服务架构中的服务监控方法及装置 |
CN109871392A (zh) * | 2019-02-18 | 2019-06-11 | 浪潮软件集团有限公司 | 一种分布式应用***下的慢sql实时数据采集方法 |
CN110430091A (zh) * | 2019-07-09 | 2019-11-08 | 上海易点时空网络有限公司 | 适用于redis的主从时延监控方法及装置、存储介质 |
CN111158933A (zh) * | 2019-12-31 | 2020-05-15 | 易票联支付有限公司 | 一种基于消息队列的分布式事务处理方法及*** |
-
2020
- 2020-10-26 CN CN202011157936.7A patent/CN112306989A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104252458A (zh) * | 2013-06-25 | 2014-12-31 | 博雅网络游戏开发(深圳)有限公司 | 数据分析方法和装置 |
CN104125095A (zh) * | 2014-06-25 | 2014-10-29 | 世纪禾光科技发展(北京)有限公司 | 一种事件故障实时监控的***和方法 |
CN106528664A (zh) * | 2016-10-21 | 2017-03-22 | 广东亿迅科技有限公司 | 基于分布式的关系数据库的事务数据监控方法及其*** |
CN108829498A (zh) * | 2018-03-30 | 2018-11-16 | 阿里巴巴集团控股有限公司 | 业务数据访问方法和装置 |
CN109739727A (zh) * | 2019-01-03 | 2019-05-10 | 优信拍(北京)信息科技有限公司 | 微服务架构中的服务监控方法及装置 |
CN109871392A (zh) * | 2019-02-18 | 2019-06-11 | 浪潮软件集团有限公司 | 一种分布式应用***下的慢sql实时数据采集方法 |
CN110430091A (zh) * | 2019-07-09 | 2019-11-08 | 上海易点时空网络有限公司 | 适用于redis的主从时延监控方法及装置、存储介质 |
CN111158933A (zh) * | 2019-12-31 | 2020-05-15 | 易票联支付有限公司 | 一种基于消息队列的分布式事务处理方法及*** |
Non-Patent Citations (1)
Title |
---|
王楠: "《计算机网络工程》", 30 September 2020, 武汉:华中科技大学出版社, pages: 198 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114327279A (zh) * | 2021-12-29 | 2022-04-12 | 湖南国科微电子股份有限公司 | 一种迁移数据的方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10095598B2 (en) | Transaction server performance monitoring using component performance data | |
US20080010497A1 (en) | Selecting a Logging Method via Metadata | |
CN110162512B (zh) | 一种日志检索方法、装置及存储介质 | |
CN112307057A (zh) | 数据的处理方法及装置、电子设备、计算机存储介质 | |
US20150074450A1 (en) | Hard disk drive (hdd) early failure detection in storage systems based on statistical analysis | |
CN108287769B (zh) | 一种信息处理方法及装置 | |
CN110837457B (zh) | 任务管理方法、装置、电子设备及存储介质 | |
CN111385148A (zh) | 业务告警方法、装置、计算机设备及存储介质 | |
CN111522703A (zh) | 监控访问请求的方法、设备和计算机程序产品 | |
CN110647472A (zh) | 崩溃信息统计方法、装置、计算机设备及存储介质 | |
CN111400294B (zh) | 数据异常监测方法、装置及*** | |
US7814493B2 (en) | Resource presentation convergence | |
CN111966653A (zh) | 微服务调用链路数据处理方法、装置、服务器及存储介质 | |
CN110620806B (zh) | 信息生成方法和装置 | |
CN112306989A (zh) | 数据库实例的处理方法及装置、存储介质、电子装置 | |
CN114153703A (zh) | 微服务的异常定位方法、装置、电子设备和程序产品 | |
CN110990179B (zh) | 一种任务处理方法、装置及设备 | |
CN112231192A (zh) | 一种日志数据分析方法及装置 | |
CN112685247A (zh) | 基于Zabbix监控***的告警抑制方法及监控*** | |
CN110908824A (zh) | 一种故障识别方法、装置及设备 | |
CN114860432A (zh) | 一种内存故障的信息确定方法及装置 | |
CN115858211A (zh) | 机器检查错误的处理方法及装置 | |
US6718282B1 (en) | Fault tolerant client-server environment | |
US20060047992A1 (en) | Measuring reliability of transactions | |
CN110362464B (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 | ||
CB02 | Change of applicant information |
Address after: 100102 201 / F, block C, 2 lizezhong 2nd Road, Chaoyang District, Beijing Applicant after: Beijing Shuidi Technology Group Co.,Ltd. Address before: 100102 201, 2 / F, block C, No.2 lizezhong 2nd Road, Chaoyang District, Beijing Applicant before: Beijing Health Home Technology Co.,Ltd. |
|
CB02 | Change of applicant information |