用于对数据源的可用性进行监测的方法和装置.pdf

上传人:大师****2 文档编号:21702 上传时间:2018-01-12 格式:PDF 页数:11 大小:627.26KB
返回 下载 相关 举报
摘要
申请专利号:

CN201510303419.9

申请日:

2015.06.05

公开号:

CN104881256A

公开日:

2015.09.02

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效IPC(主分类):G06F 3/06申请日:20150605|||公开

IPC分类号:

G06F3/06; G06F17/30

主分类号:

G06F3/06

申请人:

北京京东尚科信息技术有限公司; 北京京东世纪贸易有限公司

发明人:

王海

地址:

100080北京市海淀区杏石口路65号西杉创意园西区11C楼东段1-4层西段1-4层

优先权:

专利代理机构:

中科专利商标代理有限责任公司11021

代理人:

倪斌

PDF下载: PDF下载
内容摘要

描述了一种在状态跟踪器处用于对数据源的可用性进行监测的方法。所述方法包括:从数据源配置管理中心获取数据源配置信息,并且根据所述数据源配置信息确定要监测的一个或多个数据源;以及针对所述一个或多个数据源中的每一个:创建并启动定时器;根据所述数据源生成状态查询语言SQL语句;根据所述数据源获取数据源连接;使用所述数据源连接在所述定时器的生命周期内分别对所述数据源执行一次或多次相应的SQL语句;以及获取与所述数据源相对应的返回值,以判断所述数据源的可用性是否异常。

权利要求书

1.  一种在状态跟踪器处用于对数据源的可用性进行监测的方法,所述方法包括:
从数据源配置管理中心获取数据源配置信息,并且根据所述数据源配置信息确定要监测的一个或多个数据源;以及
针对所述一个或多个数据源中的每一个,
创建并启动定时器;
根据所述数据源生成状态查询语言SQL语句;
根据所述数据源获取数据源连接;
使用所述数据源连接在所述定时器的生命周期内分别对所述数据源执行一次或多次相应的SQL语句;以及
获取与所述数据源相对应的返回值,以判断所述数据源的可用性是否异常。

2.
  根据权利要求1所述的方法,其中,所述数据源配置信息包括数据源信息、以及是否监测所述数据源。

3.
  根据权利要求1所述的方法,其中,在针对所述一个或多个数据源中的每一个创建并启动定时器之前,所述方法还包括:
通过判断要监测的一个或多个数据源是否已经被监测,来对所述数据源进行去重处理。

4.
  根据权利要求1所述的方法,其中,获取与所述数据源相对应的返回值,以判断所述数据源的可用性是否异常包括:
如果不存在返回值,则判断所述数据源的可用性异常。

5.
  根据权利要求1至4中任一项所述的方法,还包括:
当数据源的可用性异常时,调用通知接口以发出异常通知,并且当数据源的可用性正常时,调用所述通知接口以发出正常通知。

6.
  根据权利要求1至4中任一项所述的方法,还包括:
通过查询接口以订阅的方式实时地查询数据源的可用性。

7.
  一种用于对数据源的可用性进行监测的装置,所述装置包括:
接收单元,被配置为从数据源配置管理中心获取数据源配置信息, 根据所述数据源配置信息确定要监测的一个或多个数据源,并且将所述一个或多个数据源发送给状态机;
一个或多个定时器,被配置为对所述一个或多个数据源的可用性的监测进行定时;
状态查询语言SQL生成单元,被配置为根据所述一个或多个数据源生成SQL语句;
所述状态机,被配置为:
从所述接收单元接收所述一个或多个数据源,以及
针对所述一个或多个数据源中的每一个,
根据所述数据源获取数据源连接,
使用与所述数据源相对应的数据源连接在相应定时器的生命周期内分别对所述数据源执行一次或多次相应的SQL语句,以及
获取与所述数据源相对应的返回值,以判断相应数据源的可用性是否异常。

8.
  根据权利要求7所述的装置,其中,所述数据源配置信息包括数据源信息、以及是否监测所述数据源。

