数据请求的方法、装置及系统制造方法及图纸

技术编号:11131682 阅读:78 留言:0更新日期:2015-03-12 01:24
本发明专利技术公开了一种数据请求的方法、装置及系统,涉及互联网技术领域,为解决数据库因查询请求过多而发生瘫痪的问题而发明专利技术。本发明专利技术的方法包括:建立对应数据库的第一协程,并通过第一协程对数据库的负荷状态进行检测,获得检测结果;在接收到终端上报的查询请求时,建立对应查询请求的第二协程,并通过第二协程向第一协程获取检测结果;若检测结果表征数据库处于超负荷状态,则停止向数据库转发查询请求。本发明专利技术主要应用于postgresql数据库系统中。

【技术实现步骤摘要】
数据请求的方法、装置及系统
本专利技术涉及互联网
,尤其涉及一种数据请求的方法、装置及系统。
技术介绍
在局域网内部,控制台作为终端与数据库之间的桥梁,负责接收、管理、转发终端向数据库发送的查询请求,并将数据库返回的查询内容下发给终端。通常数据库服务器分配给查询任务的处理资源是有限的,而局域网内瞬时上报的查询请求数量(后续简称为请求并发数)则有可能较大,这种情况下,数据库服务器的处理资源无法对所有的查询请求都进行响应,此时数据库的资源负荷压力较大,容易发生瘫痪。而一旦数据库发生瘫痪就无法进行恢复,只能重启数据库服务器,从而对局域网的正常运行造成中断。 随着大型企业、机关单位对局域网规模需求的不断增长,局域网中的终端数量将越来越多,网内的查询请求数量也会相应增长,因此数据库瘫痪的频率会越来越高。对于大型网络,特别是多级网络而言,数据库系统的频繁瘫痪势必会影响到网络的稳定性,降低局域网的运行效率。所以,如何对数据库系统进行有效维护,使其能够应对大规模网络环境下的查询需求,就成为摆在技术人员眼前的一道难题。
技术实现思路
有鉴于此,本专利技术提供一种数据请求的方法、装置及系统,能够解决数据库因查询请求过多而发生瘫痪的问题。 为解决上述技术问题,一方面,本专利技术提供了一种数据请求的方法,该方法包括: 建立对应数据库的第一协程,并通过第一协程对数据库的负荷状态进行检测,获得检测结果; 在接收到终端上报的查询请求时,建立对应查询请求的第二协程,并通过第二协程向第一协程获取检测结果; 若检测结果表征数据库处于超负荷状态,则停止向数据库转发查询请求。 另一方面,本专利技术还提供了一种数据请求的装置,该装置包括: 检测单元,用于建立对应数据库的第一协程,并通过第一协程对数据库的负荷状态进行检测,获得检测结果; 获取单元,用于在接收到终端上报的查询请求时,建立对应查询请求的第二协程,并通过第二协程向检测单元建立的第一协程获取检测结果; 处理单元,用于当获取单元获取的检测结果表征数据库处于超负荷状态时,停止向数据库转发查询请求。 再一方面,本专利技术还提供了一种数据请求的系统,该系统包括:终端、控制台以及数据库服务器;其中,控制台包括如前述第二方面所指的装置; 终端,用于向控制台上报查询请求,查询请求用于向数据库服务器请求进行数据查询; 控制台,用于在检测结果表征数据库处于正常负荷状态时,向数据库服务器转发查询请求,而在检测结果表征数据库处于超负荷状态时,停止向数据库服务器转发查询请求; 数据库服务器,用于在检测结果表征数据库处于正常负荷状态时,接收控制台转发的查询请求,并对查询请求进行响应,返回查询内容; 控制台,还用于接收数据库服务器返回的查询内容,并将查询内容下发给终端。 本专利技术提供的数据请求的方法、装置及系统,能够建立一个常驻的第一协程对数据库的负荷状态进行持续检测,并将获得的检测结果共享给为查询请求建立的第二协程,以便后者基于不同的检测结果对查询请求进行转发或取消转发的处理。与现有技术相比,本专利技术可以在数据库处于超负荷状态时暂停查询请求的转发,能够给予数据库充分的时间对已有请求进行及时处理并释放相应的处理资源,由此防止数据库因查询请求过多而发生瘫痪。 上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的【具体实施方式】。 【附图说明】 通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中: 图1示出了本专利技术提供的一种数据请求的方法流程图; 图2示出了本专利技术提供的另一种数据请求的方法流程图; 图3示出了本专利技术提供的又一种数据请求的方法流程图; 图4示出了本专利技术提供的等待队列的示意图; 图5(a)及图5(b)示出了本专利技术提供的混合转发查询请求的示意图; 图6示出了本专利技术提供的一种数据请求的装置的结构示意图; 图7示出了本专利技术提供的另一种数据请求的装置的结构示意图; 图8示出了本专利技术提供的一种数据请求的系统示意图。 【具体实施方式】 下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。 为防止数据库因查询请求过多而发生瘫痪,本专利技术实施例提供了一种数据请求的方法,该方法能够在数据库处于超负荷状态时暂停查询请求的转发,由此使得数据库有充分的时间对已有请求进行处理。如图1所示,该方法包括: 101、建立对应数据库的第一协程,并通过第一协程对数据库的负荷状态进行检测,获得检测结果。 在启动数据库时,控制台建立一个独立的第一协程,专门用于对数据库的负荷状态进行检测。本实施例中的第一协程为一种常驻协程,即该协程在数据库初始化时建立、并存活于整个数据查询的过程中。无论控制台是否接收终端上报的查询请求,只要数据库的生命周期没有结束,那么第一协程就会一直保持存活状态,对数据库的资源负荷状态进行持续检测。 需要说明的是,本实施例中所述的持续检测,是指一种保持检测状态的过程,并非限定于不间断检测的情况。在实际应用中,上述持续检测的方式还包括:按照某个预设的时间间隔进行周期性检测、或者根据控制台的指令进行不定期检测、再或者基于某种预设策略/规则进行自动检测等,本实施例不对第一协程检测数据库状态的时机、次数或者频率进行限制。 在本实施例中,能够反映数据库资源负荷状态的资源参数可以是:内存使用占比、中央处理器(Central Processing Unit,简称CPU)使用占比、磁盘读写接口使用占比等。当然,资源参数也可以是上述几种资源参数的组合。第一协程可以通过预先写好的接口程序向数据库发送数据请求,获取上述资源参数(或资源参数的组合),并通过与预设标准阈值比对的方式获得数据库负荷状态的检测结果。 一般情况下,数据库服务器通常不会将全部的处理资源都分配给数据查询任务,因此在实际应用中,上述各资源参数的使用占比应当是其实际资源分配范围下的使用占t匕。例如,假设对于4G内存的数据库服务器而言,如果其分配1G内存资源用于处理查询请求,那么当当前处理查询请求占用0.4G内存时,其实际的内存使用占比应当为40%,而非10%。 上述获取资源参数的检测方式只是本实施例的一种实现方式之一,实际应用中,控制台也可以不必关心数据库的具体资源参数,而是从结果层面直接对数据库的响应速度进行检测,若数据库的响应速度过慢(用时较长),则表明数据库的资源负荷超过了正常承受能力。换言之,数据库的响应速度能够综合体现其内部各种资源的占用情况,因此在实际应用中,对响应速度进行测试通常实现起来更为简便,并且能够获得更加理想的检测效果。本实施例后续将着重以此种检测方式为例进行说明。 在本实施例本文档来自技高网...

