一种交易限额计算处理系统及其处理方法与流程

文档序号:11678490阅读:299来源:国知局
一种交易限额计算处理系统及其处理方法与流程

本发明涉及计算机技术,尤其涉及对交易限额进行计算和控制的交易限额计算处理系统以及交易限额计算处理方法。



背景技术:

交易限额控制系统往往涉及大量的数值计算,数值判断,并且在交易并发度很高的情况下,对于系统的扩展性以及数据库的可维护性要求非常高。

现有的很多限额控制方案中,限额计算结果一般存放在数据库或者内存式数据库中,以保证数据的可用性,可加载性。但是频繁的与数据存储系统进行交互,大大的影响了系统的吞吐。在系统扩容时,往往会出现因为系统链路资源的消耗,导致扩容的结果不理想,扩容以后难以维护控制。而且,现有的交易限额控制系统通常将计算的中间结果进行统一存储,在分布式的处理环境下,由于交易限额控制系统与存储系统性能指标的不对等,在系统扩容时往往会出现因为系统资源的消耗,导致扩容的结果不理想。

另外,现有的交易限额控制系统在进行限额规则匹配时,由于交易请求往往会命中多种规则,所以交易限额控制系统往往会与存储系统进行多次交互,以达到计算数据的准确性,但是频繁的系统间交互,会导致系统对外的吞吐量明显降低,存放在存储系统的中间数据处理流程复杂,易出错。

在系统容错性上,现有交易限额控制系统在中间数据上的频繁操作,必然导致数据回滚的难度加大,使得系统不易维护,数据不易跟踪。



技术实现要素:

为了解决上述问题,本发明的目的在于,提供一种能够提升系统处理能力并且系统可扩展性良好的交易限额计算处理系统以及交易限额计算处理方法。

本发明的交易限额计算系统,其特征在于,具备:

交易限额模块,用于进行交易请求的限额规则匹配并获得唯一特征串,将至少包含所述唯一特征串的限额请求数据发送到下述的内存计算模块并且在下述判断结果为超限的情况下进行限额回退处理;以及

多个内存计算模块,用于根据来自交易限额模块的所述限额请求数据进行限额判断并向所述交易限额模块返回是否超限的判断结果。

优选地,所述交易限额模块和所述内存计算模块分离设置。

优选地,所述交易限额控制模块具备:

第一限额累加处理单元,用于实现交易请求的限额规则匹配以及内存计算模块的集群路由;以及

第一限额回退处理单元,用于在上判断结果为超限的情况下进行限额回退处理并实现数据打包和内存计算模块的集群路由功能。

优选地,所述第一限额累加处理单元用于计算获得匹配规则的唯一特征串,对于所述唯一特征串和所述多个内存计算模块的个数进行规定计算以获取本次处理请求实际应该发送的内存计算模块的地址,并且将所述限额请求数据发送到该地址的内存计算模块并同时缓存所述限额请求数据,

优选地,其中,所述限额请求数据包含唯一特征串、规则的限额、本次交易的金额以及规则过期时间。

优选地,所述第一限额回退处理单元在上判断结果为超限的情况下用于根据所述第一限额累加处理单元缓存的所述限额请求数据和所述多个内存计算模块的个数计算进行规定计算以获取本次限额处理请求实际应该发送的内存计算模块的地址并将结算结果发送到该地址的内存计算模块。

优选地,所述内存计算模块具备:

第二限额累加处理模块,对于来自所述交易限额模块的第一累加处理模块的所述限额请求数据进行规定计算判断是否超限;

第二限额回退处理模块,对于来自所述交易限额模块的第一限额回退处理模块的所述限额请求数据进行规定计算判断累计交易额度是否大于本次交易金额。

本发明的交易限额计算方法,其特征在于,利用分开设置的交易限额控制模块和内存计算模块实现,包括下述步骤:

特征串获取步骤,交易限额控制模块进行交易请求的限额规则匹配并获得唯一特征串;

地址计算步骤,交易限额控制模块对于所述唯一特征串进行第一规定计算并获得该限额处理请求应该发送的内存计算模块的地址;

数据发送步骤,将至少包含所述唯一特征串的限额请求数据发送到该地址的内存计算模块并缓存在交易限额控制模块;

超限判定步骤,内存计算模块判断该限额请求数据是否超限,在内存计算模块判断该限额请求数据超限的情况下则进行限额回退处理线程,如果判断为未超限的情况下则应答ok并结束流程,

其中,所述限额回退处理线程包括:

对在所述数据发送步骤中缓存在交易限额控制模块中的限额请求数据进行所述第一规定计算并获得该限额请求实际应该发送的内存计算模块的地址;

将该限额请求数据发送到该地址的内存计算模块;

