CN111399997B - 一种针对MongoDB的过载保护方法及装置 - Google Patents
一种针对MongoDB的过载保护方法及装置 Download PDFInfo
- Publication number
- CN111399997B CN111399997B CN202010117561.5A CN202010117561A CN111399997B CN 111399997 B CN111399997 B CN 111399997B CN 202010117561 A CN202010117561 A CN 202010117561A CN 111399997 B CN111399997 B CN 111399997B
- Authority
- CN
- China
- Prior art keywords
- mongodb
- query
- sealed
- long connection
- task
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 23
- 238000007789 sealing Methods 0.000 claims abstract description 16
- 230000000007 visual effect Effects 0.000 claims description 4
- 230000010365 information processing Effects 0.000 claims description 2
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 241001178520 Stomatepia mongo Species 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000007619 statistical method Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000452 restraining effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供一种针对MongoDB的过载保护方法及装置,其中,在连接池与数据库MongoDB之间设置长连接;从连接池获取MongoDB通过长连接发送的数据,并根据所述数据检测当前MongoDB中正在执行的查询任务;当判定查询任务的执行时间超过预设的查询配置阈值,则封杀该查询任务并记录被封杀的查询任务及其相关信息。根据本发明的技术方案,通过实时对数据库MongoDB中的查询任务进行探测,对执行时间超过规定的查询任务能够及时封杀,遏制其对数据库系统带来的伤害,保证整个系统的稳定、保障其他访问正常执行,对整个业务的影响最小化。
Description
技术领域
本发明涉及数据处理领域,具体涉及一种针对MongoDB的过载保护方法及装置。
背景技术
随着业务的快速发展,产品的迭代速度越来越快、产品功能越来越多、业务流量突发的情况也越来越常见。
当产品新功能上线时,对后端数据库来说,往往会产生一些之前没有出现过的、执行非常慢的查询语句;而当业务流量突发时,以前执行频率非常低的、执行慢的查询,也可能出现执行次数迅速增长的情况。当这些查询出现时,往往会对数据库系统造成巨大的压力,如果不能及实地封杀,很可能会因为数据库系统压力过载,导致业务无法访问的情况。
目前,对上面这种情况的通常做法都是在发现这些非正常的查询之后,连接到数据库,然后对其进行封杀(kill)的操作。对于上述方法,主要有以下几个缺点:
(1)只是针对传统数据库的,比如MySQL、Oracle等,并没有对NOSQL类数据库的,比如MongoDB;
(2)当发现数据库系统压力过载之后,再去连接数据库,很可能会出现连接失败的情况,因为此时数据库已经无法处理那么多连接请求了;
(3)封杀了多少查询语句,每个查询语句的类型及其在MongoDB中的执行信息如何,无法做到实时的分析,展示。
发明内容
本发明实施例提供一种针对MongoDB的过载保护方法及装置,通过实时对数据库MongoDB中的查询任务进行探测,对执行时间超过规定的查询任务能够及时封杀,遏制其对数据库系统带来的伤害,保证整个系统的稳定、保障其他访问正常执行,对整个业务的影响最小化。
为达到上述目的,一方面,本发明实施例提供了一种针对MongoDB的过载保护方法,所述方法包括:
在连接池与数据库MongoDB之间设置长连接;
从连接池获取MongoDB通过长连接发送的数据,并根据所述数据检测当前MongoDB中正在执行的查询任务;
当判定查询任务的执行时间超过预设的查询配置阈值,则封杀该查询任务并记录被封杀的查询任务及其相关信息。
另一方面,本发明实施例提供了一种针对MongoDB的过载保护装置,所述装置包括:
长连接单元,用于在连接池与数据库MongoDB之间设置长连接;
查询任务获取单元,用于从连接池获取MongoDB通过长连接发送的数据,并根据所述数据检测当前MongoDB中正在执行的查询任务;
封杀单元,用于当判定查询任务的执行时间超过预设的查询配置阈值,封杀该查询任务并记录被封杀的查询任务及其相关信息。
上述技术方案具有如下有益效果:
本发明的技术方案使用长连接的方式,通过提前保留到MongoDB的一批长连接,实时探测MongoDB当前正在执行的查询,如果发现有执行时间超过规定时间的查询,就立刻执行封杀(KILL)的操作,并对这些查询及其信息做实时记录,及时遏制其对数据库系统带来的伤害,保证整个系统的稳定、保障其他访问的正常执行,对整个业务的影响最小化。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一种针对MongoDB的过载保护方法的流程图;
图2是本发明实施例一种针对MongoDB的过载保护装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,是本发明实施例一种针对MongoDB的过载保护方法的流程图,所述方法包括:
S101:在连接池与数据库MongoDB之间设置长连接。
优选地,所述在连接池与数据库MongoDB之间设置长连接,包括:
保持连接池与MongoDB的长连接,若有长连接断开,则创建一个新的长连接。以此保证时刻保持着到MongoDB的一批长连接。
S102:从连接池获取MongoDB通过长连接发送的数据,并根据所述数据检测当前MongoDB中正在执行的查询任务。
S103:当判定查询任务的执行时间超过预设的查询配置阈值,则封杀该查询任务并记录被封杀的查询任务及其相关信息。
优选地,所述预设的查询配置阈值通过分布式存储服务Etcd进行存储。本方案中通过首先会设置一个配置中心,采用一种分布式存储服务Etcd进行存储,主要存储MongoDB的连接配置信息、执行封杀操作的配置信息,比如连接MongoDB的连接串、慢查询预设的查询配置阈值等。
优选地,所述封杀查询任务通过在MongoDB中使用命令db.killOP()执行。
进一步地,所述方法还包括:
对记录的被封杀的查询任务及其相关信息进行分析,统计设定时间段内,被封杀的查询任务的总数量、每个MongoDB中被封杀的查询任务的数量以及耗费资源最多的查询任务;
将统计的结果以可视化的方式进行实时展示。
对于封杀的查询任务及其相关信息的存储,通过设置数据存储中心采用MongoDB进行存储,以便后续对其进行统计分析。对于存储的查询任务及其相关信息,通过数据分析程序对数据存储中心中的信息进行分析,分析当前每秒封杀的查询任务的数量、每个MongoDB的查询数量以及耗费资源比如扫描数据量最多的查询任务等各个维度的统计信息,便于后期进行有针对性的优化。
通过前端展示程序,用可视化的方式实施展示在数据分析程序中分析的结果,以便运维人员更加直观的了解所有MongoDB的慢查询信息及其历史变化情况。
对应于上述方法,如图2所示,是本发明实施例一种针对MongoDB的过载保护装置的结构示意图,所述装置包括:
长连接单元21,用于在连接池与数据库MongoDB之间设置长连接;
查询任务获取单元22,用于从连接池获取MongoDB通过长连接发送的数据,并根据所述数据检测当前MongoDB中正在执行的查询任务;
封杀单元23,用于当判定查询任务的执行时间超过预设的查询配置阈值,封杀该查询任务并记录被封杀的查询任务及其相关信息。
优选地,所述长连接单元21具体用于:
保持连接池与MongoDB的长连接,若有长连接断开,则创建一个新的长连接。
优选地,在所述封杀单元23中,所述预设的查询配置阈值通过分布式存储服务Etcd进行存储。
优选地,在所述封杀单元23中,所述封杀查询任务通过在MongoDB中使用命令db.killOP()执行。
进一步地,还包括信息处理单元,用于:
对记录的被封杀的查询任务及其相关信息进行分析,统计设定时间段内,被封杀的查询任务的总数量、每个MongoDB中被封杀的查询任务的数量以及耗费资源最多的查询任务;
将统计的结果以可视化的方式进行实时展示。
根据本发明的技术方案,相比于现有技术具有以下技术优点:
首先,本方案是针对MongoDB的过载保护系统,并非是针对传统数据库的。
其次,在数据库系统压力过载之前,已经时时刻刻保持了一批长连接,可以保证到了数据库系统压力过载之时,不会出现连接不上数据库的情况。
最后,系统封杀了多少查询、每种查询的数据量数据是多少、消耗资源最多的查询是什么等这些统计分析数据可根据界面化的图表实时查看。
应该明白,公开的过程中的步骤的特定顺序或层次是示例性方法的实例。基于设计偏好,应该理解,过程中的步骤的特定顺序或层次可以在不脱离本公开的保护范围的情况下得到重新安排。所附的方法权利要求以示例性的顺序给出了各种步骤的要素,并且不是要限于所述的特定顺序或层次。
在上述的详细描述中,各种特征一起组合在单个的实施方案中,以简化本公开。不应该将这种公开方法解释为反映了这样的意图,即,所要求保护的主题的实施方案需要比清楚地在每个权利要求中所陈述的特征更多的特征。相反,如所附的权利要求书所反映的那样,本发明处于比所公开的单个实施方案的全部特征少的状态。因此,所附的权利要求书特此清楚地被并入详细描述中,其中每项权利要求独自作为本发明单独的优选实施方案。
为使本领域内的任何技术人员能够实现或者使用本发明,上面对所公开实施例进行了描述。对于本领域技术人员来说;这些实施例的各种修改方式都是显而易见的,并且本文定义的一般原理也可以在不脱离本公开的精神和保护范围的基础上适用于其它实施例。因此,本公开并不限于本文给出的实施例,而是与本申请公开的原理和新颖性特征的最广范围相一致。
上文的描述包括一个或多个实施例的举例。当然,为了描述上述实施例而描述部件或方法的所有可能的结合是不可能的,但是本领域普通技术人员应该认识到,各个实施例可以做进一步的组合和排列。因此,本文中描述的实施例旨在涵盖落入所附权利要求书的保护范围内的所有这样的改变、修改和变型。此外,就说明书或权利要求书中使用的术语“包含”,该词的涵盖方式类似于术语“包括”,就如同“包括,”在权利要求中用作衔接词所解释的那样。此外,使用在权利要求书的说明书中的任何一个术语“或者”是要表示“非排它性的或者”。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种针对MongoDB的过载保护方法,其特征在于,包括:
在连接池与数据库MongoDB之间设置长连接;
从连接池获取MongoDB通过长连接发送的数据,并根据所述数据检测当前MongoDB中正在执行的查询任务;
当判定查询任务的执行时间超过预设的查询配置阈值,则封杀该查询任务并记录被封杀的查询任务及其相关信息;
对记录的被封杀的查询任务及其相关信息进行分析,统计设定时间段内,被封杀的查询任务的总数量、每个MongoDB中被封杀的查询任务的数量以及耗费资源最多的查询任务;
将统计的结果以可视化的方式进行实时展示;
其中,所述在连接池与数据库MongoDB之间设置长连接,包括:
保持连接池与MongoDB的长连接,若有长连接断开,则创建一个新的长连接。
2.如权利要求1所述的针对MongoDB的过载保护方法,其特征在于,所述预设的查询配置阈值通过分布式存储服务Etcd进行存储。
3.如权利要求2所述的针对MongoDB的过载保护方法,其特征在于,所述封杀查询任务通过在MongoDB中使用命令db.killOP()执行。
4.一种针对MongoDB的过载保护装置,其特征在于,包括:
长连接单元,用于在连接池与数据库MongoDB之间设置长连接;
查询任务获取单元,用于从连接池获取MongoDB通过长连接发送的数据,并根据所述数据检测当前MongoDB中正在执行的查询任务;
封杀单元,用于当判定查询任务的执行时间超过预设的查询配置阈值,封杀该查询任务并记录被封杀的查询任务及其相关信息;
信息处理单元,用于对记录的被封杀的查询任务及其相关信息进行分析,统计设定时间段内,被封杀的查询任务的总数量、每个MongoDB中被封杀的查询任务的数量以及耗费资源最多的查询任务;将统计的结果以可视化的方式进行实时展示;
其中,所述长连接单元具体用于:
保持连接池与MongoDB的长连接,若有长连接断开,则创建一个新的长连接。
5.如权利要求4所述的针对MongoDB的过载保护装置,其特征在于,在所述封杀单元中,所述预设的查询配置阈值通过分布式存储服务Etcd进行存储。
6.如权利要求5所述的针对MongoDB的过载保护装置,其特征在于,在所述封杀单元中,所述封杀查询任务通过在MongoDB中使用命令db.killOP()执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010117561.5A CN111399997B (zh) | 2020-02-25 | 2020-02-25 | 一种针对MongoDB的过载保护方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010117561.5A CN111399997B (zh) | 2020-02-25 | 2020-02-25 | 一种针对MongoDB的过载保护方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111399997A CN111399997A (zh) | 2020-07-10 |
CN111399997B true CN111399997B (zh) | 2024-02-23 |
Family
ID=71431991
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010117561.5A Active CN111399997B (zh) | 2020-02-25 | 2020-02-25 | 一种针对MongoDB的过载保护方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111399997B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102937980A (zh) * | 2012-10-18 | 2013-02-20 | 亿赞普(北京)科技有限公司 | 一种集群数据库数据查询方法 |
CN106533845A (zh) * | 2016-12-27 | 2017-03-22 | 海尔优家智能科技(北京)有限公司 | 一种长连接状态监控方法和装置 |
CN107391633A (zh) * | 2017-06-30 | 2017-11-24 | 北京奇虎科技有限公司 | 数据库集群自动优化处理方法、装置及服务器 |
CN109508344A (zh) * | 2018-09-29 | 2019-03-22 | 中国平安人寿保险股份有限公司 | 业务数据查询方法、装置、电子设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10289721B2 (en) * | 2016-07-14 | 2019-05-14 | International Business Machines Corporation | Query management based on amount of data change |
-
2020
- 2020-02-25 CN CN202010117561.5A patent/CN111399997B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102937980A (zh) * | 2012-10-18 | 2013-02-20 | 亿赞普(北京)科技有限公司 | 一种集群数据库数据查询方法 |
CN106533845A (zh) * | 2016-12-27 | 2017-03-22 | 海尔优家智能科技(北京)有限公司 | 一种长连接状态监控方法和装置 |
CN107391633A (zh) * | 2017-06-30 | 2017-11-24 | 北京奇虎科技有限公司 | 数据库集群自动优化处理方法、装置及服务器 |
CN109508344A (zh) * | 2018-09-29 | 2019-03-22 | 中国平安人寿保险股份有限公司 | 业务数据查询方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111399997A (zh) | 2020-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107729210B (zh) | 分布式服务集群的异常诊断方法和装置 | |
CN106354590A (zh) | 磁盘检测方法和装置 | |
WO2017031837A1 (zh) | 磁盘容量的预测方法、装置及设备 | |
CN113238922B (zh) | 一种日志分析方法、装置、电子设备及介质 | |
CN103746829A (zh) | 一种基于集群的故障感知系统及其方法 | |
CN113360722B (zh) | 一种基于多维数据图谱的故障根因定位方法及系统 | |
CN113931258A (zh) | 自我诊断方法和无负压叠压供水设备 | |
CN112235262A (zh) | 报文的解析方法、装置、电子设备及计算机可读存储介质 | |
CN111399997B (zh) | 一种针对MongoDB的过载保护方法及装置 | |
CN111221890A (zh) | 通用指标类自动监控预警方法及装置 | |
CN113123955B (zh) | 柱塞泵异常检测方法、装置、存储介质及电子设备 | |
CN111124818B (zh) | 一种扩展器Expander的监控方法、装置及设备 | |
CN111784176A (zh) | 一种数据处理方法、装置、服务器及介质 | |
CN115525392A (zh) | 容器监控方法、装置、电子设备及存储介质 | |
CN116094930A (zh) | 一种基于智能化分析的配置对账解决方法及装置 | |
WO2023103344A1 (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN110457133A (zh) | 一种操作系统资源异常的处理方法及系统 | |
CN114564354A (zh) | 数据库性能监控方法、装置、电子设备及存储介质 | |
CN113901093A (zh) | 一种基于内存缓存的业务调用日志关系分析方法及系统 | |
CN108959028B (zh) | 磁盘生命周期分析方法及装置 | |
CN112035315A (zh) | 网页数据监控方法、装置、计算机设备及存储介质 | |
CN115292146B (zh) | 一种系统容量预估方法、系统、设备及存储介质 | |
CN111565377A (zh) | 应用于物联网的安全监测方法和装置 | |
CN112800061B (zh) | 一种数据存储方法、装置、服务器及存储介质 | |
CN114629786A (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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20230412 Address after: Room 501-502, 5/F, Sina Headquarters Scientific Research Building, Block N-1 and N-2, Zhongguancun Software Park, Dongbei Wangxi Road, Haidian District, Beijing, 100193 Applicant after: Sina Technology (China) Co.,Ltd. Address before: 100193 7th floor, scientific research building, Sina headquarters, plot n-1, n-2, Zhongguancun Software Park, Dongbei Wangxi Road, Haidian District, Beijing, 100193 Applicant before: Sina.com Technology (China) Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |