CN106997314B - 用于分布式系统的异常处理方法、装置及系统 - Google Patents
用于分布式系统的异常处理方法、装置及系统 Download PDFInfo
- Publication number
- CN106997314B CN106997314B CN201610044281.XA CN201610044281A CN106997314B CN 106997314 B CN106997314 B CN 106997314B CN 201610044281 A CN201610044281 A CN 201610044281A CN 106997314 B CN106997314 B CN 106997314B
- Authority
- CN
- China
- Prior art keywords
- service system
- core
- core service
- degradation
- abnormal
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0709—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种用于分布式系统的异常处理方法、装置及系统。其中,该方法包括:分布式系统中,至少包括第一业务系统和非第一业务系统,其中,方法包括:获取第一业务系统调用第二业务系统时生成的参数;根据参数,判断第二业务系统是否调用异常;当确定第二业务系统调用异常时,确定在预设时间区间内发生调用异常的异常次数;将异常次数与预先设置的阈值进行比对,当异常次数大于或等于阈值时,对第二业务系统执行降级处理。本发明解决了由于在分布式系统中的某个业务系统发生异常,导致与其具有依赖关系业务系统运行异常的技术问题。
Description
技术领域
本发明涉及互联网领域,具体而言,涉及一种用于分布式系统的异常处理方法、装置及系统。
背景技术
随着互联网技术的发展,互联网用户的数量也随着时间成指数倍的增长。并且,从浏览新闻到网上购物,互联网也被赋予了越来越多的功能。为了在原有第一业务系统中添加这些拓展功能,可以对原有第一业务系统进行扩充,通过直接增加新的功能模块的方式实现。但是,利用上述方法会使得原有第一业务系统的系统体积越来越大,从而导致系统运行缓慢,且不利于后期维护。
因此,在现有技术中,通常利用分布式处理技术,通过在原有第一业务系统的基础上,添加与其相互依赖的相关第二业务系统来实现。但是,如果这些相关的第二业务系统如果发生故障,通常会间接影响到原有第一业务系统的正常运行。在严重的情况下,还可能拖垮原有第一业务系统,使其无法提供正常服务。
为了保证原有第一业务系统的正常运行,通常是采用配置超时参数、手动降级(手动切断系统间的依赖关系)或扩容等方法来应对。其中,采用配置超时参数的方法,无法应对所有异常场景,并且在存在大量超时的情况时也会降低原有系统的性能,影响原有系统正常提供基础服务。采用手动降级的方法,往往并不能做到及时干预,一旦运维人员在发生故障时不在现场问题将得不到及时处理,因此为了保证故障的及时解决,需要投入大量运维人力,维护成本偏高。而采用扩容的方法不能急时解决问题,而且需要预先对人力与硬件进行投入,维护成本过高。
针对现有技术中,由于在分布式系统中的某个业务系统发生异常,导致与其具有依赖关系业务系统运行异常的技术问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种用于分布式系统的异常处理方法、装置及系统,以至少解决了由于在分布式系统中的某个业务系统发生异常,导致与其具有依赖关系业务系统运行异常的技术问题。
根据本发明实施例的一个方面,提供了一种用于分布式系统的异常处理方法,分布式系统中,至少包括第一业务系统和第二业务系统,第一业务系统与第二业务系统具有依赖关系,其中,包括:获取第一业务系统调用第二业务系统时生成的参数;根据参数,判断第二业务系统是否调用异常;当确定第二业务系统调用异常时,确定在预设时间区间内发生调用异常的异常次数;将异常次数与预先设置的阈值进行比对,当异常次数大于或等于阈值时,对第二业务系统执行降级处理。
根据本发明实施例的另一方面,还提供了一种用于分布式系统的异常处理装置,分布式系统中,至少包括第一业务系统和第二业务系统,第一业务系统与第二业务系统具有依赖关系,其中,装置包括:第一获取模块,用于获取第一业务系统调用第二业务系统时生成的参数;判断模块,用于根据参数,判断第二业务系统是否调用异常;第一确定模块,用于当确定第二业务系统调用异常时,确定在预设时间区间内发生调用异常的异常次数;第一处理模块,用于将异常次数与预先设置的阈值进行比对,当异常次数大于或等于阈值时,对第二业务系统执行降级处理。
根据本发明实施例的另一方面,还提供了一种用于分布式系统的异常处理系统,包括:第一业务系统,根据接收的业务请求,向第二业务系统发送调用请求;第二业务系统,与第一业务系统连接,用于处理第一业务系统发送的调用请求;异常处理模块,分别与第一业务系统和第二业务系统连接,用于获取第一业务系统调用第二业务系统时生成的参数;根据参数,判断第二业务系统是否调用异常;当确定第二业务系统调用异常时,确定在预设时间区间内发生调用异常的异常次数;将异常次数与预先设置的阈值进行比对,当异常次数大于或等于阈值时,对第二业务系统执行降级处理。
在本发明实施例中,采用获取第一业务系统调用第二业务系统时生成的参数;根据参数,判断第二业务系统是否调用异常;当确定第二业务系统调用异常时,确定在预设时间区间内发生调用异常的异常次数;将异常次数与预先设置的阈值进行比对,当异常次数大于或等于阈值时,对第二业务系统执行降级处理的方式,达到了在第二业务系统出现调用异常时系统自动进行异常处理的目的,从而实现了在不增加硬件成本和维护成本的情况下,及时对于第二业务系统出现的异常进行处理的技术效果,进而解决了由于在分布式系统中的某个业务系统发生异常,导致与其具有依赖关系业务系统运行异常的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种用于分布式系统的异常处理方法的计算机终端的硬件结构框图;
图2是根据本发明实施例的一种可选的用于分布式系统的异常处理方法的流程图;
图3是根据本发明实施例的一种可选的用于分布式系统的异常处理方法的交互示意图;
图4是根据本发明实施例的一种可选的用于分布式系统的异常处理装置的示意图;
图5是根据本发明实施例的一种可选的用于分布式系统的异常处理装置的示意图;
图6是根据本发明实施例的一种可选的用于分布式系统的异常处理装置的示意图;
图7是根据本发明实施例的一种可选的用于分布式系统的异常处理装置的示意图;
图8是根据本发明实施例的一种可选的用于分布式系统的异常处理装置的示意图;以及
图9是根据本发明实施例的一种可选的用于分布式系统的异常处理系统的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本发明实施例,还提供了一种用于分布式系统的异常处理方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图1是本发明实施例的一种用于分布式系统的异常处理方法的计算机终端的硬件结构框图。如图1所示,计算机终端10可以包括一个或多个(图中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模块106。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的用于分布式系统的异常处理方法对应的程序指令/模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的漏洞检测方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
在上述运行环境下,本申请提供了如图2所示的用于分布式系统的异常处理方法。图2是根据本发明实施例一的用于分布式系统的异常处理方法的流程图。
如图2所示,在上述分布式系统中,至少包括第一业务系统和第二业务系统,第一业务系统与第二业务系统具有依赖关系,其中,该方法包括:
步骤S22,获取第一业务系统调用第二业务系统时生成的参数。
通过上述步骤S22,对第一业务系统在调用第二业务系统时的参数进行获取,参数与第二业务系统相对应。其中,参数用于记录第二业务系统对第一业务系统发送的调用请求进行响应的参数。
步骤S24,根据参数,判断第二业务系统是否调用异常。
通过上述步骤S24,根据参数判断第二业务系统是否为调用异常。其中,当参数为用于记录在第一业务系统调用第二业务系统时,第二业务系统对第一业务系统发送的调用请求的响应时间,此时,可以将响应时间与预先设置的时间阈值进行比对,当响应时间大于时间阈值时,即可判断为调用异常。参数也可以为用于记录第一业务系统在调用第二业务系统后,第二业务系统返回的异常代码,当接收到异常代码时,即可判定为调用异常。当然,参数还可以用于记录其他参数第二业务系统对第一业务系统发送的调用请求进行响应的参数,此处不做具体限定。
步骤S26,当确定第二业务系统调用异常时,确定在预设时间区间内发生调用异常的异常次数。
通过上述步骤S26,在第一业务系统对第二业务系统进行调用,并发生调用异常时,对调用异常发生的时间和发生调用异常的异常次数进行记录。并确定在预设时间区间内,发生调异常的异常次数。在实际应用当中,时间区间可以根据实际需求确定,其中,时间区间的长短可以根据对与第二业务系统进行调用的频繁程度进行确定。例如,1分钟、3分钟或5分钟等。
步骤S28,将异常次数与预先设置的阈值进行比对,当异常次数大于或等于阈值时,对第二业务系统执行降级处理。
通过上述步骤S28,将调用异常发生的异常次数与预先设置的阈值进行比对,当调用异常发生的异常次数超过预先设置的阈值时,则判定与异常次数对应的第二业务系统运行出现异常。此时,可以通过对该第二业务系统执行降级处理,从而切断第一业务系统与该第二业务系统之间的调用关系,从而停止第一业务系统对该第二业务系统的调用。
具体的,第一业务系统通常为用于实现系统核心功能的核心业务系统,而第二业务系统通常为与第一业务系统具有依赖关系的非核心业务系统,第一业务系统通过调用第二业务系统来实现某些特定的非核心功能。因此,在上述步骤S22至步骤S28中,通过获取第一业务系统对第二业务系统进行调用的过程中,生成的参数,来判断第一业务系统对第二业务系统的调用是否存在异常。当调用出现异常时,对发生调用异常的第二业务系统,在预设时间区间内发生的调用异常的异常次数进行记录。当在时间区间内第二业务系统发生调用异常的次数超过预先设置的阈值,即异常上限时,对该第二业务系统进行降级处理。通过上述步骤,即可以达到在第二业务系统出现调用异常时系统自动进行异常处理的目的,从而实现了在不增加硬件成本和维护成本的情况下,及时对于第二业务系统出现的异常进行处理的技术效果,进而解决了由于在分布式系统中的某个业务系统发生异常,导致与其具有依赖关系业务系统运行异常的技术问题。
当然,在上述实施例中的第一业务系统,也可以是在系统中用于提供核心业务服务的核心业务模块,而第二业务系统可以是在系统中用于提供非核心业务服务的非核心业务模块。此处不做具体限定。
在实际应用当中,以登录账号系统为例进行说明,其中,用于登陆账号的登陆系统为第一业务系统,在登录账号时用于生成验证码的验证码系统为第二业务系统。通过各个用户在访问登录系统时,获取登录系统调用验证码系统生成验证码时的参数。根据参数中记录的验证码系统的响应时间来判断验证码是否存在异常。如果发生异常,则对异常信息进行记录,并判断在预订时间内验证码系统出现的异常次数。当异常次数超过异常上限值时,对验证码系统进行降级处理。使用户通过登陆系统进行账户登录时不对验证码系统进行调用,从而防止由于验证码系统异常导致的用户无法登陆的问题。
作为一种可选的实施例,参数至少用于记录第二业务系统的响应时间,其中,在步骤S24根据参数,判断第二业务系统是否调用异常中,步骤可以包括:
步骤S241,将响应时间与预先设置的第一时间阈值进行比对。
步骤S243,当响应时间大于或等于第一时间阈值时,确定第二业务系统调用异常。
具体的,当参数用于记录第二业务系统的响应时间时,可以通过第二业务系统响应第一业务系统调用的响应时间,从而确定第二业务系统是否调用异常。其中,当响应时间超过预先设置的第一时间阈值时,即可确定第二业务系统存在调用异常。第一时间阈值可以根据第二业务系统的平均响应时间确定并设置,当然,也可以通过指定的方式进行设置,此处不做具体限定。
作为一种可选的实施例,在步骤S28对第二业务系统执行降级处理之后,上述方法还可以包括:
步骤S30,记录执行降级处理的降级时间,其中,降级时间用于记录第二业务系统被执行降级处理的时间。
步骤S32,根据所述降级时间和当前系统时间,确定降级时长。
步骤S34,当时降级时间大于或等于预先设置的第二时间阈值时,对第二业务系统执行恢复处理。
具体的,通过上述步骤S30至步骤S34,记录对第二业务系统执行降级处理的降级时间,并利用降级时间和当前从系统获取到的系统时间,确定该第二业务系统被执行降级处理的降级时长。将降级时长与预先设置的第二时间阈值进行比对,当降级时长超过预先设置第二时间阈值时,可以恢复对第二业务系统的调用,对其执行恢复处理。
在实际应用当中,当在预设时间区间的范围内,第二业务系统发生的异常次数达到或超过异常上限时,便对该第二业务系统执行降级处理,并更新与其对应的降级状态,同时开始开启降级时间进行计时。当降级时长达到或超过第一时间阈值后,便更新与该第二业务系统对应的降级状态和异常次数,然后重新开始对其进行异常计数。
作为一种可选的实施例,在步骤S34对第二业务系统执行降级处理之后,上述方法还可以包括:
步骤S36,生成与第二业务系统对应的降级状态参数,其中,异常状态参数用于对第二业务系统是否处于被降级的状态进行标记。
具体的,通过步骤S36,生成用于对第二业务系统是否处于被降级状态进行标识的降级状态参数。当第一业务系统对第二业务系统进行调用时,只需要通过调用降级状态参数,即可确定当前调用的第二业务系统是否已被降级处理。
作为一种可选的实施例,在步骤S22获取第一业务系统调用第二业务系统时生成的参数之前,上述方法还可以包括:
步骤S211,当第一业务系统调用第二业务系统时,获取与第二业务系统对应的降级状态参数。
步骤S213,根据降级状态参数,确定第二业务系统是否处于被降级的状态。
步骤S215,当第二业务系统处于被降级的状态时,屏蔽第一业务系统对第二业务系统的调用。
具体的,每当第一业务系统对第二业务系统进行调用时,首先通过步骤S211至步骤S215对调用的第二业务系统的降级状态进行判定。当第一业务系统对第二业务系统进行调用时,首先获取与第二业务系统对应的降级状态参数。根据降级状态参数可以直接确定当前第二业务系统是否处于被降级状态。当确定该第二业务系统已被降级处理时,断开第一业务系统与该第二业务系统之间的依赖关系,取消对该第二业务系统进行调用。
作为一种可选的实施方式,在实际应用当中,可以预先设置用于存储各个第二业务系统对应的降级状态的降级状态参数表。当第一业务系统对第二业务系统进行调用时,只需通过查询降级状态参数表中相应的降级状态参数即可确定。
作为一种可选的实施例,在步骤S211获取与第二业务系统对应的降级状态参数之前,方法还包括:
步骤S201,根据获取到的业务请求,确定与业务请求对应的业务系统。
步骤S203,根据预先设置的配置信息,确定业务系统是否为第二业务系统。
具体的,第一业务系统往往直接影响了分布式系统的核心功能,因此,当第一业务系统出现异常时,是否对其进行降级处理,都会影响分布式系统的正常运行。因此,可以通过步骤S201至步骤S203,在第一业务系统进行调用时,对调用系统的类型进行判断,以判断其是否为第二业务系统。当调用的系统为第二业务系统时,才对其进行降级处理。
在实际应用当中,上述方法可以通过将自设计的实现算法以单独封装的形式封装为降级模块,从而可以轻量、简洁的集成到分布式应用系统当中,并且,还可以通过将常用的实现算法封装为相应的库模块,使其可以方便的被集成到应用系统中。
在降级模块中,通过对用于判断异常次数的“异常上限(阈值)”、用于判断响应时间的“计数统计时间(第一时间阈值)”以及用于判断降级时长的“降级持续时间(第二时间阈值)”以配置文件的形式进行预先设置。并根据预先配置的配置文件实时确定与各个第二业务系统对应的降级状态。
具体的,在实际应用当中,如图3所示,步骤S1至S3为第一核心业务系统对第二核心业务系统进行调用时的执行步骤。步骤S4至步骤S12为第一核心业务系统对非核心业务系统进行调用时的执行步骤。其中,第一核心业务系统和第二核心业务系统均为用于实现系统核心功能的第一业务系统,而非核心业务系统为用于实现某个特定非核心功能的第二业务系统。
其中,在步骤S1至步骤S3中,首先,由第一向与其存在依赖关系的第二核心业务系统发送调用请求,第二核心业务系统在处理调用请求后返回相应的处理结果至第一核心业务系统。由于核心业务系统如果出现异常,意味着是否对其进行降级处理都不能提供有效服务。因此,在对核心业务系统进行调用时并不需要异常处理模块的介入。
在步骤S4至步骤S12中,首先,第一核心业务系统向非核心业务系统发送调用请求,非核心业务在处理调用请求后返回相应的处理结果至第一核心业务系统。异常处理模块根据处理结果判断调用过程是否发生异常。当发生异常时,记录调用异常并统计在预先设置的时间区间内,发生调用异常的异常次数。当非核心业务系统在时间区间内发生的异常次数超过阈值时,对该非核心业务系统进行降级处理。在进行降级处理后,异常处理模块将降级状态参数返回至第一核心业务系统,从而避免第一核心业务系统对非核心业务系统的调用。
通过上述步骤,即可实现当分布式应用系统中相互存在依赖关系的业务系统出现故障时,可以对出现故障的第二业务系统进行自动降级处理,从而切断第一业务系统对第二业务系统的访问,以避免第一业务系统自身受到出现故障的第二业务系统的影响。进一步的,还可以在对故障的第二业务系统执行降级处理到达预设的时间后,自动恢复降级,从而保证分布式应用系统的正常运行。
在对上述异常处理模块进行开发时,可以利用面向切面编程AOP技术,通过一行代码即可生成一个降级配置,并集成到代码当中。当降级模块利用Java语言进行开发时,可以利用Java语言原生的注解来实现对第二业务系统的降级处理。当降级模块利用C++语言进行开发时,则可以通过调用aspectc库来实现。当然,由于只需要极少的代码就可以实现上述降级模块的功能,也可以直接将源代码集成到系统当中。具体的实现方式此处不做具体限定。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
根据本发明实施例,还提供了一种用于实施上述用于分布式系统的异常处理方法的用于分布式系统的异常处理装置,如图4所示,分布式系统中至少包括第一业务系统和第二业务系统,其中,上述装置可以包括:第一获取模块22、判断模块24、第一确定模块26和第一处理模块28。
其中,第一获取模块22,用于获取第一业务系统调用第二业务系统时生成的参数;判断模块24,用于根据参数,判断第二业务系统是否调用异常;第一确定模块26,用于当确定第二业务系统调用异常时,确定在预设时间区间内发生调用异常的异常次数;第一处理模块28,用于将异常次数与预先设置的阈值进行比对,当异常次数大于或等于阈值时,对第二业务系统执行降级处理。
具体的,第一业务系统通常为用于实现系统核心功能的核心业务系统,而第二业务系统通常为与第一业务系统具有依赖关系的非核心业务系统,第一业务系统通过调用第二业务系统来实现某些特定的非核心功能。因此,在上述第一获取模块22、判断模块24、第一确定模块26和第一处理模块28中,通过获取第一业务系统对第二业务系统进行调用的过程中,生成的参数,来判断第一业务系统对第二业务系统的调用是否存在异常。当调用出现异常时,对发生调用异常的第二业务系统,在预设时间区间内发生的调用异常的异常次数进行记录。当在时间区间内第二业务系统发生调用异常的次数超过预先设置的阈值,即异常上限时,对该第二业务系统进行降级处理。通过上述步骤,即可以达到在第二业务系统出现调用异常时系统自动进行异常处理的目的,从而实现了在不增加硬件成本和维护成本的情况下,及时对于第二业务系统出现的异常进行处理的技术效果,进而解决了由于在分布式系统中的某个业务系统发生异常,导致与其具有依赖关系业务系统运行异常的技术问题。
作为一种可选的实施例,在参数中,至少包含用于记录第二业务系统的响应时间,其中,上述判断模块24可以包括:子比对模块241和子确定模块243。
其中,子比对模块241,用于将响应时间与预先设置的第一时间阈值进行比对;子确定模块243,用于当响应时间大于或等于第一时间阈值时,确定第二业务系统调用异常。
具体的,当参数用于记录第二业务系统的响应时间时,可以通过第二业务系统响应第一业务系统调用的响应时间,从而确定第二业务系统是否调用异常。其中,当响应时间超过预先设置的第一时间阈值时,即可确定第二业务系统存在调用异常。第一时间阈值可以根据第二业务系统的平均响应时间确定并设置,当然,也可以通过指定的方式进行设置,此处不做具体限定。
作为一种可选的实施例,如图5所示,上述装置还可以包括:记录模块30、第二确定模块32和第二处理模块34。
其中,记录模块30,用于记录执行降级处理的降级时间,其中,降级时间用于记录第二业务系统被执行降级处理的时间;第二确定模块32,用于根据降级时间和当前系统时间,确定降级时长;第二处理模块34,用于当时降级时长大于或等于预先设置的第二时间阈值时,对第二业务系统执行恢复处理。
具体的,通过上述记录模块30、第二确定模块32和第二处理模块34,记录对第二业务系统执行降级处理的降级时间,并利用降级时间和当前从系统获取到的系统时间,确定该第二业务系统被执行降级处理的降级时长。将降级时长与预先设置的第二时间阈值进行比对,当降级时长超过预先设置第二时间阈值时,可以恢复对第二业务系统的调用,对其执行恢复处理。
作为一种可选的实施例,如图6所示,上述装置还可以包括:生成模块36。
其中,生成模块36,用于生成与第二业务系统对应的降级状态参数,其中,异常状态参数用于对第二业务系统是否处于被降级的状态进行标记。
具体的,通过生成模块36,生成用于对第二业务系统是否处于被降级状态进行标识的降级状态参数。当第一业务系统对第二业务系统进行调用时,只需要通过调用降级状态参数,即可确定当前调用的第二业务系统是否已被降级处理。
作为一种可选的实施例,如图7所示,在上述装置中,还可以包括:第二获取模块211、第三确定模块213和屏蔽模块215。
其中,第二获取模块211,用于当第一业务系统调用第二业务系统时,获取与第二业务系统对应的降级状态参数;第三确定模块213,用于根据降级状态参数,确定第二业务系统是否处于被降级的状态;屏蔽模块215,用于当第二业务系统处于被降级的状态时,屏蔽第一业务系统对第二业务系统的调用。
具体的,每当第一业务系统对第二业务系统进行调用时,首先通过上述第二获取模块211、第三确定模块213和屏蔽模块215对调用的第二业务系统的降级状态进行判定。当第一业务系统对第二业务系统进行调用时,首先获取与第二业务系统对应的降级状态参数。根据降级状态参数可以直接确定当前第二业务系统是否处于被降级状态。当确定该第二业务系统已被降级处理时,断开第一业务系统与该第二业务系统之间的依赖关系,取消对该第二业务系统进行调用。
作为一种可选的实施例,如图8所示,在上述装置中,还可以包括:第四确定模块201和第五确定模块203。
其中,第四确定模块201,用于根据获取到的业务请求,确定与业务请求对应的业务系统;第五确定模块203,用于根据预先设置的配置信息,确定业务系统是否为第二业务系统。
具体的,第一业务系统往往直接影响了分布式系统的核心功能,因此,当第一业务系统出现异常时,是否对其进行降级处理,都会影响分布式系统的正常运行。因此,可以通过上述第四确定模块201和第五确定模块203,在第一业务系统进行调用时,对调用系统的类型进行判断,以判断其是否为第二业务系统。当调用的系统为第二业务系统时,才对其进行降级处理。
实施例3
本发明的实施例可以提供一种用于分布式系统的异常处理系统,如图9所示,该系统包括:第一业务系统31、第二业务系统33和异常处理模块35。
其中,第一业务系统31,根据接收的业务请求,向第二业务系统33发送调用请求;第二业务系统33,与第一业务系统31连接,用于处理第一业务系统31发送的调用请求;异常处理模块3535,分别与第一业务系统31和第二业务系统33连接,用于获取第一业务系统31调用第二业务系统33时生成的参数;根据参数,判断第二业务系统33是否调用异常;当确定第二业务系统33调用异常时,确定在预设时间区间内发生调用异常的异常次数;将异常次数与预先设置的阈值进行比对,当异常次数大于或等于阈值时,对第二业务系统33执行降级处理。
具体的,在上述第一业务系统31、第二业务系统33和异常处理模块3535中,通过获取第一业务系统31对第二业务系统33进行调用的过程中,生成的参数,来判断第一业务系统31对第二业务系统33的调用是否存在异常。当调用出现异常时,对发生调用异常的第二业务系统33,在预设时间区间内发生的调用异常的异常次数进行记录。当在时间区间内第二业务系统33发生调用异常的次数超过预先设置的阈值,即异常上限时,对该第二业务系统33进行降级处理。通过上述步骤,即可以达到在第二业务系统33出现调用异常时系统自动进行异常处理的目的,从而实现了在不增加硬件成本和维护成本的情况下,及时对于第二业务系统33出现的异常进行处理的技术效果,进而解决了由于在分布式系统中的某个业务系统发生异常,导致与其具有依赖关系业务系统运行异常的技术问题。
当然,在上述实施例中的第一业务系统,也可以是在系统中用于提供核心业务服务的核心业务模块,而第二业务系统可以是在系统中用于提供非核心业务服务的非核心业务模块。此处不做具体限定。
在实际应用当中,以登录账号系统为例进行说明,其中,用于登陆账号的登陆系统为第一业务系统,在登录账号时用于生成验证码的验证码系统为第二业务系统。通过各个用户在访问登录系统时,获取登录系统调用验证码系统生成验证码时的参数。根据参数中记录的验证码系统的响应时间来判断验证码是否存在异常。如果发生异常,则对异常信息进行记录,并判断在预订时间内验证码系统出现的异常次数。当异常次数超过异常上限值时,对验证码系统进行降级处理。使用户通过登陆系统进行账户登录时不对验证码系统进行调用,从而防止由于验证码系统异常导致的用户无法登陆的问题。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (11)
1.一种用于分布式系统的异常处理方法,其特征在于,所述分布式系统中,至少包括核心业务系统和非核心业务系统,第一业务系统为核心业务系统,其中,所述方法包括:
第一业务系统根据获取到的业务请求,确定与所述业务请求对应的业务系统;
根据预先设置的配置信息,确定所述业务系统是核心业务系统还是非核心业务系统,在所述业务系统为非核心业务系统的情况下,执行下述步骤:
获取所述第一业务系统调用所述非核心业务系统时生成的参数;
根据所述参数,判断所述非核心业务系统是否调用异常;
当确定所述非核心业务系统调用异常时,确定在预设时间区间内发生所述调用异常的异常次数;
将所述异常次数与预先设置的阈值进行比对,当所述异常次数大于或等于所述阈值时,对所述非核心业务系统执行降级处理。
2.根据权利要求1所述的方法,其特征在于,所述参数至少用于记录所述非核心业务系统的响应时间,其中,根据所述参数,判断所述非核心业务系统是否调用异常,包括:
将所述响应时间与预先设置的第一时间阈值进行比对;
当所述响应时间大于或等于所述第一时间阈值时,确定所述非核心业务系统调用异常。
3.根据权利要求1所述的方法,其特征在于,在对所述非核心业务系统执行降级处理之后,所述方法还包括:
记录执行所述降级处理的降级时间,其中,所述降级时间用于记录所述非核心业务系统被执行所述降级处理的时间;
根据所述降级时间和当前系统时间,确定降级时长;
当时所述降级时长大于或等于预先设置的非核心时间阈值时,对所述非核心业务系统执行恢复处理。
4.根据权利要求3所述的方法,其特征在于,在对所述非核心业务系统执行降级处理之后,所述方法还包括:
生成与所述非核心业务系统对应的降级状态参数,其中,所述异常状态参数用于对所述非核心业务系统是否处于被降级的状态进行标记。
5.根据权利要求4所述的方法,其特征在于,在获取所述第一业务系统调用所述非核心业务系统时生成的参数之前,所述方法还包括:
当所述第一业务系统调用所述非核心业务系统时,获取与所述非核心业务系统对应的降级状态参数;
根据所述降级状态参数,确定所述非核心业务系统是否处于所述被降级的状态;
当所述非核心业务系统处于所述被降级的状态时,屏蔽所述第一业务系统对所述非核心业务系统的调用。
6.一种用于分布式系统的异常处理装置,其特征在于,所述分布式系统中,至少包括核心业务系统和非核心业务系统,第一业务系统为核心业务系统,其中,所述装置包括:
第四确定模块,用于第一业务系统根据获取到的业务请求,确定与所述业务请求对应的业务系统;
第五确定模块,用于根据预先设置的配置信息,确定所述业务系统是核心业务系统还是非核心业务系统,在所述业务系统为非核心业务系统的情况下,使用下述装置执行下述步骤:
第一获取模块,用于获取所述第一业务系统调用所述非核心业务系统时生成的参数;
判断模块,用于根据所述参数,判断所述非核心业务系统是否调用异常;
第一确定模块,用于当确定所述非核心业务系统调用异常时,确定在预设时间区间内发生所述调用异常的异常次数;
第一处理模块,用于将所述异常次数与预先设置的阈值进行比对,当所述异常次数大于或等于所述阈值时,对所述非核心业务系统执行降级处理。
7.根据权利要求6所述的装置,其特征在于,所述参数至少用于记录所述非核心业务系统的响应时间,其中,所述判断模块包括:
子比对模块,用于将所述响应时间与预先设置的第一时间阈值进行比对;
子确定模块,用于当所述响应时间大于或等于所述第一时间阈值时,确定所述非核心业务系统调用异常。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
记录模块,用于记录执行所述降级处理的降级时间,其中,所述降级时间用于记录所述非核心业务系统被执行所述降级处理的时间;
第二确定模块,用于根据所述降级时间和当前系统时间,确定降级时长;
第二处理模块,用于当时所述降级时长大于或等于预先设置的非核心时间阈值时,对所述非核心业务系统执行恢复处理。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
生成模块,用于生成与所述非核心业务系统对应的降级状态参数,其中,所述异常状态参数用于对所述非核心业务系统是否处于被降级的状态进行标记。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
第二获取模块,用于当所述第一业务系统调用所述非核心业务系统时,获取与所述非核心业务系统对应的降级状态参数;
第三确定模块,用于根据所述降级状态参数,确定所述非核心业务系统是否处于所述被降级的状态;
屏蔽模块,用于当所述非核心业务系统处于所述被降级的状态时,屏蔽所述第一业务系统对所述非核心业务系统的调用。
11.一种用于分布式系统的异常处理系统,其特征在于,包括:
第一业务系统,根据接收的业务请求,确定与所述业务请求对应的业务系统,根据预先设置的配置信息,确定所述业务系统是核心业务系统还是非核心业务系统,在所述业务系统为非核心业务系统的情况下,启动异常处理模块;
所述非核心业务系统,与所述第一业务系统连接,用于处理所述第一业务系统发送的调用请求;
异常处理模块,分别与所述第一业务系统和所述非核心业务系统连接,用于获取所述第一业务系统调用所述非核心业务系统时生成的参数;根据所述参数,判断所述非核心业务系统是否调用异常;当确定所述非核心业务系统调用异常时,确定在预设时间区间内发生调用异常的异常次数;将所述异常次数与预先设置的阈值进行比对,当所述异常次数大于或等于所述阈值时,对所述非核心业务系统执行降级处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610044281.XA CN106997314B (zh) | 2016-01-22 | 2016-01-22 | 用于分布式系统的异常处理方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610044281.XA CN106997314B (zh) | 2016-01-22 | 2016-01-22 | 用于分布式系统的异常处理方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106997314A CN106997314A (zh) | 2017-08-01 |
CN106997314B true CN106997314B (zh) | 2020-10-16 |
Family
ID=59428538
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610044281.XA Active CN106997314B (zh) | 2016-01-22 | 2016-01-22 | 用于分布式系统的异常处理方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106997314B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107833056B (zh) * | 2017-10-19 | 2021-05-14 | 平安科技(深圳)有限公司 | 一种客户反馈信息的处理方法及其终端 |
CN108279993B (zh) * | 2018-01-03 | 2021-08-24 | 创新先进技术有限公司 | 实现业务降级的方法及装置和电子设备 |
CN108880854B (zh) * | 2018-04-09 | 2021-10-29 | 创新先进技术有限公司 | 一种服务降级的方法、装置及设备 |
CN108763929B (zh) * | 2018-05-16 | 2020-08-21 | 有时数联科技(北京)有限公司 | 一种用于对数据和应用进行并行安全审核的方法及系统 |
CN108984376B (zh) * | 2018-05-31 | 2021-11-19 | 创新先进技术有限公司 | 一种系统异常检测方法、装置及设备 |
CN108920326B (zh) * | 2018-06-14 | 2022-04-29 | 创新先进技术有限公司 | 确定系统耗时异常的方法、装置及电子设备 |
CN110708177B (zh) * | 2018-07-09 | 2022-08-09 | 阿里巴巴集团控股有限公司 | 分布式系统中的异常处理方法、系统和装置 |
CN109376071A (zh) * | 2018-09-03 | 2019-02-22 | 平安普惠企业管理有限公司 | 应用软件异常反馈方法、装置、计算机设备及存储介质 |
CN108965066B (zh) * | 2018-10-17 | 2020-06-05 | 网宿科技股份有限公司 | 一种对传输路径进行探测的方法和装置 |
CN109471745A (zh) * | 2018-10-18 | 2019-03-15 | 中国银行股份有限公司 | 基于服务器集群的宕机服务器任务处理方法及系统 |
CN110096416B (zh) * | 2019-03-13 | 2022-07-08 | 中国平安人寿保险股份有限公司 | 异常报警方法、装置、计算机装置及可读存储介质 |
CN112527540B (zh) * | 2019-09-18 | 2024-06-18 | 北京京东振世信息技术有限公司 | 一种实现自动降级的方法和装置 |
CN113746661A (zh) * | 2021-01-07 | 2021-12-03 | 北京沃东天骏信息技术有限公司 | 一种业务处理方法和装置 |
CN117400301B (zh) * | 2023-10-16 | 2024-04-12 | 北京壹点灵动科技有限公司 | 机器人的检测方法、装置和非易失性存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102739799A (zh) * | 2012-07-04 | 2012-10-17 | 合一网络技术(北京)有限公司 | 一种分布式应用中的分布式通讯方法 |
CN103605580A (zh) * | 2013-11-29 | 2014-02-26 | 中国航空工业集团公司第六三一研究所 | 一种分布式计算机系统容错体系结构 |
CN103685459A (zh) * | 2012-09-24 | 2014-03-26 | 日本电气株式会社 | 分布式系统、服务器计算机、分布式管理服务器和故障防止方法 |
CN104239156A (zh) * | 2013-06-21 | 2014-12-24 | 阿里巴巴集团控股有限公司 | 一种外部服务的调用方法及系统 |
CN104267955A (zh) * | 2014-09-28 | 2015-01-07 | 曙光信息产业股份有限公司 | 一种程序启停时模块间运行依赖的消除方法 |
-
2016
- 2016-01-22 CN CN201610044281.XA patent/CN106997314B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102739799A (zh) * | 2012-07-04 | 2012-10-17 | 合一网络技术(北京)有限公司 | 一种分布式应用中的分布式通讯方法 |
CN103685459A (zh) * | 2012-09-24 | 2014-03-26 | 日本电气株式会社 | 分布式系统、服务器计算机、分布式管理服务器和故障防止方法 |
CN104239156A (zh) * | 2013-06-21 | 2014-12-24 | 阿里巴巴集团控股有限公司 | 一种外部服务的调用方法及系统 |
CN103605580A (zh) * | 2013-11-29 | 2014-02-26 | 中国航空工业集团公司第六三一研究所 | 一种分布式计算机系统容错体系结构 |
CN104267955A (zh) * | 2014-09-28 | 2015-01-07 | 曙光信息产业股份有限公司 | 一种程序启停时模块间运行依赖的消除方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106997314A (zh) | 2017-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106997314B (zh) | 用于分布式系统的异常处理方法、装置及系统 | |
CN110661659B (zh) | 一种告警方法、装置、系统及电子设备 | |
CN107704360B (zh) | 监控数据的处理方法、设备、服务器及存储介质 | |
CN107948744B (zh) | 接口检测方法、接口检测设备及计算机可读存储介质 | |
CN112311617A (zh) | 一种配置化数据监控告警方法及系统 | |
CN111459770A (zh) | 服务器运行状态的告警方法、装置、服务器及存储介质 | |
US20140289719A1 (en) | Automatic version management | |
US11438249B2 (en) | Cluster management method, apparatus and system | |
CN107729213B (zh) | 一种后台任务监控方法及装置 | |
CN113419935B (zh) | 移动端性能监控方法、装置、设备及存储介质 | |
CN105227347A (zh) | 一种通用的运维监控方法及运维监控系统 | |
CN108509322B (zh) | 避免过度回访的方法、电子装置及计算机可读存储介质 | |
CN105303103A (zh) | 保护移动终端中的服务进程的方法和移动终端 | |
CN111062503B (zh) | 一种电网监控告警处理方法、系统、终端及存储介质 | |
CN110889143A (zh) | 文件校验方法及装置 | |
CN103824017A (zh) | 监控恶意程序的方法和监控平台 | |
CN114327967A (zh) | 设备修复方法及装置、存储介质、电子装置 | |
CN111949421B (zh) | Sdk调用方法、装置、电子设备和计算机可读存储介质 | |
CN106953874B (zh) | 网站防篡改方法及装置 | |
CN114679295B (zh) | 防火墙安全配置方法及装置 | |
CN111182536A (zh) | Sim卡状态检测方法、装置、网络设备及存储介质 | |
CN111162938A (zh) | 数据处理系统及方法 | |
CN111147542A (zh) | 一种免密访问的设置方法、装置、设备及介质 | |
CN104881354A (zh) | 云盘监控方法及装置 | |
CN113900855B (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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200710 Address after: 310052 room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province Applicant after: Alibaba (China) Co.,Ltd. Address before: 510627 Guangdong city of Guangzhou province Whampoa Tianhe District Road No. 163 Xiping Yun Lu Yun Ping B radio square 14 storey tower Applicant before: Guangzhou Dongjing Computer Technology Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |