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

文档序号:8905068阅读:417来源:国知局
用于对数据源的可用性进行监测的方法和装置的制造方法
【技术领域】
[0001]本发明的实施例涉及数据源监测,具体地,涉及对数据源的可用性进行监测的方法和装置。
【背景技术】
[0002]随着系统中包含的节点越来越多,系统需要连接多个数据源并且对这些数据源进行相应的监控和统一的管理。由于网络异常随时可能发生,因此数据源的稳定性尤为重要,由此需要一种对多个数据源的可用性进行监测的方法和装置,即,对数据源的连接性、数据源最大连接数等进行综合监测,并且告知系统该数据源是否可用。
[0003]在现有技术中,通过预执行时状态查询语言(SQL)监测来判断当前SQL语句是否执行成功,会因为网络波动导致错误。不能够准确的判断数据库设备的可用性,且为非主动性的监测。在数据源的可用性恢复正常或异常之后,不存在可用性回调函数。例如,当发现数据源的可用性正常时需要执行的函数(即,正常通知函数),以及当发现数据源的可用性不正常时需要执行的函数(即,异常通知函数)。另外,现有技术不能同时对多个数据源进行监测,即,不能应用于包括多种数据源的交互环境。最后,现有技术不能进行操作前监测,一般只能进行操作后监测,即当某个操作异常之后才知道数据源的可用性已经发生异常,并且不能在数据源恢复正常之后,主动执行某个动作。
[0004]因此,需要用于提前、可靠地对数据源的可用性进行监测的方法和装置,以用于预警性监测(例如当网络异常时,进行报警);当数据源不可用时,进行动态切换;以及对多个厂商的多种数据源进行监测。

【发明内容】

