单边账规模控制方法及系统与流程

文档序号:12470873阅读:997来源:国知局
单边账规模控制方法及系统与流程

本发明涉及数据信息处理领域,更具体的说,涉及单边账规模控制方法及系统。



背景技术:

随着金融行业的急速发展,跨系统和跨银行间的账务交易需求随之增加,但是,账务交易的单边账情况也随之增加。从会计角度上看,有借必有贷,如果只有借或只有贷,而缺少对应的一方,就会形成单边账;从技术角度上看,具体的应用或应用组件在作为服务器响应前端请求的同时,也会作为客户端来调用其他关联应用或应用组件,此时如果发生网络超时或交易异常,导致相互依赖的应用或应用组件之间没有同时记账,就会形成单边账。

目前针对金融系统的单边账情况,通常采用异步冲正的方式来处理,也就是在账务交易发生单边账以后,通过冲正的方式纠正账务交易,消除单边账,保证账务交易的一致性。但是,当出现大规模的单边账时,会导致系统发出巨量的冲正请求,从而影响正常交易的处理,致使故障蔓延;并且,当出现大规模的单边账时,一旦有冲正交易遭遇到跨日切点或冲正服务异常等情况时,冲正交易就无法正常进行下去,进而导致大量单边账无法被冲正,此时就需要大量的人工干预以及后续的人工调账来解决,从而严重影响系统效率及客户体验。

所以,目前迫切需要一种能够有效避免单边账的大规模发生,防止故障蔓延,保证账务交易一致性,进而提高系统稳定性与可靠性的技术方案。



技术实现要素:

有鉴于此,本发明提供了一种单边账规模控制方法及系统,以解决如何有效避免单边账大规模发生的问题。

为实现上述目的,本发明提供如下技术方案:

一种单边账规模控制方法,包括:

当账务交易发生异常时,获取交易异常信息;

根据所述交易异常信息,判断交易异常类型是否为单边账;

当判断所述交易异常类型为单边账时,获取交易统计数据;

根据所述交易统计数据,判断是否开启交易阀门;

当判断结果为是时,开启交易阀门,以对交易并发数进行限制。

优选的,所述根据所述交易异常信息,判断交易异常类型是否为单边账,包括:

从所述交易异常信息中,提取交易异常代码;

根据所述交易异常代码,确定与其相对应的交易异常类型,以判断所述交易异常类型是否为单边账。

优选的,所述根据所述交易统计数据,判断是否开启交易阀门,包括:

根据所述交易统计数据,执行预设控制规则,以判断是否开启交易阀门;

所述预设控制规则包括由多个校验规则所组成的链式结构。

优选的,所述交易统计数据包括:单边账连续发生次数、单边账总共发生次数、单位时间交易失败次数和单位时间交易失败率;

所述多个校验规则包括:

第一校验规则,判断所述单边账连续发生次数是否大于或等于第一预设阈值;

第二校验规则,判断所述单边账总共发生次数是否大于或等于第二预设阈值;

第三校验规则,判断所述单位时间交易失败次数是否大于或等于第三预设阈值;

第四校验规则,判断所述单位时间交易失败率是否大于或等于第四预设阈值;

根据所述交易统计数据,执行预设控制规则,以判断是否开启交易阀门包括:

执行第一校验规则,得到第一校验结果;

当第一校验结果为是时,执行第二检验规则,得到第二校验结果;

当第二校验结果为是时,执行第三检验规则,得到第三校验结果;

当第三校验结果为是时,执行第四检验规则,得到第四校验结果;

当第四校验结果为是时,得到判断结果为是。

优选的,所述开启交易阀门,以对交易并发数进行限制,包括:

初始化预设数目的锁资源,每一个锁资源仅用于为一条账务交易提供交易许可;

当新账务交易进入时,判断是否存在空闲的锁资源,若是,为所述新账务交易分配一个空闲的锁资源;若否,拒绝为所述新账务交易分配锁资源;

判断所述新账务交易是否已分配有锁资源,若是,允许执行所述新账务交易;若否,拒绝执行所述新账务交易。

优选的,所述方法还包括:当分配有锁资源的新账务交易执行结束时,释放为所述新账务交易分配的锁资源。

优选的,所述方法还包括:当分配有锁资源的新账务交易执行结束时,判断所述新账务交易是否执行成功;