【技术保护点】
一种数据请求的方法,其特征在于,所述方法包括:建立对应数据库的第一协程,并通过所述第一协程对数据库的负荷状态进行检测,获得检测结果;在接收到终端上报的查询请求时,建立对应所述查询请求的第二协程,并通过所述第二协程向所述第一协程获取所述检测结果;若所述检测结果表征数据库处于超负荷状态,则停止向所述数据库转发所述查询请求。

【技术特征摘要】
1.一种数据请求的方法,其特征在于,所述方法包括: 建立对应数据库的第一协程,并通过所述第一协程对数据库的负荷状态进行检测,获得检测结果; 在接收到终端上报的查询请求时,建立对应所述查询请求的第二协程,并通过所述第二协程向所述第一协程获取所述检测结果; 若所述检测结果表征数据库处于超负荷状态,则停止向所述数据库转发所述查询请求。2.根据权利要求1所述的方法,其特征在于,若所述检测结果表征数据库处于正常负荷状态,则所述方法进一步包括: 向所述数据库转发所述查询请求。3.根据权利要求1所述的方法,其特征在于,所述通过所述第一协程对数据库的负荷状态进行检测,获得检测结果,包括: 通过所述第一协程向所述数据库发送状态检测报文; 若未在规定时间内接收到数据库的响应报文,则所述检测结果为数据库处于超负荷状态。4.根据权利要求3所述的方法,其特征在于,若在到达预设的时长阀值后仍未接收到数据库的响应报文,则所述方法进一步包括: 重启数据库服务器; 其中所述时长阀值大于所述规定时间。5.根据权利要求4所述的方法,其特征在于,所述重启数据库服务器,包括: 通过所述第一协程调用并执行所述数据库服务器的重启指令。6.根据权利要求1所述的方法,其特征在于,在所述数据库服务器恢复正常负荷状态后,所述方法进一步包括: 将所述查询请求重新转发给所述数据库。7.根据权利要求6所述的方法,其特征在于,所述将所述查询请求重新转发给所述数据库,包括: 在停止向所述数据库转发所述查询请求后,将所述查询请求...

【专利技术属性】
技术研发人员:王院生
申请(专利权)人:北京奇虎科技有限公司奇智软件北京有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1