CN112416704A - 一种检测系统故障的方法及装置 - Google Patents
一种检测系统故障的方法及装置 Download PDFInfo
- Publication number
- CN112416704A CN112416704A CN202011243702.4A CN202011243702A CN112416704A CN 112416704 A CN112416704 A CN 112416704A CN 202011243702 A CN202011243702 A CN 202011243702A CN 112416704 A CN112416704 A CN 112416704A
- Authority
- CN
- China
- Prior art keywords
- determining
- data
- expression
- service
- balanced
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3447—Performance evaluation by modeling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/08—Insurance
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- General Business, Economics & Management (AREA)
- Technology Law (AREA)
- Strategic Management (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Computer Hardware Design (AREA)
- Marketing (AREA)
- Economics (AREA)
- Development Economics (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本说明书公开了一种检测系统故障的方法及装置。针对系统中每一个子系统的数据库,根据该数据库的各物理模型,确定对象图中的各对象节点,然后,根据各对象节点对应的业务内容以及各业务的业务逻辑,确定由对象节点组成的平衡表达式,之后,针对每个平衡表达式,当确定该平衡表达式中对象节点在数据库中的数据变更时,确定平衡表达式实例,若该平衡表达式实例等号两侧的数据不一致,则确定存在系统故障,并发送提示信息。如此可在系统中有业务的数据变更时,通过判断该业务对应的平衡表达式实例两侧的运算结果是否一致,来检测系统中是否存在故障,以及时高效地发现问题,减少因系统故障为企业带来的损失。
Description
技术领域
本说明书涉及计算机领域,尤其涉及一种检测系统故障的方法及装置。
背景技术
随着互联网技术和计算机技术的发展,各种企业的业务系统也越来越丰富。而一些业务范围广且业务种类繁多的企业往往会使用分布式系统来进行对各种业务的处理。
尤其是,在涉及资源分配的场景中,由于资源分配可能涉及多种业务,因此一般会采用分布式系统来执行业务,在处理业务时通常需要多个子系统之间的相互协作来实现。并且,分布式系统中的不同子系统用于处理业务中不同的事务,例如,保险理赔场景中,可由不同的保险子系统,分别确定不同类型的赔付金额,汇总后确定总赔付金额。
但是,由于这种分布式系统中各个子系统之间是解耦的,因此当某个子系统出现系统错误时,子系统自身可能难以检测到这种错误,即,子系统认为自身执行的事务正常,导致业务执行错误。
在现有技术中,在对分布式系统进行故障排查时,往往采用的是人工核对各子系统的业务数据是否存在问题,最常见的就是人工对账,这种方式效率低,无法及时准确地发现系统故障,若未能及时发现系统的故障所在,则对企业造成的损失不可估量。
因此亟需一种可以检测系统故障的方法,以减少系统故障对业务的影响,减少企业的损失。
发明内容
本说明书提供一种检测系统故障的方法及装置,以部分的解决现有技术存在的上述问题。
本说明书采用下述技术方案:
本说明书提供了一种检测系统故障的方法,所述方法具体包括:
针对系统中每一个子系统的数据库,确定该数据库的各物理模型;
根据获取的各物理模型,确定对象图中的各对象节点;
根据各对象节点对应的业务内容以及各业务的业务逻辑,确定由对象节点组成的平衡表达式,其中,所述平衡表达式等号两侧的业务内容在业务逻辑上一致;
针对每个平衡表达式,当确定该平衡表达式中对象节点在数据库中的数据变更时,根据变更后的数据以及该平衡表达式,确定平衡表达式实例;
若所述平衡表达式实例等号两侧的数据不一致,则确定存在系统故障,并发送提示信息。
可选地,针对系统中每一个子系统的数据库,确定该数据库的各物理模型,具体包括:
针对系统中每一个子系统,在该子系统启动时,载入该子系统的对象关系映射框架;
通过载入的所述对象关系映射框架扫描该子系统的数据库,确定该子系统的数据库中的各物理模型。可选地,所述方法还包括:
根据确定出的各平衡表达式中包含的对象节点,订阅各对象节点的日志消息。
可选地,根据变更后的数据以及该平衡表达式,确定平衡表达式实例,具体包括:
接收数据库发送的该平衡表达式中对象节点的日志消息;
根据所述日志消息中携带的数据以及业务标识,确定与所述业务标识对应的该平衡表达式中对象节点对应的变更后的数据;
根据该平衡表达式以及确定出的对象节点变更后的数据,确定该平衡表达式的平衡表达式实例。
可选地,若所述平衡表达式实例等号两侧的数据不一致,则确定存在系统故障,并发送提示信息,具体包括:
若所述平衡表达式实例等号两侧的数据不一致,则根据预设时长,继续根据接收到的日志消息,确定所述平衡表达式实例等号两侧的数据;
当超出所述预设时长且确定出的所述平衡表达式实例等号两侧的数据仍不一致时,则确定存在系统故障,并发送提示信息。
可选地,确定存在系统故障,并发送提示信息,具体包括:
当所述平衡表达式实例中存在对象节点对应的数据为空时,确定提供所述对象节点对应的数据的子系统故障,并发送提示信息;或者
当所述平衡表达式实例中存在对象节点对应的数据的数值,不在预设的取值范围内时,确定提供所述对象节点对应的数据的子系统故障,并发送提示信息。
可选地,所述方法还包括:
针对每个平衡表达式实例,若确定每个平衡表达式实例等号两侧的数据一致,则确定系统正常,继续执行各平衡表达式对应的业务。
本说明书提供了一种检测系统故障的装置,所述装置具体包括:
物理模型确定模块,用于针对系统中每一个子系统的数据库,确定该数据库的各物理模型;
对象节点确定模块,用于根据获取的各物理模型,确定对象图中的各对象节点;
表达式确定模块,用于根据各对象节点对应的业务内容以及各业务的业务逻辑,确定由对象节点组成的平衡表达式,其中,所述平衡表达式等号两侧的业务内容在业务逻辑上一致;
实例确定模块,用于针对每个平衡表达式,当确定该平衡表达式中对象节点在数据库中的数据变更时,根据变更后的数据以及该平衡表达式,确定平衡表达式实例;
系统故障检测模块,用于若所述平衡表达式实例等号两侧的数据不一致,则确定存在系统故障,并发送提示信息。
本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述检测系统故障的方法。
本说明书提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述检测系统故障的方法。
本说明书采用的上述至少一个技术方案能够达到以下有益效果:
在本说明书提供的检测系统故障的方法中,针对系统中每一个子系统的数据库,根据该数据库的各物理模型,确定对象图中的各对象节点,然后,根据各对象节点对应的业务内容以及各业务的业务逻辑,确定由对象节点组成的平衡表达式,之后,针对每个平衡表达式,当确定该平衡表达式中对象节点在数据库中的数据变更时,确定平衡表达式实例,若该平衡表达式实例等号两侧的数据不一致,则确定存在系统故障,并发送提示信息。
从上述方法中可以看出,本方法可在系统中有业务的数据变更时,通过判断该业务对应的平衡表达式实例两侧的运算结果是否一致,来检测系统中是否存在故障,以及时高效地发现问题,减少因系统故障为企业带来的损失。
附图说明
此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:
图1为本说明书中一种检测系统故障的方法的流程示意图;
图2为本说明书提供的一种对象图的示意图;
图3为本说明书提供的一种检测系统故障的装置的示意图;
图4为本说明书提供的对应于图1的电子设备的结构示意图。
具体实施方式
为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
目前,在涉及资源分配的分布式系统场景中,在系统处理业务时,需要多个子系统之间相互协作,系统中各个子系统分工明确,分别处理与业务相关的不同事务。
例如在保险业务中,当需要对保险对应的受益人进行理赔时,可以由不同的保险子系统确定不同类型的赔付额,将各子系统的赔付额求和可得赔付总额。其中,系统中一个子系统可以只负责一个类型的赔付额的确定,也可以负责多个类型的赔付额的确定。在确定赔付总额时,需要保险系统正常运行,并确定出准确的赔付额,以确保对受益人的赔付合理公正。而为了避免由于保险系统故障导致确定出的赔付额有误,对企业造成损失的情况,则需要对系统进行故障检测,以及时发现故障。
由于不同的子系统是独立运行的,当某个子系统出现故障时,可能会出现该子系统执行的事务出现错误的情况,例如,子系统中存储的错误的赔付策略,使得计算出的赔付额错误,这种情况下,该子系统是无法自行检测事务是否错误的。导致目前需要通过人工对账的方式,来检测是否有子系统的事务执行错误,使得难以及时发现系统错误,造成损失。
因此,目前亟需一种更加快捷有效的系统故障的检测方法。
为了解决现有对分布式系统进行故障排查时,人工对账效率低,无法及时准确地发现系统故障的情况,本申请提供了一种检测系统故障的方法。
图1为本说明书中一种检测系统故障的方法的流程示意图,具体包括以下步骤:
S100:针对系统中每一个子系统的数据库,确定该数据库的各物理模型。
在本说明书中,当系统接收到用户的业务请求时,可根据业务请求对应的业务,确定执行业务所需的各子系统,并将执行业务所需的数据发送至各子系统,则各子系统可将接收到数据的存储至自身对应的数据库中。其中,存储的数据通常是与用户以及业务相关的各种数据,如用户基本信息、用户办理的业务内容、业务办理时间、业务时效、业务对应的资源等数据。当系统中有业务变更时,可通过对各子系统进行对账的方式,来检测系是否存在统故障,这需要提取各子系统的数据库中存储的数据。而为了准确的确定与该有变更的业务相关的数据,首先,便需要确定每一个子系统的数据库中的各物理模型,通常子系统的数据库中的物理模型至少包括:用于存储业务执行结果相关内容的数据表对应的物理模型。
本说明书提供的检测系统故障的过程,以核对系统的服务器为该过程的执行主体为例进行说明。
在确定每一个子系统的数据库中的各物理模型时,具体的,该核对系统的服务器可以针对系统中每一个子系统,在该子系统启动时,载入该子系统的对象关系映射(ObjectRelational Mapping,ORM)框架,通过载入的ORM框架扫描该子系统的数据库,确定该子系统的数据库中的各物理模型。其中,各物理模型可提供与该物理模型对应的数据库的结构的可视化提取,以便于在后续步骤中生成对象图。
当然,如何通过ORM框架扫描该子系统的数据库,已经是较为成熟的技术方案,因此本说明书对具体扫描过程不做赘述。
S102:根据获取的各物理模型,确定对象图中的各对象节点。
在本说明书提供的一个或多个实施例中,在确定各子系统对应的数据库中的物理模型之后,为了方便建立平衡表达式,可以根据确定出的各物理模型,确定对象图,其中,不同的物理模型对应该对象图中不同的对象节点。使得后续可通过该对象图中的对象节点,确定平衡表达式。
在本说明书提供的一个或多个实施例中,核对系统的服务器可以根据获取的各物理模型,确定反映了各对象间关系的对象图,以及确定对象图中的各对象节点。其中,对象图可以说明数据库中的数据结构。
图2为本说明书提供一种对象图的示意图。如图所示,对象图中各对象节点分别为用户基本信息表(user_information表)、业务总额表(Proj_total_sum表)、费用a表(Proj_fee_a表)、费用b表(Proj_fee_b表)、费用c表(Proj_fee_c表)以及费用d表(Proj_fee_d表)。其中,用户基本信息表包括用户姓名、手机号、年龄、ID以及项目五种信息。业务总额表包括用户姓名、业务总额两种信息。费用a表包括用户姓名、费用a两种信息。费用b表包括用户姓名、费用b两种信息。费用c表包括用户姓名、费用c两种信息。费用d表包括用户姓名、费用d两种信息。以保险系统为例,图2中的费用a表、费用b表、费用c表以及费用d表可以是存放着各需要进行赔付的保险的误工费的赔付额、营养费的赔付额、医疗费的赔付额以及交通费的赔付额的数据表。则业务总额表可以是存放各保险的赔付总额的数据表。
S104:根据各对象节点对应的业务内容以及各业务的业务逻辑,确定由对象节点组成的平衡表达式,其中,所述平衡表达式等号两侧的业务内容在业务逻辑上一致。
在分布式系统中,业务可由该系统中不同的子系统协同处理,也就是由不同子系统处理的不同事务,因此子系统处理业务产生的数据间往往存在着一定对应关系。以保险系统为例,该保险系统中各子系统处理的不同事务的数据可以是一个保险的一种或几种赔付额,也可以是该保险的赔付总额。而在处理出保业务时,不同种类的各赔付额之和与赔付总额间存在相等的关系。因此,可根据上述相等的关系构建平衡表达式,在执行出保业务时,根据各子系统处理事务产生的数据,判断该平衡表达式等号两侧是否相等的方法,对各子系统进行对账,来检测系统是否存在故障。于是,在本说明书提供的一个或多个实施例中,在确定出了对象图中的各对象节点后,核对系统的服务器可以根据各对象节点对应的业务内容以及各业务的业务逻辑,确定由对象节点组成的平衡表达式。
其中,对象节点对应的业务内容用于表示数据库中存储的哪些业务的哪些数据,例如,某子系统的数据库中的某个物理模型对应的是存储精神伤害赔付金额的数据表,则根据该物理模型确定的对象节点所对应的业务内容可为:精神伤害赔付金额。业务逻辑用于描述该平衡表达式等号两边的各业务内容的具体的运算关系,如,哪些业务内容与哪些业务内容经过怎样的运算后相等。
具体的,首先,核对系统的服务器可根据需要检测的各业务,确定各业务对应的业务流程以及业务逻辑,之后,按照业务流程以及业务逻辑,确定业务执行后的业务结果是根据哪些流程节点的数据确定的,然后确定存储各流程节点的数据对应的对象节点,以及业务结果的数据对应的对象节点,并建立该业务的对象节点组成的平衡表达式。或者,也可由业务方的工作人员,根据业务逻辑以及业务内容,通过该对象图,建立不同业务分别对应的平衡表达式。
进一步地,在本说明书提供的一个或多个实施例中,核对系统的服务器在确定了各平衡表达式后,还可以根据确定出的各平衡表达式中包含的对象节点,订阅各对象节点的日志消息。以便于在后续步骤中,可以根据该日志消息,确定该日志消息对应的对象节点的变更后的数据。其中,该日志消息可以是二进制日志(Binary Log,binlog),该binlog日志可以记录数据库中所有“增”、“删”、“改”的操作。如此,便可以根基该binlog日志,确定哪些业务有变更,以及变更了哪些数据。
在本说明书提供的一个或多个实施例中,以该系统是保险系统为例,在投保人购买了保险后,与该保险相关的被保险人信息、受益人信息以及该保险的具体信息等信息,都会存储在对应的数据库中。此时,数据库中存储的对该保险受益人的各赔付项的赔付额为空。若被保险人在保险有效期内发生了事故,并提出损失理赔,则该保险系统需要针对该被保险人购买的保险,确定需要赔付给受益人的总额,此时,与该保险对应的数据库中存储的各项赔付项的赔付额变更。而一种保险可能涉及多个赔付项,如医疗费、误工费、营养费等,这些赔付项的具体赔付额以及赔付总额可由保险系统的不同子系统分别确定。在该保险对应的平衡表达式的业务逻辑上,各赔付项的赔付额与赔付总额分处平衡表达式等号两侧,在该保险系统正常运行的情况下,各赔付额总和与赔付总额相等。
S106:针对每个平衡表达式,当确定该平衡表达式中对象节点在数据库中的数据变更时,根据变更后的数据以及该平衡表达式,确定平衡表达式实例。
在本说明书提供的一个或多个实施例中,在系统执行业务时产生了数据的变更时,如若变更的数据是任一平衡表达式中包含的对象节点所对应的数据时,则核对系统的服务器可通过该平衡表达式接收到存储该数据的数据库发送的日志消息。于是,该核对系统的服务器还可根据接收到的日志消息,确定需要生成实例的平衡表达式,并根据该变更后的数据以及该平衡表达式,确定平衡表达式实例。
具体的,针对已经确定出的每个平衡表达式,该核对系统的服务器,当接收到数据库发送的该平衡表达式中对象节点的日志消息时,可先并根据该日志消息中携带的数据以及业务标识,确定与该业务标识对应的该平衡表达式中对象节点的实例。之后,根据该平衡表达式以及确定出的对象节点的实例,确定该平衡表达式的平衡表达式实例。
另外,在本说明书提供的一个或多个实施例中,由于在分布式系统中,系统处理的业务繁多,可能存在系统处理的多个业务在同一时段都有变更的情况,则系统需要确定的平衡表达式实例有多个。这时,系统需要确定的变更后的数据也涉及多个平衡表达式实例,这便需要识别哪些变更后的数据是用于确定同一个平衡表达式实例的。基于上述原因,系统可根据日志消息中携带的不同数据的不同业务标识,确定哪些变更后的数据用于确定同一个平衡表达式实例。例如在保险理赔场景中,系统在针对多个保险确认该保险需要赔付的各赔付项的赔付额以及该保险的赔付总额时,可根据日志消息中携带的数据的业务标识,确定该保险的各赔付额以及赔付总额,以确定该保险的平衡表达式实例。
在本说明书提供的一个或多个实施例中,以保险赔付场景为例,根据图2中的对象图,确定出的一个需要进行赔付的保险业务对应的平衡表达式可以为Proj_total_sum=Proj_fee_a+Proj_fee_b+Proj_fee_c+Proj_fee_d,即赔付总额=误工费的赔付额+营养费的赔付额+医疗费的赔付额+交通费的赔付额。进一步地,假设负责确定各赔付项的各个子系统,分别确定出该保险业务的误工费的赔付额为1000,营养费的赔付额为600,医疗费的赔付额为3000,交通费的赔付额为200,赔付总额为4800,则该核对系统的服务器根据该平衡表达式,确定出的平衡表达式实例为4800=1000+600+3000+200。
S108:若所述平衡表达式实例等号两侧的数据不一致,则确定存在系统故障,并发送提示信息。
在本说明书提供的一个或多个实施例中,在该核对系统的服务器确定出该平衡表达式实例之后,可以判断该平衡表达式实例等号两侧的数据运算结果是否一致,若确定该平衡表达式实例等号两侧的数据运算结果不一致,则确定存在系统故障,并发送提示信息。
另外,针对同一个业务来说,不同子系统执行处理的事务在该业务的业务流程上也可能存在先后顺序,因此该业务对应的数据变化可能在一段时间内先后产生变化。针对同一个平衡表达式实例,该核对系统的服务器确定的各变更后的数据的时间也可能不同,所以可能存在系统正常运行的情况下,该平衡表达式实例等号两侧的数据运算结果不一致的可能。
于是,为了避免业务数据变化之间的时差导致误判情况的出现,在本说明书中,当该核对系统的服务器判断该平衡表达式实例等号两侧的数据运算结果不一致时,根据预设时长,在该预设时长内等待各子系统的数据库发送的日志消息,并当有对应该平衡表达式实例(即业务标识一致)的日志消息时,更新该平衡表达式实例。也就是,在该预设时长内继续根据接收到的日志消息,确定该平衡表达式实例等号两侧的数据。其中,该预设时长可以是几秒钟,也可以是几分钟,具体可根据需要设置,本说明书在此不做限制。
当超出该预设时长且确定出的该平衡表达式实例等号两侧的数据仍不一致时,则确定存在系统故障,并发送提示信息。当确定出的该平衡表达式实例等号两侧的数据一致,且未超出该预设时长时,则确定不存在系统故障,该平衡表达式实例对应的业务可以正常执行。
具体的,若该核对系统的服务器判断该平衡表达式实例等号两侧的数据运算结果不一致,则可在预设时长内,根据该平衡表达式实例对应的平衡表达式中对象节点的日志消息,确定是否有未确定的变更后的数据。若是,则根据该平衡表达式中对象节点的日志消息,重新确定变更后的数据,若否,则确定存在系统故障,并发送提示信息。若超出该预设时长,且确定出的该平衡表达式实例等号两侧的数据仍不一致,则确定存在系统故障,并发送提示信息。
另外,在本说明书提供的一个或多个实施例中,当该核对系统的服务器针对每个平衡表达式实例,确定每个平衡表达式实例等号两侧的数据一致时,确定系统正常,并继续执行各平衡表达式对应的业务。
基于图1所示的检测系统故障的方法,针对系统中每一个子系统的数据库,根据该数据库的各物理模型,确定对象图中的各对象节点,然后,根据各对象节点对应的业务内容以及各业务的业务逻辑,确定由对象节点组成的平衡表达式,之后,针对每个平衡表达式,当确定该平衡表达式中对象节点在数据库中的数据变更时,确定平衡表达式实例,若该平衡表达式实例等号两侧的数据不一致,则确定存在系统故障,并发送提示信息。
从上述方法中可以看出,本方法可在系统中有业务的数据变更时,通过判断该业务对应的平衡表达式实例两侧的运算结果是否一致,来检测系统中是否存在故障,以及时高效地发现问题,减少因系统故障为企业带来的损失。在本说明书步骤S108中,在该核对系统的服务器确定系统存在故障时,无法确定出具体出现故障的子系统。因此,在本说明书提供的一个或多个实施例中,还可以根据确定出的变更后的数据,确定系统中具体出现故障的子系统。
具体的,当该平衡表达式实例中存在对象节点对应的数据为空时,确定提供该对象节点对应的数据的子系统故障,并发送提示信息。或者当该平衡表达式实例中存在对象节点对应的数据的数值,不在预设的取值范围内时,确定提供该对象节点对应的数据的子系统故障,并发送提示信息。其中,该预设取值范围可以是对数据是正是负、数值上下限等进行的限定,具体可根据需要设置,本说明书在此不做限制。
另外,由于各对象节点的日志消息的生成时间可能不同,核对系统的服务器不一定能同时接收到该平衡表达式中所有的对象节点的日志消息,因此,在本说明书步骤S106~S108中,还可以针对每个平衡表达式,在接收到该平衡表达式中对象节点的第一个携带业务标识的日志消息时,开始计时,并在预设的等待时长内,继续接收该平衡表达式中与该日志消息携带有同样业务标识的日志消息。在超出等待时长后,根据接收到的各日志消息携带的数据以及业务标识,确定平衡表达式实例,并判断该平衡表达式实例等号两侧的运算结果是否一致。若不一致,则确定存在系统故障,并发送提示信息。如此,可以在保证能够检测系统故障的情况下,减少判断该平衡表达式实例等号两侧的运算结果是否一致的次数,以减少能耗,节约资源。
以上为本说明书的一个或多个实施例提供的检测系统故障的方法,基于同样的思路,本说明书还提供了相应的检测系统故障的装置,如图3所示。
图3为本说明书提供的一种检测系统故障的装置示意图,该装置包括:物理模型确定模块、对象节点确定模块、表达式确定模块、实例确定模块、系统故障检测模块,其中:
物理模型确定模块200,用于针对系统中每一个子系统的数据库,确定该数据库的各物理模型。
对象节点确定模块202,用于根据获取的各物理模型,确定对象图中的各对象节点。
表达式确定模块204,用于根据各对象节点对应的业务内容以及各业务的业务逻辑,确定由对象节点组成的平衡表达式,其中,所述平衡表达式等号两侧的业务内容在业务逻辑上一致。
实例确定模块206,用于针对每个平衡表达式,当确定该平衡表达式中对象节点在数据库中的数据变更时,根据变更后的数据以及该平衡表达式,确定平衡表达式实例。
系统故障检测模块208,用于若所述平衡表达式实例等号两侧的数据不一致,则确定存在系统故障,并发送提示信息。
可选地,所述物理模型确定模块200,针对系统中每一个子系统,在该子系统启动时,载入该子系统的对象关系映射框架,通过载入的所述对象关系映射框架扫描该子系统的数据库,确定该子系统的数据库中的各物理模型。
可选地,根据确定出的各平衡表达式中包含的对象节点,订阅各对象节点的日志消息。
可选地,所述实例确定模块206,接收数据库发送的该平衡表达式中对象节点的日志消息,根据所述日志消息中携带的数据以及业务标识,确定与所述业务标识对应的该平衡表达式中对象节点对应的变更后的数据,根据该平衡表达式以及确定出的对象节点变更后的数据,确定该平衡表达式的平衡表达式实例。
可选地,所述系统故障检测模块208,若所述平衡表达式实例等号两侧的数据不一致,则根据预设时长,继续根据接收到的日志消息,确定所述平衡表达式实例等号两侧的数据,当超出所述预设时长且确定出的所述平衡表达式实例等号两侧的数据仍不一致时,则确定存在系统故障,并发送提示信息。
可选地,所述系统故障检测模块208,当所述平衡表达式实例中存在对象节点对应的数据为空时,确定提供所述对象节点对应的数据的子系统故障,并发送提示信息,或者当所述平衡表达式实例中存在对象节点对应的数据的数值,不在预设的取值范围内时,确定提供所述对象节点对应的数据的子系统故障,并发送提示信息。
可选地,针对每个平衡表达式实例,若确定每个平衡表达式实例等号两侧的数据一致,则确定系统正常,继续执行各平衡表达式对应的业务。
本说明书还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图1提供的检测系统故障的方法。
本说明书还提供了图4所示的一种电子设备的示意结构图。如图4所示,在硬件层面,该电子设备包括处理器、内部总线、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图1提供的检测系统故障的方法。
当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。
Claims (10)
1.一种检测系统故障的方法,其特征在于,所述方法具体包括:
针对系统中每一个子系统的数据库,确定该数据库的各物理模型;
根据获取的各物理模型,确定对象图中的各对象节点;
根据各对象节点对应的业务内容以及各业务的业务逻辑,确定由对象节点组成的平衡表达式,其中,所述平衡表达式等号两侧的业务内容在业务逻辑上一致;
针对每个平衡表达式,当确定该平衡表达式中对象节点在数据库中的数据变更时,根据变更后的数据以及该平衡表达式,确定平衡表达式实例;
若所述平衡表达式实例等号两侧的数据不一致,则确定存在系统故障,并发送提示信息。
2.如权利要求1所述的方法,其特征在于,针对系统中每一个子系统的数据库,确定该数据库的各物理模型,具体包括:
针对系统中每一个子系统,在该子系统启动时,载入该子系统的对象关系映射框架;
通过载入的所述对象关系映射框架扫描该子系统的数据库,确定该子系统的数据库中的各物理模型。
3.如权利要求1所述的方法,其特征在于,所述方法还包括:
根据确定出的各平衡表达式中包含的对象节点,订阅各对象节点的日志消息。
4.如权利要求3所述的方法,其特征在于,根据变更后的数据以及该平衡表达式,确定平衡表达式实例,具体包括:
接收数据库发送的该平衡表达式中对象节点的日志消息;
根据所述日志消息中携带的数据以及业务标识,确定与所述业务标识对应的该平衡表达式中对象节点对应的变更后的数据;
根据该平衡表达式以及确定出的对象节点变更后的数据,确定该平衡表达式的平衡表达式实例。
5.如权利要求1所述的方法,其特征在于,若所述平衡表达式实例等号两侧的数据不一致,则确定存在系统故障,并发送提示信息,具体包括:
若所述平衡表达式实例等号两侧的数据不一致,则根据预设时长,继续根据接收到的日志消息,确定所述平衡表达式实例等号两侧的数据;
当超出所述预设时长且确定出的所述平衡表达式实例等号两侧的数据仍不一致时,则确定存在系统故障,并发送提示信息。
6.如权利要求1所述的方法,其特征在于,确定存在系统故障,并发送提示信息,具体包括:
当所述平衡表达式实例中存在对象节点对应的数据为空时,确定提供所述对象节点对应的数据的子系统故障,并发送提示信息;或者
当所述平衡表达式实例中存在对象节点对应的数据的数值,不在预设的取值范围内时,确定提供所述对象节点对应的数据的子系统故障,并发送提示信息。
7.如权利要求1所述的方法,其特征在于,所述方法还包括:
针对每个平衡表达式实例,若确定每个平衡表达式实例等号两侧的数据一致,则确定系统正常,继续执行各平衡表达式对应的业务。
8.一种检测系统故障的装置,其特征在于,所述装置具体包括:
物理模型确定模块,用于针对系统中每一个子系统的数据库,确定该数据库的各物理模型;
对象节点确定模块,用于根据获取的各物理模型,确定对象图中的各对象节点;
表达式确定模块,用于根据各对象节点对应的业务内容以及各业务的业务逻辑,确定由对象节点组成的平衡表达式,其中,所述平衡表达式等号两侧的业务内容在业务逻辑上一致;
实例确定模块,用于针对每个平衡表达式,当确定该平衡表达式中对象节点在数据库中的数据变更时,根据变更后的数据以及该平衡表达式,确定平衡表达式实例;
系统故障检测模块,用于若所述平衡表达式实例等号两侧的数据不一致,则确定存在系统故障,并发送提示信息。
9.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求1~7任一项所述的方法。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述权利要求1~7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011243702.4A CN112416704A (zh) | 2020-11-10 | 2020-11-10 | 一种检测系统故障的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011243702.4A CN112416704A (zh) | 2020-11-10 | 2020-11-10 | 一种检测系统故障的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112416704A true CN112416704A (zh) | 2021-02-26 |
Family
ID=74782287
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011243702.4A Pending CN112416704A (zh) | 2020-11-10 | 2020-11-10 | 一种检测系统故障的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112416704A (zh) |
-
2020
- 2020-11-10 CN CN202011243702.4A patent/CN112416704A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11119988B2 (en) | Performing logical validation on loaded data in a database | |
CN110992038B (zh) | 交易处理方法、装置及设备 | |
CN111383031B (zh) | 一种区块链中的智能合约执行方法、系统和电子设备 | |
CN110992188B (zh) | 交易处理方法、装置及设备 | |
CN111897825A (zh) | 分布式事务处理方法和装置 | |
CN108830705B (zh) | 一种交易数据的汇总方法、装置及设备 | |
CN108647950B (zh) | 一种转账请求处理方法、装置及设备 | |
CN113312259B (zh) | 一种接口测试方法及装置 | |
CN110992040A (zh) | 交易处理方法、装置及设备 | |
CN110599305A (zh) | 业务处理方法、装置及存储介质 | |
CN111768303A (zh) | 交易处理方法、装置、设备及系统 | |
CN112698867A (zh) | 注解信息的动态修改方法、装置、电子设备及介质 | |
CN112416725A (zh) | 一种压力测试方法及装置 | |
CN110489392B (zh) | 多租户间的数据访问方法、装置、系统、存储介质及设备 | |
CN111580938A (zh) | 一种工作单元的事务处理方法、装置、设备及介质 | |
CN110245115B (zh) | 一种文件处理方法、引擎及系统 | |
CN112416704A (zh) | 一种检测系统故障的方法及装置 | |
CN111159298A (zh) | 业务请求处理方法、装置、电子设备及存储介质 | |
CN113592506B (zh) | 重复支付处理方法、装置、电子设备和存储介质 | |
CN114240097A (zh) | 一种风险评估的方法及装置 | |
CN112596781A (zh) | 一种业务执行以及业务配置方法及装置 | |
CN113067733B (zh) | 具有隐私保护的多站点配置控制方法、装置以及设备 | |
CN113554498A (zh) | 一种针对用户账务请求的处理方法和装置 | |
US20240242139A1 (en) | Data processing | |
US12061572B2 (en) | Data blocking for application platforms |
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 |