当所述新账务交易执行成功时,将锁资源的总数目调整至当前数目的两倍;

当所述新账务交易执行失败时,返回所述获取交易统计数据,根据所述交易统计数据,判断是否开启交易阀门的步骤。

优选的,所述方法还包括:当锁资源的总数目大于或等于系统设定的交易并发数的上限时,关闭交易阀门,以解除交易阀门对交易并发数的限制。

一种单边账规模控制系统,其特征在于,包括:

异常信息获取模块,用于当账务交易发生异常时,获取交易异常信息;

异常类型判断模块,用于根据所述交易异常信息,判断交易异常类型是否为单边账;

统计数据获取模块,用于当判断所述交易异常类型为单边账时,获取交易统计数据;

交易阀门判断模块,用于根据所述交易统计数据,判断是否开启交易阀门;

交易阀门控制模块,用于当判断结果为是时,开启交易阀门,以对交易并发数进行限制。

优选的,所述交易阀门控制模块包括:

锁资源初始化子模块,用于初始化预设数目的锁资源,每一个锁资源仅用于为一条账务交易提供交易许可;

锁资源分配子模块,用于当新账务交易进入时,判断是否存在空闲的锁资源,若是,为所述新账务交易分配一个空闲的锁资源;若否,拒绝为所述新账务交易分配锁资源;

交易执行许可子模块,用于判断所述新账务交易是否已分配有锁资源,若是,允许执行所述新账务交易;若否,拒绝执行所述新账务交易。

从上述的技术方案可以看出,本发明提供的单边账规模控制方案,当账务交易发生单边账时,获取交易统计数据,根据交易统计数据判断是否开启交易阀门,当判断结果为是时,开启交易阀门,以对交易并发数进行限制,从而避免单边账大规模发生,防止故障蔓延,保证账务交易一致性,进而提高系统稳定性与可靠性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例提供的单边账规模控制方法的一种流程图;

图2为本申请实施例提供的单边账判断方法的一种流程图;

图3为本申请实施例提供的单边账规模控制方法的另一种流程图;

图4为本申请实施例提供的单边账规模控制方法的又一种流程图;

图5为本申请实施例提供的单边账规模控制方法的再一种流程图;

图6为本申请实施例提供的单边账规模控制系统的一种结构示意图;

图7为本申请实施例提供的单边账规模控制系统的另一种结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

交易一致性在金融账务系统中非常重要,传统的事中一致性方法(如冲正、重发、对账、调账等)都是对已经发生的账务一致性问题做补偿与处理,往往在交易实时性要求很高或交易异常时存在严重的资金风险,事后需要做出大量的沟通解释、追账等工作,并会导致较严重的社会影响。

本发明提供的单边账规模控制方案,是一种在根源上避免发生大规模单边账的技术方案,避免交易异常情况下发生大规模的不一致情况,同时控制与恢复过程全部是自动化处理,不需要人工干预,大幅提高响应效率,避免事后出现更多的账务不一致问题及其善后工作。

请参阅图1,图1为本申请实施例提供的单边账规模控制方法的一种流程图。

如图1所示,所述方法包括:

S101:当账务交易发生异常时,获取交易异常信息;

在金融联机交易过程中,当账务交易发生异常时,通常会生成相应的交易异常信息。

在本实施例中,交易异常信息中包括能够表明交易异常类型的信息,通过获取交易异常信息,便能获取能够表明交易异常类型的信息。

S102:根据所述交易异常信息,判断交易异常类型是否为单边账;

在账务交易过程中,若交易双方没有同时记账,则会形成单边账。以贷记卡还款交易过程为例,当贷记卡前置组件第一次外呼借记卡核心组件出现超时时,本地会发起异步冲正,并置交易失败,日志更新到本次错误状态,而此时外呼的借记卡组件可能已经正常完成扣款申请;或者,当贷记卡前置组件第一次外呼借记卡核心组件成功,但接下来外呼贷记卡核心系统进行还款操作时出现超时或者返回状态码异常时,本地同样置交易失败,而在之前已经成功外呼借记卡核心组件,借记卡核心组件会正常记账;又或者,当所有外呼都成功,而本地更新日志异常时,便会导致本地记账失败。