[0005]鉴于现有技术中的一个或多个问题,提出了一种用于对数据源的可用性进行监测的方法和装置,能够解决现有技术中无法在执行操作之前对多个数据源进行监测以及在数据源的可用性恢复正常或异常之后无法向系统进行通知的缺点,实现了支持监测多种数据源设备;支持同时监测多个数据源设备;提供方便的状态查询;提供可靠的异常、正常回调接口函数;以及消耗有限的资源。
[0006]在本发明的一个方面,提出了一种在状态跟踪器处用于对数据源的可用性进行监测的方法,所述方法包括:
[0007]从数据源配置管理中心获取数据源配置信息,并且根据所述数据源配置信息确定要监测的一个或多个数据源;以及
[0008]针对所述一个或多个数据源中的每一个,
[0009]创建并启动定时器;
[0010]根据所述数据源生成状态查询语言SQL语句;
[0011 ] 根据所述数据源获取数据源连接;
[0012]使用所述数据源连接在所述定时器的生命周期内分别对所述数据源执行一次或多次相应的SQL语句;以及
[0013]获取与所述数据源相对应的返回值,以判断所述数据源的可用性是否异常。
[0014]优选地,所述数据源配置信息包括数据源信息、以及是否监测所述数据源。
[0015]优选地,在针对所述一个或多个数据源中的每一个创建并启动定时器之前,所述方法还包括:
[0016]通过判断要监测的一个或多个数据源是否已经被监测,来对所述数据源进行去重处理。
[0017]优选地,获取与所述数据源相对应的返回值,以判断所述数据源的可用性是否异常包括:
[0018]如果不存在返回值,则判断所述数据源的可用性异常。
[0019]优选地,所述方法还包括:
[0020]当数据源的可用性异常时,调用通知接口以发出异常通知,并且当数据源的可用性正常时,调用所述通知接口以发出正常通知。
[0021 ] 优选地,所述方法还包括:
[0022]通过查询接口以订阅的方式实时地查询数据源的可用性。
[0023]在本发明的另一方面,提出了一种用于对数据源的可用性进行监测的装置,所述装置包括:
[0024]接收单元,被配置为从数据源配置管理中心获取数据源配置信息,根据所述数据源配置信息确定要监测的一个或多个数据源,并且将所述一个或多个数据源发送给状态机;
[0025]一个或多个定时器,被配置为对所述一个或多个数据源的可用性的监测进行定时;
[0026]状态查询语言SQL生成单元,被配置为根据所述一个或多个数据源生成SQL语句;
[0027]所述状态机,被配置为:
[0028]从所述接收单元接收所述一个或多个数据源,以及
[0029]针对所述一个或多个数据源中的每一个,
[0030]根据所述数据源获取数据源连接,
[0031]使用与所述数据源相对应的数据源连接在相应定时器的生命周期内分别对所述数据源执行一次或多次相应的SQL语句,以及
[0032]获取与所述数据源相对应的返回值,以判断相应数据源的可用性是否异常。
[0033]优选地,所述数据源配置信息包括数据源信息、以及是否监测所述数据源。
[0034]优选地,所述状态机被进一步配置为:
[0035]通过判断要监测的一个或多个数据源是否已经被监测,来对所述数据源进行去重处理。
[0036]优选地,所述状态机被进一步配置为:
[0037]如果不存在返回值,则判断所述数据源的可用性异常。
[0038]优选地,所述装置还包括:
[0039]通知接口,被配置为当数据源的可用性异常时被调用以发出异常通知,并且当数据源的可用性正常时被调用以发出正常通知。
[0040]优选地,所述装置还包括:
[0041]查询接口,被配置为以订阅的方式实时地查询数据源的可用性。
[0042]利用上述的方案,能够在数据源网络连接性要求较高的系统或设备中主动监测数据源的可用性。
【附图说明】
[0043]为了更好的理解本发明,将根据以下附图对本发明的实施例进行描述:
[0044]图1是示出了根据本发明的实施例的系统的框图,其中在该系统中可以对数据源的可用性进行监测;
[0045]图2是示出了根据本发明的实施例用于对数据源的可用性进行监测的方法的流程图;以及
[0046]图3是示出了根据本发明实施例用于对数据源的可用性进行监测的系统的示意图。
[0047]附图没有对实施例的所有电路或结构进行显示。贯穿所有附图相同的附图标记表示相同或相似的部件或特征。
【具体实施方式】
[0048]下面将详细描述本发明的具体实施例,应当注意,这里描述的实施例只用于举例说明,并不用于限制本发明。在以下描述中,为了提供对本发明的透彻理解,阐述了大量特定细节。然而,对于本领域普通技术人员显而易见的是:不必采用这些特定细节来实行本发明。在其他实例中,为了避免混淆本发明,未具体描述公知的电路、材料或方法。
[0049]在整个说明书中,对“ 一个实施例”、“实施例”、“ 一个示例”或“示例”的提及意味着:结合该实施例或示例描述的特定特征、结构或特性被包含在本发明至少一个实施例中。因此,在整个说明书的各个地方出现的短语“在一个实施例中”、“在实施例中”、“一个示例”或“示例”不一定都指同一实施例或示例。此外,可以以任何适当的组合和/或子组合将特定的特征、结构或特性组合在一个或多个实施例或示例中。此外,本领域普通技术人员应当理解,在此提供的附图都是为了说明的目的,并且附图不一定是按比例绘制的。这里使用的术语“和/或”包括一个或多个相关列出的项目的任何和所有组合。
[0050]本发明主要应用于需要对Mysql、Oracle和Sqlserver数据源进行监测的系统和设备。本发明主要应用于订单状态消息回转,作为针对数据源持久化消息的发送装置,需要对其所连接的数据源进行可用性监测。利用本发明,可以同时监测多个数据源的可用性状态,通过SQL语句的调用来监测数据源状态是否正常、或数据源是否可用(数据源可用性),并且提供了访问前是否监测数据源状态调用函数、数据源突然异常调用函数、以及数据源突然正常调用函数。本发明主要基于java开发,并且可以衍生到其他合适的语言,例如,BASIC、C# 等。
[0051]下面将参照图1对根据本发明的实施例的系统100进行详细描述。
[0052]如图1所示,系统100包括状态跟踪器110、数据源配置信息管理中心120、以及监测语句生成单元130。为了对数据源的可用性进行监测,在系统100中构建状态跟踪器110,此时状态跟踪器110并未运行,只是以实例化的状态存在于系统100之中。状态跟踪器110包括接收单元111、定时器112、状态机113、查询接口 114、以及通知接口 115。
[0053]此外,系统100还可以包括状态持久化单元140。状态持久化单元140可以将需要监测的数据源状态持久化到持久化存储单元150,例如:数据源的某张表、一个zook^per协同工作框架节点、或mongodb、一个文件等。
[0054]应当注意的是,该系统不依赖于其他任何装置,可以作为一个模块容易地嵌入到其他任何系统,也可以作为一个独立的系统,进行数据源的状态轮训监测,并通过应用程序接口(API)或其他持久化的形式提供对当前数据源连接状态的查询。
[0055]接下来,将结合图1和图2对系统100中的各个单元的功能以及用于对数据源的可用性进行监测的方法进行详细描述。
[0056]首先,在步骤S201,由接收单元111从数据源配置信息管理中心120获取数据源配置信息。数据源配置信息位于持久化装置之中,并且可以进行编辑。数据源配置信息包括数据源信息、以及是否监测所述数据源,其中,数据源信息包括数据源的标识。每个数据源均有一个标识(数据源唯一标识),该标识可以通过任何组合方式构成,只需要每个数据源的标识相同且唯一即可。
[0057]然后,在步骤S202,所述
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1