9.
  根据权利要求7所述的装置,其中,所述状态机被进一步配置为:
通过判断要监测的一个或多个数据源是否已经被监测,来对所述数据源进行去重处理。

10.
  根据权利要求7中任一项所述的装置,其中,所述状态机被进一步配置为:
如果不存在返回值,则判断所述数据源的可用性异常。

11.
  根据权利要求7至10中任一项所述的装置,还包括:
通知接口,被配置为当数据源的可用性异常时被调用以发出异常通知,并且当数据源的可用性正常时被调用以发出正常通知。

12.
  根据权利要求7至10中任一项所述的装置,还包括:
查询接口,被配置为以订阅的方式实时地查询数据源的可用性。

说明书

用于对数据源的可用性进行监测的方法和装置
技术领域
本发明的实施例涉及数据源监测,具体地,涉及对数据源的可用性进行监测的方法和装置。
背景技术
随着系统中包含的节点越来越多,系统需要连接多个数据源并且对这些数据源进行相应的监控和统一的管理。由于网络异常随时可能发生,因此数据源的稳定性尤为重要,由此需要一种对多个数据源的可用性进行监测的方法和装置,即,对数据源的连接性、数据源最大连接数等进行综合监测,并且告知系统该数据源是否可用。
在现有技术中,通过预执行时状态查询语言(SQL)监测来判断当前SQL语句是否执行成功,会因为网络波动导致错误。不能够准确的判断数据库设备的可用性,且为非主动性的监测。在数据源的可用性恢复正常或异常之后,不存在可用性回调函数。例如,当发现数据源的可用性正常时需要执行的函数(即,正常通知函数),以及当发现数据源的可用性不正常时需要执行的函数(即,异常通知函数)。另外,现有技术不能同时对多个数据源进行监测,即,不能应用于包括多种数据源的交互环境。最后,现有技术不能进行操作前监测,一般只能进行操作后监测,即当某个操作异常之后才知道数据源的可用性已经发生异常,并且不能在数据源恢复正常之后,主动执行某个动作。
因此,需要用于提前、可靠地对数据源的可用性进行监测的方法和装置,以用于预警性监测(例如当网络异常时,进行报警);当数据源不可用时,进行动态切换;以及对多个厂商的多种数据源进行监测。
发明内容
鉴于现有技术中的一个或多个问题,提出了一种用于对数据源的 可用性进行监测的方法和装置,能够解决现有技术中无法在执行操作之前对多个数据源进行监测以及在数据源的可用性恢复正常或异常之后无法向系统进行通知的缺点,实现了支持监测多种数据源设备;支持同时监测多个数据源设备;提供方便的状态查询;提供可靠的异常、正常回调接口函数;以及消耗有限的资源。
在本发明的一个方面,提出了一种在状态跟踪器处用于对数据源的可用性进行监测的方法,所述方法包括:
从数据源配置管理中心获取数据源配置信息,并且根据所述数据源配置信息确定要监测的一个或多个数据源;以及
针对所述一个或多个数据源中的每一个,
创建并启动定时器;
根据所述数据源生成状态查询语言SQL语句;
根据所述数据源获取数据源连接;
使用所述数据源连接在所述定时器的生命周期内分别对所述数据源执行一次或多次相应的SQL语句;以及
获取与所述数据源相对应的返回值,以判断所述数据源的可用性是否异常。
优选地,所述数据源配置信息包括数据源信息、以及是否监测所述数据源。
优选地,在针对所述一个或多个数据源中的每一个创建并启动定时器之前,所述方法还包括:
通过判断要监测的一个或多个数据源是否已经被监测,来对所述数据源进行去重处理。
优选地,获取与所述数据源相对应的返回值,以判断所述数据源的可用性是否异常包括:
如果不存在返回值,则判断所述数据源的可用性异常。
优选地,所述方法还包括:
当数据源的可用性异常时,调用通知接口以发出异常通知,并且当数据源的可用性正常时,调用所述通知接口以发出正常通知。
优选地,所述方法还包括:
通过查询接口以订阅的方式实时地查询数据源的可用性。
在本发明的另一方面,提出了一种用于对数据源的可用性进行监测的装置,所述装置包括:
接收单元,被配置为从数据源配置管理中心获取数据源配置信息,根据所述数据源配置信息确定要监测的一个或多个数据源,并且将所述一个或多个数据源发送给状态机;
一个或多个定时器,被配置为对所述一个或多个数据源的可用性的监测进行定时;
状态查询语言SQL生成单元,被配置为根据所述一个或多个数据源生成SQL语句;
所述状态机,被配置为:
从所述接收单元接收所述一个或多个数据源,以及
针对所述一个或多个数据源中的每一个,
根据所述数据源获取数据源连接,
使用与所述数据源相对应的数据源连接在相应定时器的生命周期内分别对所述数据源执行一次或多次相应的SQL语句,以及
获取与所述数据源相对应的返回值,以判断相应数据源的可用性是否异常。
优选地,所述数据源配置信息包括数据源信息、以及是否监测所述数据源。
优选地,所述状态机被进一步配置为:
通过判断要监测的一个或多个数据源是否已经被监测,来对所述数据源进行去重处理。
优选地,所述状态机被进一步配置为:
如果不存在返回值,则判断所述数据源的可用性异常。
优选地,所述装置还包括:
通知接口,被配置为当数据源的可用性异常时被调用以发出异常通知,并且当数据源的可用性正常时被调用以发出正常通知。
优选地,所述装置还包括:
查询接口,被配置为以订阅的方式实时地查询数据源的可用性。
利用上述的方案,能够在数据源网络连接性要求较高的系统或设备中主动监测数据源的可用性。
附图说明
为了更好的理解本发明,将根据以下附图对本发明的实施例进行描述:
图1是示出了根据本发明的实施例的系统的框图,其中在该系统中可以对数据源的可用性进行监测;
图2是示出了根据本发明的实施例用于对数据源的可用性进行监测的方法的流程图;以及
图3是示出了根据本发明实施例用于对数据源的可用性进行监测的系统的示意图。
附图没有对实施例的所有电路或结构进行显示。贯穿所有附图相同的附图标记表示相同或相似的部件或特征。
具体实施方式
下面将详细描述本发明的具体实施例,应当注意,这里描述的实施例只用于举例说明,并不用于限制本发明。在以下描述中,为了提供对本发明的透彻理解,阐述了大量特定细节。然而,对于本领域普通技术人员显而易见的是:不必采用这些特定细节来实行本发明。在其他实例中,为了避免混淆本发明,未具体描述公知的电路、材料或方法。
在整个说明书中,对“一个实施例”、“实施例”、“一个示例”或“示例”的提及意味着:结合该实施例或示例描述的特定特征、结构或特性被包含在本发明至少一个实施例中。因此,在整个说明书的各个地方出现的短语“在一个实施例中”、“在实施例中”、“一个示例”或“示例”不一定都指同一实施例或示例。此外,可以以任何适当的组合和/或子组合将特定的特征、结构或特性组合在一个或多个实施例或示例中。此外,本领域普通技术人员应当理解,在此提供的附图都 是为了说明的目的,并且附图不一定是按比例绘制的。这里使用的术语“和/或”包括一个或多个相关列出的项目的任何和所有组合。
本发明主要应用于需要对Mysql、Oracle和Sqlserver数据源进行监测的系统和设备。本发明主要应用于订单状态消息回转,作为针对数据源持久化消息的发送装置,需要对其所连接的数据源进行可用性监测。利用本发明,可以同时监测多个数据源的可用性状态,通过SQL语句的调用来监测数据源状态是否正常、或数据源是否可用(数据源可用性),并且提供了访问前是否监测数据源状态调用函数、数据源突然异常调用函数、以及数据源突然正常调用函数。本发明主要基于java开发,并且可以衍生到其他合适的语言,例如,BASIC、C#等。
下面将参照图1对根据本发明的实施例的系统100进行详细描述。
如图1所示,系统100包括状态跟踪器110、数据源配置信息管理中心120、以及监测语句生成单元130。为了对数据源的可用性进行监测,在系统100中构建状态跟踪器110,此时状态跟踪器110并未运行,只是以实例化的状态存在于系统100之中。状态跟踪器110包括接收单元111、定时器112、状态机113、查询接口114、以及通知接口115。
此外,系统100还可以包括状态持久化单元140。状态持久化单元140可以将需要监测的数据源状态持久化到持久化存储单元150,例如:数据源的某张表、一个zookeeper协同工作框架节点、或mongodb、一个文件等。
应当注意的是,该系统不依赖于其他任何装置,可以作为一个模块容易地嵌入到其他任何系统,也可以作为一个独立的系统,进行数据源的状态轮训监测,并通过应用程序接口(API)或其他持久化的形式提供对当前数据源连接状态的查询。
接下来,将结合图1和图2对系统100中的各个单元的功能以及用于对数据源的可用性进行监测的方法进行详细描述。
首先,在步骤S201,由接收单元111从数据源配置信息管理中心120获取数据源配置信息。数据源配置信息位于持久化装置之中,并且可以进行编辑。数据源配置信息包括数据源信息、以及是否监测所述数据源,其中,数据源信息包括数据源的标识。每个数据源均有一个标 识(数据源唯一标识),该标识可以通过任何组合方式构成,只需要每个数据源的标识相同且唯一即可。
然后,在步骤S202,所述接收单元111根据获取的数据源配置信息确定要监测的一个或多个数据源。所监测的数据源具有多种形式,例如Mysql数据源、Oracle数据源、Sqlserver数据源。
然后,在步骤203,通过判断要监测的一个或多个数据源是否已经被监测,来对所述数据源进行去重处理。由于在一个或多个数据源中可能存在已经被监测的数据源,因此需要进行去重处理,以滤除已经被监测的数据源,从而减小需要监测的数据源的数量,达到节约资源和提高效率的目的。
接下来,在步骤S204,为一个或多个数据源中的每一个创建并启动定时器112。定时器112包括延迟执行时间和下次执行时间。应当注意的是,针对一个数据源只能创建和启动一个定时器。
在步骤S205,监测语句生成单元130分别根据一个或多个数据源生成状态查询语言SQL语句。针对不同的数据源,监测语句生成单元130可以生成不同的SQL语句,例如,针对ORACLE数据源,生成的SQL语句为SELECT 1FROM DUAL;以及针对MYSQL数据源和SQLSERVER数据源,生成的SQL语句为SELECT 1。
在步骤S206,状态机113根据所述一个或多个数据源中的每一个获取数据源连接。因为大部分数据源都会缓存连接,所以通过获取连接动作是不能判断数据源可用性的。
接下来,在步骤S207,状态机113使用与一个或多个数据源相对应的数据源连接在相应定时器112的生命周期内分别对相应数据源执行一次或多次相应的SQL语句。具体对数据源执行多少次SQL语句由轮询次数参数PollingTimes来指示。当监测对象的敏感度较高时,可以将PollingTimes设置为1;并且当监测对象的敏感度较低时,可以将PollingTimes设置为例如3等。
最后,在步骤S208,状态机113获取分别与一个或多个数据源相对应的返回值,以判断相应数据源的可用性是否异常。具体地,当轮询次数参数PollingTimes为1时,判断是否存在返回值resultset.next(), 如果存在返回值,则数据源可用性正常,设置当前状态为true,如果不存在返回值,则发出异常警报。当轮询次数参数PollingTimes为例如3时,判断是否存在至少一个返回值resultset.next(),如果存在至少一个返回值,则数据源可用性正常,设置当前状态为true,如果不存在返回值,则发出异常警报。当然,也可以设置其他判断条件,例如,判断条件为是否存在至少两个返回值等等。
在步骤S209,当数据源的可用性异常时,调用通知接口115以发出异常通知,以及当数据源的可用性正常时,调用通知接口115以发出正常通知。通知接口115可任意扩展,以执行需要执行的动作。
在步骤S210,查询接口114以订阅的方式实时地查询数据源的可用性。
本发明可以应用在任何需要对数据源进行网络连接访问状态监测的场景或需要对数据源集群进行切换的场景。如果发现某个数据源没有可用性,则主动切换数据。当然切换数据源的动作不包含在本发明中。
图3示出了用于对产品进行评估的系统300的示意图。系统300包括处理器310,例如,数字信号处理器(DSP)。处理器310可以是用于执行本文所描述的过程的不同动作的单个单元或多个单元。系统300还可以包括输入/输出(I/O)单元330,用于从其他实体接收信号或者向其他实体发送信号。
此外,系统300包括存储器320,该存储器320可以具有以下形式:非易失性或易失性存储器,例如,电可擦除可编程只读存储器(EEPROM)、闪存等。存储器320存储计算机可读指令,当处理器310执行该计算机可读指令时,该计算机可读指令使处理器执行本文所述的动作。
以上的详细描述通过使用示意图、流程图和/或示例,已经阐述了检查方法和系统的众多实施例。在这种示意图、流程图和/或示例包含一个或多个功能和/或操作的情况下,本领域技术人员应理解,这种示意图、流程图或示例中的每一功能和/或操作可以通过各种结构、硬件、软件、固件或实质上它们的任意组合来单独和/或共同实现。在一个实 施例中,本发明的实施例所述主题的若干部分可以通过专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、或其他集成格式来实现。然而,本领域技术人员应认识到,这里所公开的实施例的一些方面在整体上或部分地可以等同地实现在集成电路中,实现为在一台或多台计算机上运行的一个或多个计算机程序(例如,实现为在一台或多台计算机系统上运行的一个或多个程序),实现为在一个或多个处理器上运行的一个或多个程序(例如,实现为在一个或多个微处理器上运行的一个或多个程序),实现为固件,或者实质上实现为上述方式的任意组合,并且本领域技术人员根据本公开,将具备设计电路和/或写入软件和/或固件代码的能力。此外,本领域技术人员将认识到,本公开所述主题的机制能够作为多种形式的程序产品进行分发,并且无论实际用来执行分发的信号承载介质的具体类型如何,本公开所述主题的示例性实施例均适用。信号承载介质的示例包括但不限于:可记录型介质,如软盘、硬盘驱动器、紧致盘(CD)、数字通用盘(DVD)、数字磁带、计算机存储器等;以及传输型介质,如数字和/或模拟通信介质(例如,光纤光缆、波导、有线通信链路、无线通信链路等)。
虽然已参照几个典型实施例描述了本发明,但应当理解,所用的术语是说明和示例性、而非限制性的术语。由于本发明能够以多种形式具体实施而不脱离发明的精神或实质,所以应当理解,上述实施例不限于任何前述的细节,而应在随附权利要求所限定的精神和范围内广泛地解释,因此落入权利要求或其等效范围内的全部变化和改型都应为随附权利要求所涵盖。

用于对数据源的可用性进行监测的方法和装置.pdf_第1页
第1页 / 共11页
用于对数据源的可用性进行监测的方法和装置.pdf_第2页
第2页 / 共11页
用于对数据源的可用性进行监测的方法和装置.pdf_第3页
第3页 / 共11页
点击查看更多>>
资源描述

《用于对数据源的可用性进行监测的方法和装置.pdf》由会员分享,可在线阅读,更多相关《用于对数据源的可用性进行监测的方法和装置.pdf(11页珍藏版)》请在专利查询网上搜索。

描述了一种在状态跟踪器处用于对数据源的可用性进行监测的方法。所述方法包括:从数据源配置管理中心获取数据源配置信息,并且根据所述数据源配置信息确定要监测的一个或多个数据源;以及针对所述一个或多个数据源中的每一个:创建并启动定时器;根据所述数据源生成状态查询语言SQL语句;根据所述数据源获取数据源连接;使用所述数据源连接在所述定时器的生命周期内分别对所述数据源执行一次或多次相应的SQL语句;以及获取与。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1