本实施例中,当账务交易发生上述单边账异常时,便会产生相应的交易异常信息,该交易异常信息中包括能够表明交易异常类型为单边账的信息。所以,根据获取的交易异常信息,就能判断出交易异常类型是否为单边账。

S103:当判断所述交易异常类型为单边账时,获取交易统计数据;

交易统计数据主要包括单位时间类(RuntimeTimeCellStat)数据与连续交易类(RuntimeStat)数据。

交易统计数据是实时更新的,每一笔账务交易结束后,都会根据交易结果对交易统计数据进行实时更新,所以,随时获取的交易统计数据都是最新的。

对单位时间类数据的统计与计算,可以通过时间滑动窗口的方式来实现。例如,单位时间设定为1分钟,时间窗口大小为2,当前时间为2016-06-0809:00,则2016-06-08 08:59为已统计完成的窗口,2016-06-08 09:00为正在统计的窗口,当时间达到2016-06-08 09:01时,2016-06-08 08:59统计的数据被淘汰,2016-06-08 09:00为已统计完成的窗口,2016-06-08 09:00统计的数据为可用数据。通过时间滑动窗口的方式,能够很方便的计算账务交易在单位时间内所发生的各项交易数据,实时监测交易完成情况。

在一示例中,单位时间类数据的交易统计数据包括单位时间交易失败次数(tsFaild)、单位时间交易成功次数(tsSuccess)、单位时间请求成功总时间(rtSuccessTotal)和单位时间交易失败率中的一种或多种。其中,单位时间交易失败率可以由单位时间交易失败次数除以单位时间交易失败次数与单位时间交易成功次数之和得到。

对连续交易类数据的统计与计算,可以通过连续交易窗口的方式来实现。连续交易窗口,是指对最近发生的n笔交易完成情况的监测窗口。例如,对最近100笔(n=100)的交易平均响应时间、业务成功率、技术成功率等进行统计与计算。连续交易窗口,能够避免时间滑动窗口统计时,由于交易频次差异产生的统计差异。

在一示例中,连续交易类数据的交易统计数据包括账务交易连续失败次数(consFailNum)、单边账连续发生次数(consFailSingleNum)和单边账总共发生次数(failSingleTotalNum)中的一种或多种。

在另一示例中,当判断所述交易异常类型为单边账时,除了获取最新的交易统计数据外,同时还针对该笔账务交易发起冲正交易请求,以保证该笔账务交易的一致性。其中,冲正交易可以采用同步或异步的方式执行。

S104:根据所述交易统计数据,判断是否开启交易阀门;

交易统计数据能够反映单边账的发生情况以及其他交易执行情况。根据交易统计数据,能够判断出是否需要对单边账的规模进行控制。当需要对单边账的规模进行控制时,则需要开启交易阀门,来避免单边账规模的扩大。

在一示例中,通过严格的控制规则来实现判断逻辑,能够提高判断结果的可靠性。因此,步骤S104,可以包括:根据所述交易统计数据,执行预设控制规则,以判断是否开启交易阀门。其中,预设控制规则包括由多个校验规则所组成的链式结构(规则链)。针对不同的账务交易类型,可以设置不同的控制规则,以达到更好的控制效果。

S105:当判断结果为是时,开启交易阀门,以对交易并发数进行限制;

交易阀门是单边账规模控制系统的核心,直接决定是否对账务交易进行并发数限制(流控)。

当判断结果为是时,表明交易阀门需要被开启,所以此时开启交易阀门,以对交易并发数进行限制。在对交易并发数进行限制以后,同时只允许执行少量的账务交易,甚至同时仅允许执行一条账务交易,进而将单边账的规模控制在一定范围内,避免故障蔓延。

本实施例提供的单边账规模控制方法,当账务交易发生单边账时,获取交易统计数据,根据交易统计数据判断是否开启交易阀门,当判断结果为是时,开启交易阀门,以对交易并发数进行限制,从而避免单边账大规模发生,防止故障蔓延,保证账务交易一致性,进而提高系统稳定性与可靠性。

在实际应用中,交易异常类型有很多种,单边账只是其中一种,所以,为了准确判断出交易异常类型是否为单边账,本发明还提供了一种单边账判断方法。

请参阅图2,图2为本申请实施例提供的单边账判断方法的一种流程图。

本实施例提供的单边账判断方法,能够实现前述根据交易异常信息,判断交易异常类型是否为单边账的步骤。

