CN111709731A - 一种交易处理方法及装置 - Google Patents
一种交易处理方法及装置 Download PDFInfo
- Publication number
- CN111709731A CN111709731A CN202010561247.6A CN202010561247A CN111709731A CN 111709731 A CN111709731 A CN 111709731A CN 202010561247 A CN202010561247 A CN 202010561247A CN 111709731 A CN111709731 A CN 111709731A
- Authority
- CN
- China
- Prior art keywords
- transaction
- processed
- concurrency control
- interceptor
- control function
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 12
- 238000000034 method Methods 0.000 claims abstract description 98
- 238000012545 processing Methods 0.000 claims abstract description 47
- 230000008569 process Effects 0.000 claims abstract description 34
- 230000006870 function Effects 0.000 claims description 70
- 238000005516 engineering process Methods 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 9
- 238000004590 computer program Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- ZRHANBBTXQZFSP-UHFFFAOYSA-M potassium;4-amino-3,5,6-trichloropyridine-2-carboxylate Chemical compound [K+].NC1=C(Cl)C(Cl)=NC(C([O-])=O)=C1Cl ZRHANBBTXQZFSP-UHFFFAOYSA-M 0.000 description 2
- 206010033799 Paralysis Diseases 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Images
Classifications
-
- 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/10—Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Economics (AREA)
- Development Economics (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明实施例涉及金融科技(Fintech)领域,公开一种交易处理方法及装置,通过拦截器获取待处理交易;拦截器用于对指定类型的交易进行拦截;通过拦截器确定待处理交易是否满足并发控制功能的限制条件;在待处理交易未满足限制条件时,调用交易服务处理待处理交易。该交易处理流程中是针对指定类型的交易中指定交易因素来设定并发控制功能的,该方式相对灵活;并且,在待处理交易满足并发控制功能的限制条件时,则直接拒绝执行所拦截的、指定类型的待处理交易,从而实现了对指定类型的交易的并发控制目的。
Description
技术领域
本发明实施例涉及金融科技(Fintech)领域,尤其涉及一种交易处理方法及装置。
背景技术
随着计算机技术的发展,越来越多的技术(例如:大数据、云计算或区块链)应用在金融领域,传统金融业正在逐步向金融科技转变,大数据技术也不例外。但由于金融、支付行业的安全性、实时性要求,也对大数据技术提出了更高的要求。
目前,传统的银行核心系统对于单账户的交易处理,常见的有如下方案:
方案1、通过对交易双方的账户加排他锁的方式。在外围系统发送业务请求到银行核心系统时,银行核心系统在记账处理时采用加排他锁的方式来对账户按照外围系统发送的业务请求的顺序逐笔进行账务处理。
方案2、通过配置热点账户的方式。针对账户做交易处理,在产品未上线之前,预先配好哪些账户是热点账户。比如预设一个热点账户表,将某些账户配置成热点账户,存储在该表中。当该账户的交易处理请求过来时,首先查询账户是否属于热点账户,如果该账户属于热点账户,那么使用热点账户相对应的记账方案进行处理。
对于上述的两种技术方案,分别具有以下问题:
对于方案1,首先,通过设置排他锁的方式,使得银行核心系统无法对不同类型的账户做到差异化的并发交易控制,也即对所有的账户交易均采取同样的交易控制模式;其次,在同一时刻,若某账户的业务量巨大,则账户频繁地加锁释放锁从而导致占用很多的数据库资源,使得整个银行核心系统的处理效率低下,甚至造成银行核心系统的瘫痪。
对于方案2,首先,通过设置热点账户的方式,并非适用于所有的群体。该方式要求账户对应的客户要接受交易不能实时入账的用户体验,所以热点账户的使用群体一般是非个人账户,比如为公司、行政事业单位在银行开立的账户;其次,由于前者导致该账户余额不是实时更新的,那么如果该账户是频繁扣款的账户,那么可能会出现资金透支的风险。
对于以上问题,现有技术目前无法提供一种对非热点账户的并发交易进行有效控制的方法。
发明内容
本发明实施例提供一种交易处理方法及装置,用以解决在账户发生并发交易时,进行有效控制的问题。
第一方面,本发明实施例提供一种交易处理方法,该方法包括:通过拦截器获取待处理交易;所述拦截器用于对指定类型的交易进行拦截;通过所述拦截器确定所述待处理交易是否满足并发控制功能的限制条件;所述并发控制功能是针对所述指定类型的交易中指定交易因素进行设定的;其中,所述限制条件用于判断是否拒绝执行所述指定类型的交易;在所述待处理交易未满足所述限制条件时,调用交易服务处理所述待处理交易。
基于该方案,通过在指定类型的交易服务上定义拦截器,用于对指定类型的交易进行拦截并获取,对于所获取的待处理交易,通过调用拦截器中的方法确定它是否满足并发控制功能的限制条件,从而在它并未满足限制条件时,调用交易服务来对它进行处理,该交易处理流程中是针对指定类型的交易中指定交易因素来设定并发控制功能的,该方式相对灵活;并且,在待处理交易满足并发控制功能的限制条件时,则直接拒绝执行所拦截的、指定类型的待处理交易,从而实现了对指定类型的交易的并发控制目的。
在一种可能的实现方法中,所述通过所述拦截器确定所述待处理交易是否满足并发控制功能的限制条件,包括:获取所述并发控制功能对应的记录值;所述记录值用于指示待执行的指定类型的交易的数量;确定所述记录值是否已经达到所述并发控制功能对应的限制阈值。
基于该方案,通过获取并发控制功能对应的记录值,该记录值用于表示待执行的指定类型的交易的数量,根据该记录值与并发控制功能对应的限制阈值的,确定该记录值是否已经达到限制阈值。通过为并发控制功能设置阈值的方式,可以根据实际的需要对限制阈值的值大小进行调整,从而使得在确定是否要对待处理交易进行并发控制时,通过应用该方式,通常会显得更为灵活一些。
在一种可能的实现方法中,所述调用交易服务处理所述待处理交易之前,还包括:若所述记录值未达到所述限制阈值,则增加所述记录值;所述调用交易服务处理所述待处理交易之后,还包括:在所述待处理交易处理完成后,减少所述记录值。
基于该方案,通过比较记录值与限制阈值,在记录值小于限制阈值时,则将待处理交易对应的一条记录计入记录值中,并在该待处理交易被所调用的交易服务处理完毕后,需要对记录值中的对应于该待处理交易的一条记录进行删除,从而推进了对整个交易处理的流程,保证交易被成功处理。
在一种可能的实现方法中,所述并发控制功能中还包括告警阈值;所述告警阈值小于所述限制阈值;若所述记录值首次达到所述告警阈值,则增加所述记录值并发出告警;执行所述待处理交易;在所述待处理交易执行完成后,减少所述记录值。
基于该方案,对于并发控制功能,除了设置有限制阈值,还设置有告警阈值,作用在于记录值首次达到告警阈值时,除了需要正常处理该笔待处理交易,还需要向外界发出告警,以提示工作人员警惕待处理交易是否会在未来的时刻发生异常。
在一种可能实现的方法中,在所述待处理交易未满足所述限制条件之后,且所述调用交易服务处理所述待处理交易之前,还包括:将所述待处理交易存储于内存型数据库中。
基于该方案,通过将待处理交易存储于内存型数据库中,相比于传统地使用关系型数据库存储待处理交易的方式,内存型数据库的优势在于可以将数据库中的内容保存在内存中,增加了数据的读写效率同时避免再次占用数据库的资源。
在一种可能实现的方法中,所述并发控制功能中的指定交易因素为以下至少一项:单账户并发控制配置信息中设定的交易主体、单账户并发控制配置信息中设定的执行函数。
基于该方案,通过在指定类型的交易服务上定义拦截器,从而所获取的待处理交易为指定类型的交易,然而,在实际的操交易处理过程中并非要求对全部的待处理交易均进行并发控制,比如会对指定交易因素的待处理交易进行并发控制,其中指定交易因素可以包括单账户并发控制配置信息中设定的交易主体和/或单账户并发控制配置信息中设定的执行函数,从而在对待处理交易进行并发控制的过程中,该方式会显得更加灵活与多变。
在一种可能实现的方法中,所述记录值和所述单账户并发控制配置信息存储于内存型数据库中。
基于该方案,通过将记录值和单账户并发控制配置信息存储于内存型数据库中,相比于传统地使用关系型数据库存储待处理交易的方式,内存型数据库的优势在于可以将数据库中的内容保存在内存中,增加了数据的读写效率同时避免再次占用数据库的资源。
第二方面,本发明实施例提供一种交易处理装置,该装置包括:交易获取单元,用于通过拦截器获取待处理交易;所述拦截器用于对指定类型的交易进行拦截;确定单元,用于通过所述拦截器确定所述待处理交易是否满足并发控制功能的限制条件;所述并发控制功能是针对所述指定类型的交易中指定交易因素进行设定的;其中,所述限制条件用于判断是否拒绝执行所述指定类型的交易;交易处理单元,用于在所述待处理交易未满足所述限制条件时,调用交易服务处理所述待处理交易。
基于该方案,通过在指定类型的交易服务上定义拦截器,用于对指定类型的交易进行拦截并获取,对于所获取的待处理交易,通过调用拦截器中的方法确定它是否满足并发控制功能的限制条件,从而在它并未满足限制条件时,调用交易服务来对它进行处理,该交易处理流程中是针对指定类型的交易中指定交易因素来设定并发控制功能的,该方式相对灵活;并且,在待处理交易满足并发控制功能的限制条件时,则直接拒绝执行所拦截的、指定类型的待处理交易,从而实现了对指定类型的交易的并发控制目的。
在一种可能的实现方法中,所述确定单元具体用于:获取所述并发控制功能对应的记录值;所述记录值用于指示待执行的指定类型的交易的数量;确定所述记录值是否已经达到所述并发控制功能对应的限制阈值。
基于该方案,通过获取并发控制功能对应的记录值,该记录值用于表示待执行的指定类型的交易的数量,根据该记录值与并发控制功能对应的限制阈值的,确定该记录值是否已经达到限制阈值。通过为并发控制功能设置阈值的方式,可以根据实际的需要对限制阈值的值大小进行调整,从而使得在确定是否要对待处理交易进行并发控制时,通过应用该方式,通常会显得更为灵活一些。
在一种可能的实现方法中,所述交易处理单元还用于:若所述记录值未达到所述限制阈值,则增加所述记录值;以及,在所述待处理交易处理完成后,减少所述记录值。
基于该方案,通过比较记录值与限制阈值,在记录值小于限制阈值时,则将待处理交易对应的一条记录计入记录值中,并在该待处理交易被所调用的交易服务处理完毕后,需要对记录值中的对应于该待处理交易的一条记录进行删除,从而推进了对整个交易处理的流程,保证交易被成功处理。
在一种可能的实现方法中,所述并发控制功能中还包括告警阈值;所述告警阈值小于所述限制阈值;所述交易处理单元具体用于:若所述记录值首次达到所述告警阈值,则增加所述记录值并发出告警;执行所述待处理交易;在所述待处理交易执行完成后,减少所述记录值。
基于该方案,对于并发控制功能,除了设置有限制阈值,还设置有告警阈值,作用在于记录值首次达到告警阈值时,除了需要正常处理该笔待处理交易,还需要向外界发出告警,以提示工作人员警惕待处理交易是否会在未来的时刻发生异常。
在一种可能的实现方法中,所述交易处理装置还包括存储单元,所述存储单元用于:将所述待处理交易存储于内存型数据库中。
基于该方案,通过将待处理交易存储于内存型数据库中,相比于传统地使用关系型数据库存储待处理交易的方式,内存型数据库的优势在于可以将数据库中的内容保存在内存中,增加了数据的读写效率同时避免再次占用数据库的资源。
在一种可能的实现方法中,所述并发控制功能中的指定交易因素为以下至少一项:单账户并发控制配置信息中设定的交易主体、单账户并发控制配置信息中设定的执行函数。
基于该方案,通过在指定类型的交易服务上定义拦截器,从而所获取的待处理交易为指定类型的交易,然而,在实际的操交易处理过程中并非要求对全部的待处理交易均进行并发控制,比如会对指定交易因素的待处理交易进行并发控制,其中指定交易因素可以包括单账户并发控制配置信息中设定的交易主体和/或单账户并发控制配置信息中设定的执行函数,从而在对待处理交易进行并发控制的过程中,该方式会显得更加灵活与多变。
在一种可能的实现方法中,所述记录值和所述单账户并发控制配置信息存储于内存型数据库中。
基于该方案,通过将记录值和单账户并发控制配置信息存储于内存型数据库中,相比于传统地使用关系型数据库存储待处理交易的方式,内存型数据库的优势在于可以将数据库中的内容保存在内容中,增加了数据的读写效率同时避免再次占用数据库的资源。
第三方面,本发明实施例提供了一种计算设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行如第一方面任一所述的方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如第一方面任一所述的方法。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种交易处理方法;
图2为本发明实施例提供的一种交易处理流程图;
图3为本发明实施例提供的一种BizProcessorListener.beforeServiceProcess方法流程图;
图4为本发明实施例提供的一种BizProcessorListener.finalServiceProcess方法流程图;
图5为本发明实施例提供的一种交易处理装置。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
对于银行核心系统中的并未被配置为热点账户的普通账户,正常来说,普通账户逐笔地向银行核心系统发送交易请求,在银行核心系统对当前一笔交易请求处理完毕后,普通账户才会继续向银行核心系统发送下一笔交易请求。相应的,银行核心系统逐笔地接收普通账户发送的交易请求,并且在自身对当前一笔交易请求处理完毕后,银行核心系统才会继续接收下一笔交易请求。然而,如果一普通账户由于发生了某种异常,导致了它同时向银行核心系统发送很大笔数的交易请求,换句话说,在银行核心系统还未处理完毕一笔交易请求时,同样的交易请求持续不断地进入到银行核心系统,以希望得到处理。因此,对于由普通账户所发起的高并发的交易请求,极容易导致银行核心系统的崩溃,变得不可用。
针对上述高并发的交易请求进入银行核心系统的场景,本发明实施例提供的一种交易处理方法,如图1所示,该方法包括以下步骤:
步骤101,通过拦截器获取待处理交易;所述拦截器用于对指定类型的交易进行拦截;
步骤102,通过所述拦截器确定所述待处理交易是否满足并发控制功能的限制条件;所述并发控制功能是针对所述指定类型的交易中指定交易因素进行设定的;其中,所述限制条件用于判断是否拒绝执行所述指定类型的交易;
步骤103,在所述待处理交易未满足所述限制条件时,调用交易服务处理所述待处理交易。
基于该方案,通过在指定类型的交易服务上定义拦截器,用于对指定类型的交易进行拦截并获取,对于所获取的待处理交易,通过调用拦截器中的方法确定它是否满足并发控制功能的限制条件,从而在它并未满足限制条件时,调用交易服务来对它进行处理,该交易处理流程中是针对指定类型的交易中指定交易因素来设定并发控制功能的,该方式相对灵活;并且,在待处理交易满足并发控制功能的限制条件时,则直接拒绝执行所拦截的、指定类型的待处理交易,从而实现了对指定类型的交易的并发控制目的。
以客户A做一笔理财申购交易为例进行说明。当客户A发起理财申购交易时,则会调用到银行核心系统的IoDpTransDetl交易服务。其中,IoDpTransDetl交易服务是理财申购交易调用银行核心系统的方法名。具体地,IoDpTransDetl交易服务包括以下4个步骤:
1、对客户A所属的账户做金额转出检查方法CheckOut。其中,IoDpTransDetl.CheckOut主要会检查客户A所属的账户状态、账户金额、账户限额等。其中,检查账户的状态主要会检查该账户是否已经销户、该账户是否存在司法机关的管控等信息;检查账户的金额主要是确认该账户的金额是否满足客户A所提出的欲购买金额;检查账户的限额主要是确认该账户的欲购买金额是否超出银行对该账户所规定的金钱额度。
2、对客户A的对手方,比如一个待清算账户B做金额转入检查方法CheckIn。其中,IoDpTransDetl.CheckIn主要会检查待清算账户B的状态、账户限额等。
3、对客户A所属的账户做金额转出处理操作方法DoOut。换句话说,IoDpTransDetl.DoOut是将客户A所属的账户中的金额向账户B进行转出。
4、对待清算账户B做金额转入处理操作方法DoIn。换句话说,IoDpTransDetl.DoIn是接收来自客户A所属的账户中转出的金额。
也即,IoDpTransDetl.CheckOut与IoDpTransDetl.CheckIn属于检查类的方法,IoDpTransDetl.DoOut与IoDpTransDetl.DoIn属于处理入账类的方法。
在上述步骤101中,通过拦截器获取待处理交易;所述拦截器用于对指定类型的交易进行拦截。
比如,银行工作人员根据实际的需求,会预先定义好哪些交易服务需要被拦截,并在这些需要被拦截的交易服务上定义拦截器,作为一种示例,本发明实施例通过采用Spring AOP(Aspect Oriented Programming,Spring框架中面向方面的编程框架)来定义系统的拦截器。比如提前会定义好要对理财申购交易服务、转账交易服务进行拦截,以及会定义好不对理财赎回交易服务、司法冻结交易服务进行拦截,等等。该预先定义也可以体现在并发控制功能中,即根据业务人员的需求给出并发控制功能,研发人员在具体的业务代码中进行拦截器的设置。
比如,在本发明实施例中,设理财申购交易服务被定义为需要被拦截的交易服务,则会在理财申购交易服务上添加如下信息:
@Around("execution(*com.xxx.service.*.*(..)))
以上内容表示拦截器会对交易服务的所有方法都执行拦截。其中,为了区分不同交易服务的拦截器,作为示例,本发明实施例中设用于拦截IoDpTransDetl交易服务的拦截器被记作BizProcessorListener。
在客户A发起理财申购交易时均会调用到银行核心系统的IoDpTransDetl交易服务,从而,客户A每次对IoDpTransDetl交易服务的调用,都会被BizProcessorListener拦截器进行拦截。
以上通过为指定类型的交易服务器设置拦截器,从而在拦截器可以对指定类型的交易进行拦截。对于银行核心系统中并未被配置为热点账户的普通账户而言,采用拦截器这种操作方式相对灵活,应用场景较为广泛。
除了上述的通过拦截器的方式获取待处理交易,作为另一种可能的实现方式是通过对待处理交易中的字段进行判断,如确定待处理交易的类型是理财申购,而理财申购是并发控制功能中设置的限制交易的类型。
在步骤102中,通过所述拦截器确定所述待处理交易是否满足并发控制功能的限制条件;所述并发控制功能是针对所述指定类型的交易中指定交易因素进行设定的;其中,所述限制条件用于判断是否拒绝执行所述指定类型的交易。
可选的,所述并发控制功能中的指定交易因素为以下至少一项:单账户并发控制配置信息中设定的交易主体、单账户并发控制配置信息中设定的执行函数。
可选的,所述单账户并发控制配置信息存储于内存型数据库中;相应的,从内存型数据库中获取所述单账户并发控制配置信息。
比如,客户A对IoDpTransDetl交易服务的调用在被BizProcessorListener拦截器拦截时,则BizProcessorListener拦截器会获取到交易服务的名称以及调用该交易服务的输入参数;其中,输入参数可以包括卡号、账户名称等信息。在IoDpTransDetl交易服务被拦截后,则执行拦截器中的方法,如开始执行BizProcessorListener.beforeServiceProcess方法。
具体的,根据交易服务的名称——IoDpTransDetl,从内存型数据库中获取单账户并发控制配置信息,如单账户交易计数控制表ksys_concur_control。作为一种示例,内存型数据库可以为redis。实际上,该单账户并发控制配置信息存储在数据库中,在系统运行时,将单账户并发控制配置信息存入内存型数据库,从而使得后续对交易进行处理时可以快速获取单账户并发控制配置信息。参考表1,为本发明实施例提供的一种单账户交易计数控制表ksys_concur_control。
表1
比如,在银行需要对交易主体为账号和交易行为为理财申购的事件做并发交易控制,那么则会在上述表中增加一条配置如下:
参考表1,由于其中的enabled字段对应的值为1,则表1表示的含义是:对于交易主体为acctNo(账户名)以及交易行为为IoDpTransDetl(理财申购交易服务)的交易事件,在发生这个交易事件时会对这个交易进行并发控制。也即,通过控制enabled字段对应的值来进行启用/不启用针对交易事件的并发控制。具体的,可以通过预设的方式来实现是否针对交易事件的并发控制,比如,在enabled字段对应的值为1时,则表示对交易事件进行并发控制,在enabled字段对应的值为0或者为空值时,则表示不对交易事件进行并发控制。
从而,在客户A发起的理财申购交易调用银行核心系统中IoDpTransDetl交易服务的方法被BizProcessorListener拦截器拦截时,通过根据交易服务的名称——IoDpTransDetl获取到单账户交易计数控制表ksys_concur_control,通过确认客户A的账户在单账户交易计数控制表的范畴(比如,客户A的账户名出现在acctNo一栏),以及在单账户交易计数控制表中的enabled被确认为启用并发交易控制时,则表示对于客户A发起的理财申购交易需要被执行并发交易控制。
根据单账户交易计数控制表ksys_concur_control中的enabled字段的状态,在确定enabled字段对应的值为1时,则表示需要对客户A的理财申购交易进行并发控制;接下来,通过调用checkIgnore方法,根据表中配置的前置检查类全路径来确定是否忽略并发控制。比如,针对检查类的方法,通过配置此方法所在的全路径,则可以实现不用对检查类的方法的并发控制;又比如,针对处理入账类的方法,通过配置此方法所在的全路径,则可以实现对处理入账类的方法的并发控制。具体地,对于IoDpTransDetl交易服务,其中,由于IoDpTransDetl.CheckOut与IoDpTransDetl.CheckIn属于检查类的方法,从而会忽略对这两种方法的并发控制,也即不对IoDpTransDetl.CheckOut或IoDpTransDetl.CheckIn方法做并发控制;由于IoDpTransDetl.DoOut与IoDpTransDetl.DoIn属于处理入账类的方法,从而会对这两种方法做并发控制。
可选的,所述通过所述拦截器确定所述待处理交易是否满足并发控制功能的限制条件,包括:获取所述并发控制功能对应的记录值;所述记录值用于指示待执行的指定类型的交易的数量;确定所述记录值是否已经达到所述并发控制功能对应的限制阈值。
可选的,所述记录值存储于内存型数据库中;相应的,从内存型数据库中获取所述记录值。
针对客户A发起的理财申购交易调用银行核心系统IoDpTransDetl交易服务,并在确定需要进行并发交易控制时,根据所获取的交易服务名称以及输入的参数到内存型数据库中获取对应的值,这个对应的值即为记录值,该记录值用于指示待执行的指定类型的交易的数量。作为一种示例,内存型数据库可以为redis。若该记录值已经达到所述并发控制功能对应的限制阈值,则拒绝执行指定类型的交易。
在本发明实施例中,通过将单账户交易计数控制表ksys_concur_control中的拒绝交易并发数(即限制阈值)设置为一个固定数值,比如将限制阈值设置为10;则当记录值达到10时,则银行核心系统会拒绝客户A发起的理财申购的交易。比如,如果客户A同时向银行核心系统发起了100笔理财申购的交易,则银行核心系统仅仅会对它首先接收到的10笔理财申购的交易进行处理,而拒绝掉其余的随后发起的90笔理财申购的交易。从而达到了银行核心系统可以在自身能够处理交易的范围内对客户同时发起的交易进行处理,而对超出自身处理能力范围以外的交易直接拒绝处理,保证了银行核心系统的高可用性和强健性。
可以理解的是,在银行核心系统能够处理完客户A在同一时刻发起的一条或多条交易时,则对于客户A在下一时刻向银行系统发起的交易时,银行核心系统可以根据记录值与限制阈值之间的差值,继续接收下一时刻的交易并进行处理。如此,通过对待处理交易开启并发控制功能,从而可以使得银行核心系统灵活地对客户发起的待处理的交易的进行处理。
在上述步骤103中,在所述待处理交易未满足所述限制条件时,调用交易服务处理所述待处理交易。
可选的,在所述待处理交易未满足所述限制条件之后,且所述调用交易服务处理所述待处理交易之前,还包括:将所述待处理交易存储于内存型数据库中。
通过将待处理交易存储于内存型数据库,比如redis数据库中,该方式相比于传统地使用关系型数据库存储待处理交易的方式,内存型数据库的优势在于可以将数据库中的内容保存在内存中,增加了数据的读写效率同时避免再次占用数据库的资源。
可选的,所述并发控制功能中还包括告警阈值;所述告警阈值小于所述限制阈值;若所述记录值首次达到所述告警阈值,则增加所述记录值并发出告警;执行所述待处理交易;在所述待处理交易执行完成后,减少所述记录值。
在本发明实施例中,通过将单账户交易计数控制表ksys_concur_control中的告警并发数(即告警阈值)设置为一个固定数值,比如将告警阈值设置为5;则当记录值未达到5时,则在该记录值的基础上累加1,也即在redis数据库中交易服务名称以及输入参数对应的值上加1;随后继续调用IoDpTransDetl交易服务处理客户A发起的交易;在客户A发起的一笔交易被处理完毕后,调用BizProcessorListener.afterServiceProcess方法对相关的交易服务进行登记交易流水等日志信息;最后,调用BizProcessorListener.finalServiceProcess方法,对客户A在redis数据库中交易服务名称以及输入参数对应的值上减1。
随后,当记录值首次达到5时,则触发告警机制,也即会向运维人员发送告警短信同时银行核心系统会发出告警,运维人员可以根据告警的信息来进行下一步的决策。由于告警阈值小于限制阈值,说明在发出告警信息的同时并不会影响银行核心系统对客户A发起的其他待执行的交易的处理进程,也即同样会执行记录值未达到5之前的步骤。由于前面已经描述过记录值未达到5之前的步骤,因为这里就不对记录值等于告警阈值时,银行核心系统对客户A的待执行的交易的处理流程进行描述了。
可选的,所述调用交易服务处理所述待处理交易之前,还包括:若所述记录值未达到所述限制阈值,则增加所述记录值;所述调用交易服务处理所述待处理交易之后,还包括:在所述待处理交易处理完成后,减少所述记录值。
如前面的例子,当记录值大于5但不超过10时,则在该记录值的基础上累加1,也即在redis数据库中交易服务名称以及输入参数对应的值上加1;随后继续调用IoDpTransDetl交易服务处理客户A发起的交易;在客户A发起的一笔交易被处理完毕后,调用BizProcessorListener.afterServiceProcess方法对相关的交易服务进行登记交易流水等日志信息;最后,调用BizProcessorListener.finalServiceProcess方法,对客户A在redis数据库中交易服务名称以及输入参数对应的值上减1。
如图2所示,为本发明实施例提供的一种交易处理流程图。
步骤201,银行核心系统调用IoDpTransDetl交易服务时被拦截器拦截;
步骤202,拦截器执行BizProcessorListener.beforeServiceProcess方法;
步骤203,银行核心系统继续调用IoDpTransDetl交易服务进行交易处理;
步骤204,拦截器执行BizProcessorListener.afterServiceProcess方法;
步骤205,拦截器执行BizProcessorListener.finalServiceProcess方法;
步骤206,返回。
如图3所示,为本发明实施例提供的一种BizProcessorListener.beforeServiceProcess方法流程图。
步骤301,查询单账户交易计数控制表;
步骤302,判断是否进行并发交易控制;如果判断结果为“是”,则执行步骤303,否则返回;
步骤303,调用checkIgnore方法根据表中配置的检查类全路径来检查是否忽略并发控制;如果判断结果为“否”,则执行步骤304,否则返回;
步骤304,根据获取的交易服务名称以及输入的参数(键)从redis中获取到对应的值,在未达到交易拒绝并发数时,将redis中键对应的值累加1;
步骤305,返回。
如图4所示,为本发明实施例提供的一种BizProcessorListener.finalServiceProcess方法流程图。
步骤401,查询单账户交易计数控制表;
步骤402,判断是否进行并发交易控制,如果判断结果为“是”,则执行步骤403,否则返回;
步骤403,将获取的交易服务名称以及输入的参数作为键,并从redis中获取到对应的值。如果键对应的值小于等于1,则直接从redis中删除;否则将键对应的值累减1。
步骤404,返回。
基于同样的构思,本发明实施例还提供一种交易处理的装置。如图5所示,该装置包括:
交易获取单元501,用于通过拦截器获取待处理交易;所述拦截器用于对指定类型的交易进行拦截;
确定单元502,用于通过所述拦截器确定所述待处理交易是否满足并发控制功能的限制条件;所述并发控制功能是针对所述指定类型的交易中指定交易因素进行设定的;其中,所述限制条件用于判断是否拒绝执行所述指定类型的交易;
交易处理单元503,用于在所述待处理交易未满足所述限制条件时,调用交易服务处理所述待处理交易。
进一步地,对于该装置,确定单元502具体用于:获取所述并发控制功能对应的记录值;所述记录值用于指示待执行的指定类型的交易的数量;确定所述记录值是否已经达到所述并发控制功能对应的限制阈值。
进一步地,对于该装置,交易处理单元503还用于:若所述记录值未达到所述限制阈值,则增加所述记录值;以及,在所述待处理交易处理完成后,减少所述记录值。
进一步地,对于该装置,所述并发控制功能中还包括告警阈值;所述告警阈值小于所述限制阈值;所述交易处理单元503具体用于:若所述记录值首次达到所述告警阈值,则增加所述记录值并发出告警;执行所述待处理交易;在所述待处理交易执行完成后,减少所述记录值。
进一步的,对于该装置,还包括存储单元504,存储单元504用于:将所述待处理交易存储于内存型数据库中。
进一步的,对于该装置,所述并发控制功能中的指定交易因素为以下至少一项:单账户并发控制配置信息中设定的交易主体、单账户并发控制配置信息中设定的执行函数。
进一步的,对于该装置,所述记录值和所述单账户并发控制配置信息存储于内存型数据库中。
本发明实施例还提供了一种计算设备,该计算设备具体可以为桌面计算机、便携式计算机、智能手机、平板电脑、个人数字助理(Personal Digital Assistant,PDA)等。该计算设备可以包括中央处理器(Center Processing Unit,CPU)、存储器、输入/输出设备等,输入设备可以包括键盘、鼠标、触摸屏等,输出设备可以包括显示设备,如液晶显示器(Liquid Crystal Display,LCD)、阴极射线管(Cathode Ray Tube,CRT)等。
存储器,可以包括只读存储器(ROM)和随机存取存储器(RAM),并向处理器提供存储器中存储的程序指令和数据。在本发明实施例中,存储器可以用于存储交易处理方法的程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行交易处理方法。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行交易处理方法。
本领域内的技术人员应明白,本发明的实施例可提供为方法、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种交易处理方法,其特征在于,包括:
通过拦截器获取待处理交易;所述拦截器用于对指定类型的交易进行拦截;
通过所述拦截器确定所述待处理交易是否满足并发控制功能的限制条件;所述并发控制功能是针对所述指定类型的交易中指定交易因素进行设定的;其中,所述限制条件用于判断是否拒绝执行所述指定类型的交易;
在所述待处理交易未满足所述限制条件时,调用交易服务处理所述待处理交易。
2.如权利要求1所述的方法,其特征在于,
所述通过所述拦截器确定所述待处理交易是否满足并发控制功能的限制条件,包括:
获取所述并发控制功能对应的记录值;所述记录值用于指示待执行的指定类型的交易的数量;
确定所述记录值是否已经达到所述并发控制功能对应的限制阈值。
3.如权利要求2所述的方法,其特征在于,
所述调用交易服务处理所述待处理交易之前,还包括:
若所述记录值未达到所述限制阈值,则增加所述记录值;
所述调用交易服务处理所述待处理交易之后,还包括:
在所述待处理交易处理完成后,减少所述记录值。
4.如权利要求1所述的方法,其特征在于,还包括:
所述并发控制功能中还包括告警阈值;所述告警阈值小于所述限制阈值;
若所述记录值首次达到所述告警阈值,则增加所述记录值并发出告警;
执行所述待处理交易;
在所述待处理交易执行完成后,减少所述记录值。
5.如权利要求1-4任一项所述的方法,其特征在于,
在所述待处理交易未满足所述限制条件之后,且所述调用交易服务处理所述待处理交易之前,还包括:
将所述待处理交易存储于内存型数据库中。
6.如权利要求1-4任一项所述的方法,其特征在于,所述并发控制功能中的指定交易因素为以下至少一项:
单账户并发控制配置信息中设定的交易主体、单账户并发控制配置信息中设定的执行函数。
7.如权利要求6所述的方法,其特征在于,
所述记录值和所述单账户并发控制配置信息存储于内存型数据库中。
8.一种交易处理装置,其特征在于,包括:
交易获取单元,用于通过拦截器获取待处理交易;所述拦截器用于对指定类型的交易进行拦截;
确定单元,用于通过所述拦截器确定所述待处理交易是否满足并发控制功能的限制条件;所述并发控制功能是针对所述指定类型的交易中指定交易因素进行设定的;其中,所述限制条件用于判断是否拒绝执行所述指定类型的交易;
交易处理单元,用于在所述待处理交易未满足所述限制条件时,调用交易服务处理所述待处理交易。
9.一种计算设备,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行如权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010561247.6A CN111709731A (zh) | 2020-06-18 | 2020-06-18 | 一种交易处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010561247.6A CN111709731A (zh) | 2020-06-18 | 2020-06-18 | 一种交易处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111709731A true CN111709731A (zh) | 2020-09-25 |
Family
ID=72542823
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010561247.6A Pending CN111709731A (zh) | 2020-06-18 | 2020-06-18 | 一种交易处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111709731A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112734584A (zh) * | 2021-01-21 | 2021-04-30 | 建信金融科技有限责任公司 | 一种基于财险业务流程对保单进行锁定的方法及系统 |
CN112995301A (zh) * | 2021-02-07 | 2021-06-18 | 中国工商银行股份有限公司 | 应用于分布式系统的数据处理方法和装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104090823A (zh) * | 2014-06-09 | 2014-10-08 | 中国建设银行股份有限公司 | 一种用于计算机系统的流量控制方法和装置 |
CN105389729A (zh) * | 2015-12-15 | 2016-03-09 | 中国建设银行股份有限公司 | 交易流量精细化控制系统及方法 |
CN107707488A (zh) * | 2017-10-25 | 2018-02-16 | 北京数码视讯支付技术有限公司 | 支付联机交易流量控制方法、限流服务端及客户端 |
CN108197176A (zh) * | 2017-12-21 | 2018-06-22 | 深圳四方精创资讯股份有限公司 | 基于分布式集群架构的核心银行数据处理方法及其系统 |
CN108712350A (zh) * | 2018-06-05 | 2018-10-26 | 中国农业银行股份有限公司 | 基于自定义规则可实时自动调控的流量控制方法及装置 |
CN109377206A (zh) * | 2018-09-26 | 2019-02-22 | 中国建设银行股份有限公司 | 支付限额系统、方法、装置和存储介质 |
CN110380985A (zh) * | 2019-08-02 | 2019-10-25 | 中国工商银行股份有限公司 | 基于交易链路的流量控制方法、装置、设备及存储介质 |
CN110413416A (zh) * | 2019-07-31 | 2019-11-05 | 中国工商银行股份有限公司 | 一种分布式服务器的限流方法及装置 |
-
2020
- 2020-06-18 CN CN202010561247.6A patent/CN111709731A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104090823A (zh) * | 2014-06-09 | 2014-10-08 | 中国建设银行股份有限公司 | 一种用于计算机系统的流量控制方法和装置 |
CN105389729A (zh) * | 2015-12-15 | 2016-03-09 | 中国建设银行股份有限公司 | 交易流量精细化控制系统及方法 |
CN107707488A (zh) * | 2017-10-25 | 2018-02-16 | 北京数码视讯支付技术有限公司 | 支付联机交易流量控制方法、限流服务端及客户端 |
CN108197176A (zh) * | 2017-12-21 | 2018-06-22 | 深圳四方精创资讯股份有限公司 | 基于分布式集群架构的核心银行数据处理方法及其系统 |
CN108712350A (zh) * | 2018-06-05 | 2018-10-26 | 中国农业银行股份有限公司 | 基于自定义规则可实时自动调控的流量控制方法及装置 |
CN109377206A (zh) * | 2018-09-26 | 2019-02-22 | 中国建设银行股份有限公司 | 支付限额系统、方法、装置和存储介质 |
CN110413416A (zh) * | 2019-07-31 | 2019-11-05 | 中国工商银行股份有限公司 | 一种分布式服务器的限流方法及装置 |
CN110380985A (zh) * | 2019-08-02 | 2019-10-25 | 中国工商银行股份有限公司 | 基于交易链路的流量控制方法、装置、设备及存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112734584A (zh) * | 2021-01-21 | 2021-04-30 | 建信金融科技有限责任公司 | 一种基于财险业务流程对保单进行锁定的方法及系统 |
CN112995301A (zh) * | 2021-02-07 | 2021-06-18 | 中国工商银行股份有限公司 | 应用于分布式系统的数据处理方法和装置 |
CN112995301B (zh) * | 2021-02-07 | 2023-03-10 | 中国工商银行股份有限公司 | 应用于分布式系统的数据处理方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210272095A1 (en) | N to n money transfers | |
CN109087431B (zh) | 银行网点的业务调度处理方法、设备和存储介质 | |
US6438528B1 (en) | Transaction manager supporting a multi-currency environment | |
CN106101179B (zh) | 资源处理方法、装置和系统 | |
CN111709731A (zh) | 一种交易处理方法及装置 | |
CN110175919A (zh) | 交易数据处理方法、装置、设备及计算机可读存储介质 | |
Hamidi et al. | Personalized security approaches in e-banking employing flask architecture over cloud environment | |
CN111415146A (zh) | 资源数据的处理方法、装置及设备 | |
CN108629582B (zh) | 业务处理方法及装置 | |
US10530780B2 (en) | Entity validation for resource distribution location | |
US11520802B2 (en) | Systems and methods for data format conversion | |
US20210042780A1 (en) | Substantially real time cash back settlement | |
CN111553788B (zh) | 基于大数据的资金业务处理方法、装置、电子设备和介质 | |
US20200104228A1 (en) | Asynchronous self-proving transactions | |
CN110648227A (zh) | 一种通过链下结算的链上资产质押融资系统和方法 | |
CN113055401B (zh) | 一种企业业务的授权处理方法及装置 | |
US20240086932A1 (en) | Computing architecture for transaction authorization and mediums and methods for the same | |
US11790342B2 (en) | Establishing one-to-many relationships for events in a relational database | |
US10817356B2 (en) | Entity resource distribution channel manipulation | |
US20230239299A1 (en) | Systems and methods for substituting borrowed resources on a computer system for owned resources | |
US11790336B2 (en) | Intelligent distributed ledger consent optimizing apparatus for asset transfer | |
US11443320B2 (en) | Intelligent systems for identifying transactions associated with an institution impacted by an event using a dashboard | |
CN108961050B (zh) | 银行系统冲正交易的处理方法及装置 | |
CN115809922A (zh) | 一种数据处理方法、装置、设备及介质 | |
CN117035316A (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 |