内存计算模块对该限额请求数据进行第二规定计算并根据计算结果判定累计交易额度是否大于本次交易金额。

优选地,所述第一规定计算是指对所述唯一特征串进行hash计算,并与多个内存计算模块的服务个数做取模运算。

优选地,所述第二规定计算包括下述步骤:

对限额请求数据做字段校验;

解码唯一特征串,将不同规则的唯一特征串拼成新特征串;

根据新特征串查询内存中的计算结果,得到累计交易额度。

如上所述,根据本发明的交易限额计算系统以及交易限额计算方法,通过限额判断与限额回退的分离处理,提升了系统的吞吐,而且,能够避免分布式部署时,多机多次调用产生的限额重复计算的问题,而且,能够简化限额计算的容错流程,提升了系统的可维护性。另外通过将限额控制模块和内存计算模块分离设置,能够提高系统的并发性和可扩展性。

附图说明

图1是本发明的交易限额计算系统的构造框图。

图2是本发明的交易限额计算系统中限额累计处理的具体流程图。

图3是本发明的交易限额计算系统中限额回退处理的具体流程图。

具体实施方式

下面介绍的是本发明的多个实施例中的一些,旨在提供对本发明的基本了解,但并不旨在确认本发明的关键或决定性的要素或限定所要保护的范围。

图1是本发明的交易限额计算系统的构造框图。

如图1所示,本发明的交易限额计算系统包括:交易限额控制模块100以及内存计算模块200。为应对高并发的处理需求,交易限额控制模块,内存计算模块均可以做水平扩展,集群化,这里,这些交易限额控制模块为无状态模块,可以设置多个,内存计算模块是有状态的,可以根据业务维度拆分成多个。

交易限额控制模块100用于在匹配完交易规则以后取得命中规则的唯一特征串、规则的具体限额(可能包含多个限额)以及当笔交易的金额,将这些数据发给内存计算模块200,内存计算模块200读取已有的计算结果,进行限额判断,返回超限与否给交易限额控制模块100,完成限额控制。在超限的情况下,交易限额控制模块100进行限额回退操作。

下面对于交易限额控制模块100以及内存计算模块200的各构造部分及其动作进行具体说明。

交易限额控制模块100具备多个第一限额累加处理单元110和多个第一限额回退处理单元120。第一限额累加处理单元110主要用于完成交易请求的限额规则匹配功能以及内存计算模块的集群路由功能。第一限额回退处理单元120主要完成数据打包和内存计算模块的集群路由功能。

图2是本发明的交易限额计算系统中限额累计处理的具体流程图。图3是本发明的交易限额计算系统中限额回退处理的具体流程图。

交易限额控制模块100在匹配完规则,得到对应规则限额以后,由第一限额累加处理单元110进行图2中左侧部分的处理。

如图2所示,如图2所示,在步骤s100:第一限额累加处理单元110计算得出本次匹配规则的唯一特征串(即图2中的“规则key值”)在本发明中,特征串由交易的唯一索引号以及匹配规则的唯一索引号以及规则的维度属性组成,例如:交易唯一索引号$规则唯一索引号1|规则属性1[|规则属性n]$[规则唯一索引号2|规则属性1[|规则属性n]$]。

在本发明中,特征串用于表征本次交易请求需要处理的规则。在本发明中利用了特征串的以下特性:

(1)表征交易的唯一,在分布式情况下不会有冲突的情况以及加锁的需要;

(2)特征串包含了需要处理的多个规则,可以减少交易限额控制模块和内存计算模块系统间的交互;

(3)通过该特征串,可以做一次性限额计算,保证计算的原子性。

在步骤s101中,对特征串做hash计算,并与内存计算模块集群中服务的个数做取模运算,得出限额处理请求实际应该发送的内存计算模块地址。

在步骤s102中,将上述限额计算请求数据发送至内存计算模块200并同时在本地缓存一份,这些数据包含:上述计算得出的特征串、规则的限额、本次交易的金额,规则过期时间(可能有多组数据)。其中,至少是将将规则的唯一特征串以及本次交易的金额数据缓存在本地。

在步骤s103中,读取从内存计算模块200返回的结果,如果返回未超限,则应答ok并结束流程。如果内存计算模块200返回超限,则在步骤s104中由限额回退处理单元120根据步骤s102中缓存的数据处理回退流程,即将数据加入到joblist(即工作列表)中供第一限额回退单元120使用。

接着,由第一限额回退处理单元120进行的图3中的左侧部分的处理进行说明。