如图2所示,所述方法包括:

S201:从所述交易异常信息中,提取交易异常代码;

在本实施例中,交易异常信息中包括交易异常代码,交易异常代码与交易异常类型一一对应。所以,根据从交易异常信息中提取的交易异常代码,就可以确定出与其相对应的交易异常类型。

S202:根据所述交易异常代码,确定与其相对应的交易异常类型,以判断所述交易异常类型是否为单边账。

当提取的交易异常代码与单边账相对应时,则判定交易异常类型为单边账。

本实施例提供的单边账判断方法,利用交易异常代码与交易异常类型的敌营关系,能够根据交易异常信息准确判断出交易异常类型,进而能够准确判断出当前账务交易发生的交易异常是否为单边账。

在实际应用中,交易统计数据能够反映单边账的发生情况以及其他交易执行情况,在根据交易统计数据,判断是否需要开启交易阀门时,可以通过执行严格的控制规则来进行判断,以提高判断结果的可靠性。

请参阅图3,图3为本申请实施例提供的单边账规模控制方法的另一种流程图。

S301-S303与前述S101-S103相类似,在此不再赘述。

在本实施例中,交易统计数据包括单边账连续发生次数、单边账总共发生次数、单位时间交易失败次数和单位时间交易失败率。

在获取上述交易统计数据后,可以根据所述交易统计数据,执行预设控制规则,以判断是否开启交易阀门。其中,预设控制规则是由第一校验规则、第二校验规则、第三校验规则和第四校验规则以链式结构组成的规则链。

链式结构是指前一校验规则与后一校验规则相链接,当所述前一校验规则执行结束,根据所述前一校验规则的校验结果,判断是否执行后一校验规则,若是,则执行所述后一校验规则;若否,则不执行所述后一校验规则。

S304:执行第一校验规则,得到第一校验结果;

其中,第一校验规则为:判断所述单边账连续发生次数是否大于或等于第一预设阈值。

S305:当第一校验结果为是时,执行第二检验规则,得到第二校验结果;

其中,第二校验规则为:判断所述单边账总共发生次数是否大于或等于第二预设阈值。

S306:当第二校验结果为是时,执行第三检验规则,得到第三校验结果;

其中,第三校验规则为:判断所述单位时间交易失败次数是否大于或等于第三预设阈值。

S307:当第三校验结果为是时,执行第四检验规则,得到第四校验结果;

其中,第四校验规则为:判断所述单位时间交易失败率是否大于或等于第四预设阈值。

S308:当第四校验结果为是时,得到判断结果为是;

第一预设阈值、第二预设阈值、第三预设阈值和第四预设阈值可以通过大规模测试来确定其合适值。

通过上述步骤S304-S308能够实现前述根据交易统计数据,执行预设控制规则,以判断是否开启交易阀门的步骤。

在一示例中,当第一校验结果、第二校验结果、第三校验结果和第四校验结果中任意一项为否时,得到判断结果为否。

S309:当判断结果为是时,开启交易阀门,以对交易并发数进行限制。

步骤S309与前述S105相类似,在此不再赘述。

本实施例提供的单边账规模控制方法,在根据交易统计数据,判断是否开启交易阀门时,通过执行严格的控制规则来获取判断结果,能够提高判断结果的准确性,保证交易阀门开启的合理性,从而准确避免单边账大规模发生,防止故障蔓延,保证账务交易一致性,提高系统稳定性与可靠性。

在实际应用中,通过交易阀门对交易并发数进行限制时,可以采用直接减小交易并发数的参数值的方式来实现,也可以为账务交易提供一定数目的交易许可的方式来实现。

请参阅图4,图4为本申请实施例提供的单边账规模控制方法的又一种流程图。

S401-S404与前述S101-S104相类似,在此不再赘述。

S405:当判断结果为是时,初始化预设数目的锁资源;

锁资源用于为账务交易提供交易许可,并且,一个锁资源仅用于为一条账务交易提供交易许可。

当交易阀门开启时,初始化预设数目的锁资源。预设数目可以为1或其他值,但预设数目必须小于系统设定的交易并发数的上限值,否则无法起到限制交易并发数的作用。

S406:当新账务交易进入时,判断是否存在空闲的锁资源,若是,进入S407;若否,进入S408;

S407:为所述新账务交易分配一个空闲的锁资源;

在一示例中,新账务交易信息中可预留一个许可字段,为所述新账务交易分配锁资源时,将该新账务交易信息中的许可字段值置为“1”。

S408:拒绝为所述新账务交易分配锁资源;

在该示例中,拒绝为所述新账务交易分配锁资源时,将该新账务交易信息中的许可字段值置为“0”。

为所述新账务交易分配一个空闲的锁资源,或,拒绝为所述新账务交易分配锁资源,还可以通过其他方式来实现,并不仅限于上述示例。

在另一示例中,设定锁资源的预设数目为1。当一条新的账务交易进入时,判断是否存在空闲的锁资源,若是,则为该新账务交易分配一个空闲的锁资源。当为该新账务交易分配了锁资源后,锁资源的数目减1,则空闲的锁资源的数目为0,当再有一条新的账务交易进入时,已并不存在空闲的锁资源,则拒绝为该条新账务交易分配锁资源。

S409:判断所述新账务交易是否已分配有锁资源,若是,进入S410;若否,进入S411;

在一示例中,判断新账务交易是否已分配有锁资源,可以通过判断新账务交易信息中的许可字段值来实现。例如,当新账务交易信息中的许可字段值为“1”时,表示该新账务交易已分配有锁资源;当新账务交易信息中的许可字段值为“0”时,表示该新账务交易未分配有锁资源。

S410:允许执行所述新账务交易;

对于已分配有锁资源的新账务交易,允许被执行。

在一示例中,当分配有锁资源的新账务交易执行结束时,释放为所述新账务交易分配的锁资源。该锁资源释放后,锁资源的数目加1。

S411:拒绝执行所述新账务交易。

对于未分配有锁资源的新账务交易,拒绝被执行。

例如,当锁资源的数目为n时,仅允许n条新账务交易并发执行,n小于系统设定的交易并发数的上限值N,从而限制了新账务交易的并发数,避免了单边账规模的扩大以及其他交易异常的大规模发生。

本实施例提供的单边账规模控制方法,当开启交易阀门,以对交易并发数进行限制时,通过预设数目的锁资源为账务交易提供交易许可,从而限制新账务交易的并发数,将单边账规模控制在较小的范围内,防止故障蔓延,提高系统的稳定性和可靠性。

在实际应用中,如果交易阀门的关闭导致账务交易并发数突然变大,可能会导致系统处理交易时出现抖动,以致再次出现单边账,也可能导致交易量井喷,致使系统崩溃。所以,本发明还提供了以下实施例。

请参阅图5,图5为本申请实施例提供的单边账规模控制方法的再一种流程图。

S501-S511与前述S401-S411相类似,在此不再赘述。

对于交易阀门的关闭,本实施例提供了慢启动策略,以实现交易阀门的逐步关闭。

S512:当分配有锁资源的新账务交易执行结束时,判断所述新账务交易是否执行成功;

分配有锁资源的新账务交易又称为试探性交易,当试探性交易执行结束时,会根据交易结果实时更新交易统计数据。

S513:当所述新账务交易执行成功时,将锁资源的总数目调整至当前数目的两倍;

例如,设定锁资源的预设数目为“1”,当交易阀门开启时,锁资源的当前数目为“1”(此时等于预设数目),当新账务交易进入时,为该新账务交易分配这一个空闲的锁资源,当分配有锁资源的新账务交易执行结束且执行成功时,将锁资源的总数目调整至“2”(等于当前数目“1”的两倍),此时允许2条新账务交易并发处理,也即锁资源的当前数目调整为“2”。当下一个执行结束的新账务交易也执行成功时,将锁资源的总数目调整至“4”(等于当前数目“2”的两倍),此时允许4条新账务交易并发处理。以此类推,若后续执行的新账务交易均执行成功,则锁资源的总数目会以2的指数倍递增,最终达到或超过系统设定的交易并发数的上限值。

S514:当所述新账务交易执行失败时,返回所述获取交易统计数据,根据所述交易统计数据,判断是否开启交易阀门的步骤。

当新账务交易执行失败时,还会根据交易结果实时更新交易统计数据,并在获取所述交易统计数据后,根据该交易统计数据,再次判断是否开启交易阀门。

例如,锁资源的预设数目为“1”。当锁资源的总数目已调整至“8”时,若此时出现新账务交易执行失败的情况,则重新根据交易统计数据,判断是否开启交易阀门,若判断结果为是,则将锁资源初始化为预设数目“1”。