如图3所示,在步骤s201中,第一限额回退处理单元120读取joblist中的数据。在步骤s202中,对限额累加处理单元110缓存的数据中的特征串做hash计算,并与内存计算模块200集群中服务的个数做取模运算,得出限额处理请求实际应该发送的内存计算模块地址,并且将数据至内存计算模块,结束本次流程。当从内存计算模块200返回应答的情况下,在步骤s203中第一限额回退处理单元120读取内存计算模块200的应答,之后结束流程。

接着,对于内存计算模块200的动作流程进行具体说明。内存计算模块200可以是由多个内存计算模块组成内存计算模块集群,内存计算模块200主要完成限额的计算和将计算结果缓存在内存的功能。

内存计算模块200具备第二限额累加处理单元210和第二限额回退处理单元220。

参照图2中的右侧部分对于内存计算模块200中的第二限额累加处理单元210的处理流程进行说明。

如图2的右侧部分所示,在步骤s301中,第二限额累加处理单元210对限额计算请求做字段校验。具体地,根据上述(2)中特征串的制定规则进行合法性校验。例如,字段包括:规则特征串、本次交易金额、规则限额类型1、规则限额1、规则过期时间1、规则限额类型2、规则限额2、规则过期时间2...规则限额类型n、规则限额n、规则过期时间n。

在步骤s302中,解码特征串,将不同规则的唯一key值和规则限额类型拼成新的new_key_1、new_key_2...new_key_n。其中,根据上述(2)一个特征串(根据上述(2)所述)包含多条规则,每条规则中包含多个属性,解码特征串是指将多条规则拆开并将每条规则的多个属性分开。

这里对于将不同规则的唯一key值和规则限额类型拼成新的new_key_1、new_key_2...new_key_n的情况进行举例。

例如以下常用的限额规则:商户组1中任意卡号的单日限额500,单月限额50000,单日限笔50,可以将规则拼接成如下三条key:

规则唯一索引号1|商户1|卡号1|单日限额

规则唯一索引号1|商户1|卡号1|单月限额

规则唯一索引号1|商户1|卡号1|单日限笔

这样,拼接成的新key可以保证唯一,然后通过上述key值可以在内存计算模块中查找已使用的额度,分别对每种限额进行累加控制。

在步骤s303中,根据new_key_1、new_key_2...new_key_n查询内存中限额累计的结果,得到累计交易额度1、累计交易额度2...累计交易额度n(如果没有查询到累计交易额度,或者查询到的累计交易额度已过期则按累计交易额度为0处理);

在步骤s304中判断累计交易额度是否超限,对于n个累计交易额度,如果其中任意累计交易额度+本次交易额度>规则限额,则返回交易额度超限;如果对于n个累计交易额度,均存在累计交易额度+本次交易额度<=规则限额,则通过new_key_1,new_key_2...new_key_n,则判断为未超限,并进入步骤s305。

在步骤s305中,对内存中的累计交易额度进行数值更新。另外,对于在步骤s303中未查询到累计交易额度的情况,在更新累计额度之后再进行额度过期时间设置。

接着,参照图3中的右侧部分,对于内存计算模块200中的第二限额回退处理单元220的具体处理流程进行说明。

如图3的右侧部分所示,在步骤s401中,第二限额回退处理单元220对限额计算请求做字段校验。这些字段包括:规则特征串、本次交易金额、规则限额类型1、规则限额类型2...规则限额类型n。

在步骤s402中,解码特征串,将不同规则唯一key值+规则限额类型拼成新的new_key_1、new_key_2...new_key_n。

在步骤s403中,通过new_key_1、new_key_2...new_key_n查询内存中的计算结果,得到累计交易额度1、累计交易额度2...累计交易额度n。

在步骤s404中,如果累计交易额度>本次交易金额,则将累计交易额度-本次交易金额得到的数值更新至内存中;如果累计交易额度=本次交易金额,则将累计交易额度删掉;如果累计交易额度<本次交易金额,则不做操作。在更新内存中限额之后结束步骤并向限额控制模块100返回应答。

在本发明的交易限额计算系统以及交易限额计算方法中,通过限额判断与限额回退的分离处理,提升了系统的吞吐,而且,能够避免分布式部署时,多机多次调用产生的限额重复计算的问题,而且,能够简化限额计算的容错流程,提升了系统的可维护性。另外通过将限额控制模块和内存计算模块分离设置,能够提高系统的并发性和可扩展性。

以上例子主要说明了本发明的交易限额计算系统以及交易限额计算方法。尽管只对其中一些本发明的具体实施方式进行了描述,但是本领域普通技术人员应当了解,本发明可以在不偏离其主旨与范围内以许多其他的形式实施。因此,所展示的例子与实施方式被视为示意性的而非限制性的,在不脱离如所附各权利要求所定义的本发明精神及范围的情况下,本发明可能涵盖各种的修改与替换。

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