根据以上对本实施例描述,可以看出,本发明在开启交易阀门时,直接将锁资源数目初始化为预设数目,而在关闭交易阀门时,是以2的指数倍逐步关闭的,进而避免了交易阀门关闭时可能引起的交易抖动或交易量井喷等情况,避免了单边账的再次发生,进一步保证了系统的稳定性与可靠性。

S515:当锁资源的总数目大于或等于系统设定的交易并发数的上限时,关闭交易阀门,以解除交易阀门对交易并发数的限制。

当新账务交易持续执行成功时,锁资源的总数目也会随之不断增大,当锁资源的总数目大于或等于系统设定的交易并发数的上限时,交易阀门对交易并发数的限制便不复存在,所以,关闭交易阀门,以解除交易阀门对交易并发数的限制。

例如,系统设定的交易并发数的上限值为100,若锁资源的总数目为101,则系统允许并发处理的新账务交易数目仍为100,这是受到系统本身限制的,所以,锁资源便失去限制作用。所以,关闭交易阀门,不再提供锁资源,当新账务交易进入时,也不再判断新账务交易是否分配有锁资源,从而解除交易阀门对交易并发数的限制。

本实施例提供的单边账规模控制方法,根据新账务交易执行结果,对锁资源的数目进行逐步调整,以控制交易阀门逐步关闭或直接开启,避免了交易阀门关闭时可能引起的交易抖动或交易量井喷等情况,避免了单边账的再次发生,进一步保证了系统的稳定性与可靠性。

对应于单边账规模控制方法,本发明实施例还提供了单边账规模控制系统。

请参阅图6,图6为本申请实施例的单边账规模控制系统的一种结构示意图。

本实施例的单边账规模控制系统,用于实施前述实施例的单边账规模控制方法,如图6所示,所述系统包括:

异常信息获取模块U101,用于当账务交易发生异常时,获取交易异常信息;

在金融联机交易过程中,当账务交易发生异常时,通常会生成相应的交易异常信息。金融联机交易系统中通常包括一交易处理栈,该交易处理栈中通常依次包括交易痕迹处理器、接入安全处理器、访问控制处理器、流控处理器等。

在一示例中,可以单边账规模控制系统设置在所述交易处理栈的最前端,以获取交易异常信息。

在另一示例中,可以将单边账规模控制系统中的异常信息获取模块U101设置在所述交易处理栈的最前端,以获取交易异常信息。

异常类型判断模块U102,用于根据所述交易异常信息,判断交易异常类型是否为单边账;

当账务交易发生上述单边账异常时,便会产生相应的交易异常信息,该交易异常信息中包括能够表明交易异常类型为单边账的信息。所以,异常类型判断模块U102根据获取的交易异常信息,就能判断出交易异常类型是否为单边账。

统计数据获取模块U103,用于当判断所述交易异常类型为单边账时,获取交易统计数据;

交易统计数据是实时更新的,每一笔账务交易结束后,都会根据交易结果对交易统计数据进行实时更新,所以,统计数据获取模块U103获取的交易统计数据都是最新的。

交易统计数据主要包括单位时间类(RuntimeTimeCellStat)数据与连续交易类(RuntimeStat)数据。

单位时间类数据的交易统计数据包括单位时间交易失败次数(tsFaild)、单位时间交易成功次数(tsSuccess)、单位时间请求成功总时间(rtSuccessTotal)和单位时间交易失败率中的一种或多种。

连续交易类数据的交易统计数据包括账务交易连续失败次数(consFailNum)、单边账连续发生次数(consFailSingleNum)和单边账总共发生次数(failSingleTotalNum)中的一种或多种

交易阀门判断模块U104,用于根据所述交易统计数据,判断是否开启交易阀门;

交易统计数据能够反映单边账的发生情况以及其他交易执行情况。交易阀门判断模块U104根据交易统计数据,能够判断出是否需要对单边账的规模进行控制。当需要对单边账的规模进行控制时,则需要开启交易阀门,来避免单边账规模的扩大。

在一示例中,交易阀门判断模块U104具体还用于:根据所述交易统计数据,执行预设控制规则,以判断是否开启交易阀门。其中,预设控制规则包括由多个校验规则所组成的链式结构(规则链)。针对不同的账务交易类型,可以设置不同的控制规则,以达到更好的控制效果。

交易阀门控制模块U105,用于当判断结果为是时,开启交易阀门,以对交易并发数进行限制。

交易阀门是单边账规模控制系统的核心,直接决定是否对账务交易进行并发数限制(流控)。

当判断结果为是时,表明交易阀门需要被开启,所以此时交易阀门控制模块U105开启交易阀门,以对交易并发数进行限制。在对交易并发数进行限制以后,同时只允许执行少量的账务交易,甚至同时仅允许执行一条账务交易,进而将单边账的规模控制在一定范围内,避免故障蔓延。

本实施例提供的单边账规模控制系统,当账务交易发生单边账时,获取交易统计数据,根据交易统计数据判断是否开启交易阀门,当判断结果为是时,开启交易阀门,以对交易并发数进行限制,从而避免单边账大规模发生,防止故障蔓延,保证账务交易一致性,进而提高系统稳定性与可靠性。

在实际应用中,通过交易阀门对交易并发数进行限制时,可以采用直接减小交易并发数的参数值的方式来实现,也可以为账务交易提供一定数目的交易许可的方式来实现。

请参阅图7,图7为本申请实施例的单边账规模控制系统的另一种结构示意图。

本实施例的单边账规模控制系统中,交易阀门控制模块U105包括:

锁资源初始化子模块U201,当判断结果为是时,用于初始化预设数目的锁资源;

锁资源用于为账务交易提供交易许可,并且,一个锁资源仅用于为一条账务交易提供交易许可。

当交易阀门开启时,锁资源初始化子模块U201初始化预设数目的锁资源。预设数目可以为1或其他值,但预设数目必须小于系统设定的交易并发数的上限值,否则无法起到限制交易并发数的作用。

锁资源分配子模块U202,用于当新账务交易进入时,判断是否存在空闲的锁资源,若是,为所述新账务交易分配一个空闲的锁资源;若否,拒绝为所述新账务交易分配锁资源;

在一示例中,锁资源分配子模块U202包括:

锁资源判断子模块,用于当新账务交易进入时,判断是否存在空闲的锁资源;

锁资源分配子模块,用于当锁资源判断子模块得出的判断结果为是时,为所述新账务交易分配一个空闲的锁资源;当锁资源判断子模块得出的判断结果为否时,拒绝为所述新账务交易分配锁资源。

交易执行许可子模块U203,用于判断所述新账务交易是否已分配有锁资源,若是,允许执行所述新账务交易;若否,拒绝执行所述新账务交易。

在一示例中,交易执行许可子模块U203包括:

许可判断子模块,用于判断所述新账务交易是否已分配有锁资源;

许可执行子模块,用于当许可判断子模块得出的判断结果为是时,允许执行所述新账务交易;当许可判断子模块得出的判断结果为否时,拒绝执行所述新账务交易。

本实施例提供的单边账规模控制系统,当开启交易阀门,以对交易并发数进行限制时,通过预设数目的锁资源为账务交易提供交易许可,从而限制新账务交易的并发数,将单边账规模控制在较小的范围内,防止故障蔓延,提高系统的稳定性和可靠性。

本发明提供的单边账规模控制方法及系统,当账务交易发生单边账时,获取交易统计数据,根据交易统计数据判断是否开启交易阀门,当判断结果为是时,开启交易阀门,以对交易并发数进行限制,从而避免单边账大规模发生,防止故障蔓延,保证账务交易一致性,进而提高系统稳定性与可靠性。

并且,在根据交易统计数据,判断是否开启交易阀门时,通过执行严格的控制规则来获取判断结果,能够提高判断结果的准确性,保证交易阀门开启的合理性。

再者,当开启交易阀门,以对交易并发数进行限制时,通过预设数目的锁资源为账务交易提供交易许可,从而限制新账务交易的并发数,将单边账规模控制在较小的范围内。根据新账务交易执行结果,对锁资源的数目进行逐步调整,以控制交易阀门逐步关闭或直接开启,避免了交易阀门关闭时可能引起的交易抖动或交易量井喷等情况,避免了单边账的再次发生,进一步保证了系统的稳定性与可靠性。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的硬件平台的方式来实现,当然也可以全部通过硬件来实施,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本申请的限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1