CN111984664B - 高并发交易处理方法及装置 - Google Patents
高并发交易处理方法及装置 Download PDFInfo
- Publication number
- CN111984664B CN111984664B CN202010927001.6A CN202010927001A CN111984664B CN 111984664 B CN111984664 B CN 111984664B CN 202010927001 A CN202010927001 A CN 202010927001A CN 111984664 B CN111984664 B CN 111984664B
- Authority
- CN
- China
- Prior art keywords
- transaction
- account
- current transaction
- current
- balance
- 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
- 238000003672 processing method Methods 0.000 title claims description 22
- 238000000034 method Methods 0.000 claims abstract description 27
- 230000001360 synchronised effect Effects 0.000 claims abstract description 21
- 238000004590 computer program Methods 0.000 claims description 16
- 238000003860 storage Methods 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- 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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- 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/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Computational Linguistics (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明公开了一种高并发交易处理方法及装置,该方法包括:获取高并发交易队列中的当前交易,根据当前交易确定当前交易对应交易账户的余额方向限制类型,在当前交易对应交易账户的余额方向限制类型为限制余额方向时,判断当前交易的交易方向与当前交易对应交易账户的账户余额方向是否一致,在当前交易的交易方向与当前交易对应交易账户的账户余额方向一致时,对当前交易进行异步处理,在不增加系统复杂性的情况下保障系统的高并发性能;在当前交易的交易方向与当前交易对应交易账户的账户余额方向不一致时,对当前交易进行同步处理,保障系统的实时性。本发明能够兼顾系统的高并发性能及实时性,同时不增加系统复杂性。
Description
技术领域
本发明涉及交易处理技术领域,尤其涉及高并发交易处理方法及装置。
背景技术
本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
在核心银行系统现有系统架构和机制下,金融业务采用内部挂账记账模式,每种业务对应唯一的挂账清算账户,即BGL账户,用于记录对应业务的账务变动明细。在同一业务量剧增或者集中时点发起等高并发场景下,BGL账户成为整个交易流程的瓶颈,由于唯一挂账清算账户资源的竞争和等待,导致系统性能严重下降。
为保障系统性能,目前很多的异步解决方案大多是采用高速缓存与异步更新相结合的方式,即使用高速缓存如Redis、Memcache等实现账户余额的实时更新,然后推送交易信息至MQ,并异步更新至数据库。异步方案虽然可以缓解系统的压力,但是是以牺牲交易的实时性为代价的。同时更为关键的是,部分BGL账户是限制余额方向的,即我们常说的不允许透支。这种情况下如果异步更新数据库时余额不足,则必须回滚交易,然而Redis等缓存是不支持回滚操作的,此时我们需要设计复杂的补偿交易,极大增加了系统的复杂性。
由此可见,现有的高并发交易存在不能兼顾系统性能及系统复杂性的问题。
发明内容
本发明实施例提供一种高并发交易处理方法,用以在保障系统高并发性能的同时降低系统复杂性,该高并发交易处理方法包括:
获取高并发交易队列中的当前交易;
根据当前交易确定当前交易对应交易账户的余额方向限制类型;
在当前交易对应交易账户的余额方向限制类型为限制余额方向时,判断当前交易的交易方向与当前交易对应交易账户的账户余额方向是否一致;
在当前交易的交易方向与当前交易对应交易账户的账户余额方向一致时,对当前交易进行异步处理;
在当前交易的交易方向与当前交易对应交易账户的账户余额方向不一致时,对当前交易进行同步处理。
本发明实施例还提供一种高并发交易处理装置,用以在保障系统性能的同时降低系统复杂性,该高并发交易处理装置包括:
交易获取模块,用于获取高并发交易队列中的当前交易;
限制类型确定模块,用于根据当前交易确定当前交易对应交易账户的余额方向限制类型;
判断模块,用于在当前交易对应交易账户的余额方向限制类型为限制余额方向时,判断当前交易的交易方向与当前交易对应交易账户的账户余额方向是否一致;
异步处理模块,用于在当前交易的交易方向与当前交易对应交易账户的账户余额方向一致时,对当前交易进行异步处理;
同步处理模块,用于在当前交易的交易方向与当前交易对应交易账户的账户余额方向不一致时,对当前交易进行同步处理。
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述高并发交易处理方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述高并发交易处理方法的计算机程序。
本发明实施例中,在当前交易的交易方向与当前交易对应交易账户的账户余额方向一致时,对当前交易进行异步处理,在不增加系统复杂性的情况下保障系统的高并发性能;同时在当前交易的交易方向与当前交易对应交易账户的账户余额方向不一致时,对当前交易进行同步处理,保障系统的实时性。因此,本发明实施例能够兼顾系统的高并发性能及实时性,同时不增加系统复杂性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本发明实施例提供的高并发交易处理方法的实现流程图;
图2为本发明实施例提供的高并发交易处理方法的另一实现流程图;
图3为本发明实施例提供的高并发交易处理方法中步骤104的实现流程图;
图4为本发明实施例提供的高并发交易处理方法中步骤104的另一实现流程图;
图5为本发明实施例提供的高并发交易处理方法中步骤105的实现流程图;
图6为本发明实施例提供的高并发交易处理方法中步骤105的另一实现流程图;
图7为本发明实施例提供的高并发交易处理方法中步骤105的再一实现流程图;
图8为本发明实施例提供的高并发交易处理装置的功能模块图;
图9为本发明实施例提供的高并发交易处理装置中异步处理模块804的结构框图;
图10为本发明实施例提供的高并发交易处理装置中异步处理模块804的另一结构框图;
图11为本发明实施例提供的高并发交易处理装置中同步处理模块805的结构框图;
图12为本发明实施例提供的高并发交易处理装置中同步处理模块805的另一结构框图;
图13为本发明实施例提供的高并发交易处理装置中同步处理模块805的再一结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
图1示出了本发明实施例提供的高并发交易处理方法的实现流程,为便于描述,仅示出了与本发明实施例相关的部分,详述如下:
如图1所示,高并发交易处理方法,其包括:
步骤101,获取高并发交易队列中的当前交易;
步骤102,根据当前交易确定当前交易对应交易账户的余额方向限制类型;
步骤103,在当前交易对应交易账户的余额方向限制类型为限制余额方向时,判断当前交易的交易方向与当前交易对应交易账户的账户余额方向是否一致;
步骤104,在当前交易的交易方向与当前交易对应交易账户的账户余额方向一致时,对当前交易进行异步处理;
步骤105,在当前交易的交易方向与当前交易对应交易账户的账户余额方向不一致时,对当前交易进行同步处理。
在对高并发交易进行处理时,首先获取高并发交易队列中的当前交易,即即将处理的交易。然后基于当前交易的交易信息,确定当前交易对应的交易账户,进而确定该当前交易对应的交易账户的余额方向限制类型。其中,交易账户的余额方向限制类型,是指是否对账户余额方向进行限制,具体可以包括不限制余额方向及限制余额方向两大类。不限制余额方向,是指对账户余额没有限制,而限制余额方向又分为借方余额及贷方余额,借方余额是指账户余额不大于零,贷方余额是指账户余额不小于零。
在确定当前交易对应交易账户的余额方向限制类型为限制余额方向时,说明对当前交易对应交易账户的账户余额方向进行了限制,此时需要进一步判断当前交易的交易方向与当前交易对应交易账户的账户余额方向的关系,以确定两者方向是否一致。交易方向,是指交易资金的流动方向,包括借方和贷方,借方是指账户余额减少,贷方是指账户余额方向增加。
在进一步确定当前交易的交易方向与当前交易对应交易账户的账户余额方向一致时,即账户余额不大于零同时账户余额减少,或者账户余额不小于零同时账户余额增加,此时对当前交易进行异步处理。
然而,在进一步确定当前交易的交易方向与当前交易对应交易账户的账户余额方向不一致时,即账户余额不大于零但账户余额增加,或者账户余额不小于零但账户余额减少,此时就对当前交易进行同步处理。
在本发明实施例中,在当前交易的交易方向与当前交易对应交易账户的账户余额方向一致时,对当前交易进行异步处理,在不增加系统复杂性的情况下保障系统的高并发性能;同时在当前交易的交易方向与当前交易对应交易账户的账户余额方向不一致时,对当前交易进行同步处理,保障系统的实时性。因此,本发明实施例能够兼顾系统的高并发性能及实时性,同时不增加系统复杂性。
图2示出了本发明实施例提供的高并发交易处理方法的另一实现流程,为便于描述,仅示出了与本发明实施例相关的部分,详述如下:
在本发明的一实施例中,为了提高系统的高并发性能,如图2所示,在上述图1所示方法步骤的基础上,高并发交易处理方法,还包括:
步骤201,在当前交易对应交易账户的余额方向限制类型为不限制余额方向时,对当前交易进行异步处理。
其中,如果当前交易对应交易账户的余额方向限制类型为不限制余额方向,说明并未对账户余额方向进行限制,此时为了保障系统的高并发性能,对当前交易进行异步处理。
在本发明实施例中,在当前交易对应交易账户的余额方向限制类型为不限制余额方向时,对当前交易进行异步处理,能够提高系统的高并发性能。
图3示出了本发明实施例提供的高并发交易处理方法中步骤104的实现流程,为便于描述,仅示出了与本发明实施例相关的部分,详述如下:
在本发明的一实施例中,交易方向包括借方和贷方,账户余额方向包括借方余额和贷方余额。为了保障系统的高并发性能,如图3所示,步骤104,在当前交易的交易方向与当前交易对应交易账户的账户余额方向一致时,对当前交易进行异步处理,包括:
步骤301,在当前交易的交易方向为借方且当前交易对应交易账户的账户余额方向为借方余额时,对当前交易进行异步处理;或
步骤302,在当前交易的交易方向为贷方且当前交易对应交易账户的账户余额方向为贷方余额时,对当前交易进行异步处理。
当前交易的交易方向与当前交易对应交易账户的账户余额方向一致包括两种情况,
(1)当前交易的交易方向为借方且当前交易对应交易账户的账户余额方向为借方余额,即账户余额不大于零同时账户余额减少,此时当前交易进行异步处理;
(2)当前交易的交易方向为贷方且当前交易对应交易账户的账户余额方向为贷方余额,即账户余额不小于零同时账户余额增加,此时同样当前交易进行异步处理。
在本发明实施例中,在当前交易的交易方向为借方且当前交易对应交易账户的账户余额方向为借方余额时,对当前交易进行异步处理,在当前交易的交易方向为贷方且当前交易对应交易账户的账户余额方向为贷方余额时,对当前交易进行异步处理,能够保障系统的高并发性能。
图4示出了本发明实施例提供的高并发交易处理方法中步骤104的另一实现流程,为便于描述,仅示出了与本发明实施例相关的部分,详述如下:
在本发明的一实施例中,为了保障交易的实时性,如图4所示,步骤104,在当前交易的交易方向与当前交易对应交易账户的账户余额方向一致时,对当前交易进行异步处理,包括:
步骤401,在当前交易的交易方向与当前交易对应交易账户的账户余额方向一致时,更新预先加载至缓存中的当前交易对应交易账户的账户余额;
步骤402,将当前交易推送至消息队列中,以在当前交易处理成功后异步更新数据库中当前交易对应交易账户的账户余额。
在当前交易的交易方向与当前交易对应交易账户的账户余额方向一致时,对当前交易进行异步处理。具体的,首先从缓存中获取预先加载的当前交易对应交易账户的账户余额,进而为了保障交易的实时性,首先基于当前交易的交易信息,对获取的当前交易对应交易账户的账户余额进行更新。然后再将当前交易推送至消息队列中异步处理,同时在当前交易处理成功后,更新数据库中当前交易对应交易账户的账户余额。
在本发明实施例中,在当前交易的交易方向与当前交易对应交易账户的账户余额方向一致时,更新预先加载至缓存中的当前交易对应交易账户的账户余额,将当前交易推送至消息队列中,以在当前交易处理成功后异步更新数据库中当前交易对应交易账户的账户余额,先更新缓存中当前交易对应交易账户的账户余额,能够保障交易的实时性。
图5示出了本发明实施例提供的高并发交易处理方法中步骤105的实现流程,为便于描述,仅示出了与本发明实施例相关的部分,详述如下:
在本发明的一实施例中,交易方向包括借方和贷方,账户余额方向包括借方余额和贷方余额。为了保障交易的实时性,如图5所示,步骤105,在当前交易的交易方向与当前交易对应交易账户的账户余额方向不一致时,对当前交易进行同步处理,包括:
步骤501,在当前交易的交易方向为借方且当前交易对应交易账户的账户余额方向为贷方余额时,对当前交易进行同步处理;或
步骤502,在当前交易的交易方向为贷方且当前交易对应交易账户的账户余额方向为借方余额时,对当前交易进行同步处理。
当前交易的交易方向与当前交易对应交易账户的账户余额方向不一致,主要包括以下两种情况:
(1)当前交易的交易方向为借方且当前交易对应交易账户的账户余额方向为贷方余额,即账户余额不大于零但账户余额增加,此时对当前交易进行同步处理,以保障交易实时性;
(2)当前交易的交易方向为贷方且当前交易对应交易账户的账户余额方向为借方余额,即账户余额不小于零但账户余额减少,此时同样对当前交易进行同步处理,以保障交易实时性。
在本发明实施例中,在当前交易的交易方向为借方且当前交易对应交易账户的账户余额方向为贷方余额时,对当前交易进行同步处理,在当前交易的交易方向为贷方且当前交易对应交易账户的账户余额方向为借方余额时,对当前交易进行同步处理,能够保障交易实时性。
图6示出了本发明实施例提供的高并发交易处理方法中步骤105的另一实现流程,为便于描述,仅示出了与本发明实施例相关的部分,详述如下:
在本发明的一实施例中,为了保障交易实时性,如图6所示,步骤105,在当前交易的交易方向与当前交易对应交易账户的账户余额方向不一致时,对当前交易进行同步处理,包括:
步骤601,在当前交易的交易方向与当前交易对应交易账户的账户余额方向不一致时,获取预先加载至缓存中的当前交易对应交易账户的账户余额;
步骤602,判断当前交易的交易金额是否不大于当前交易对应交易账户的账户余额;
步骤603,在当前交易的交易金额不大于当前交易对应交易账户的账户余额时,执行当前交易以更新当前交易对应交易账户的账户余额至数据库;
步骤604,更新缓存中当前交易对应交易账户的账户余额。
在当前交易的交易方向与当前交易对应交易账户的账户余额方向不一致时,对当前交易进行同步处理。具体的,需要先从缓存在获取预先加载的当前交易对应交易账户的账户余额。
进而,对当前交易的交易金额与当前交易对应交易账户的账户余额的关系进行判断。在当前交易的交易金额不大于当前交易对应交易账户的账户余额时,说明满足金额交易条件,此时执行当前交易并更新当前交易对应交易账户的账户余额至数据库,即实时更新数据库中的当前交易对应交易账户的账户余额,然后再更新缓存中当前交易对应交易账户的账户余额,据此可以保障交易的实时性。
在本发明实施例中,在当前交易的交易方向与当前交易对应交易账户的账户余额方向不一致时,获取预先加载至缓存中的当前交易对应交易账户的账户余额,判断当前交易的交易金额是否不大于当前交易对应交易账户的账户余额,在当前交易的交易金额不大于当前交易对应交易账户的账户余额时,执行当前交易以更新当前交易对应交易账户的账户余额至数据库,更新缓存中当前交易对应交易账户的账户余额,在同步处理时先获取账户余额,在同步执行交易后再更新账户余额,能够保障交易实时性。
图7示出了本发明实施例提供的高并发交易处理方法中步骤105的再一实现流程,为便于描述,仅示出了与本发明实施例相关的部分,详述如下:
在本发明的一实施例中,为了提高用户体验,如图7所示,在上述图6所示方法步骤的基础上,步骤105,在当前交易的交易方向与当前交易对应交易账户的账户余额方向不一致时,对当前交易进行同步处理,还包括:
步骤701,在当前交易的交易金额大于当前交易对应交易账户的账户余额时,发出账户余额不足的提示。
在对当前交易进行同步处理,需要判断交易金额与账户余额的大小关系。在当前交易的交易金额小于当前交易对应交易账户的账户余额时,说明满足交易条件,可以允许当前交易进行;在当前交易的交易金额大于当前交易对应交易账户的账户余额时,说明不足以满足当前交易的条件,此时发出账户余额不足的提示,以提高用户体验。
在本发明实施例中,在当前交易的交易金额大于当前交易对应交易账户的账户余额时,发出账户余额不足的提示,能够提高用户体验。
本发明实施例还提供一种高并发交易处理装置,如下面的实施例所述。由于这些装置解决问题的原理与高并发交易处理方法相似,因此这些装置的实施可以参见方法的实施,重复之处不再赘述。
图8示出了本发明实施例提供的高并发交易处理装置的功能模块,为便于说明,仅示出了与本发明实施例相关的部分,详述如下:
参考图8,所述高并发交易处理装置所包含的各个模块用于执行图1对应实施例中的各个步骤,具体请参阅图1以及图1对应实施例中的相关描述,此处不再赘述。本发明实施例中,所述高并发交易处理装置包括交易获取模块801、限制类型确定模块802、判断模块803、异步处理模块804及同步处理模块805。
交易获取模块801,用于获取高并发交易队列中的当前交易。
限制类型确定模块802,用于根据当前交易确定当前交易对应交易账户的余额方向限制类型。
判断模块803,用于在当前交易对应交易账户的余额方向限制类型为限制余额方向时,判断当前交易的交易方向与当前交易对应交易账户的账户余额方向是否一致。
异步处理模块804,用于在当前交易的交易方向与当前交易对应交易账户的账户余额方向一致时,对当前交易进行异步处理。
同步处理模块805,用于在当前交易的交易方向与当前交易对应交易账户的账户余额方向不一致时,对当前交易进行同步处理。
在本发明实施例中,异步处理模块804在当前交易的交易方向与当前交易对应交易账户的账户余额方向一致时,对当前交易进行异步处理,在不增加系统复杂性的情况下保障系统的高并发性能;同时同步处理模块805在当前交易的交易方向与当前交易对应交易账户的账户余额方向不一致时,对当前交易进行同步处理,保障系统的实时性。因此,本发明实施例能够兼顾系统的高并发性能及实时性,同时不增加系统复杂性。
在本发明的一实施例中,为了提高系统的高并发性能,异步处理模块804,还用于在当前交易对应交易账户的余额方向限制类型为不限制余额方向时,对当前交易进行异步处理。
图9示出了本发明实施例提供的高并发交易处理装置中异步处理模块804的结构示意,为便于说明,仅示出了与本发明实施例相关的部分,详述如下:
在本发明的一实施例中,交易方向包括借方和贷方,账户余额方向包括借方余额和贷方余额。为了保障系统的高并发性能,参考图9,所述异步处理模块804所包含的各个单元用于执行图3对应实施例中的各个步骤,具体请参阅图3以及图3对应实施例中的相关描述,此处不再赘述。本发明实施例中,所述异步处理模块804包括第一异步处理单元901及第二异步处理单元902。
第一异步处理单元901,用于在当前交易的交易方向为借方且当前交易对应交易账户的账户余额方向为借方余额时,对当前交易进行异步处理。
第二异步处理单元902,用于在当前交易的交易方向为贷方且当前交易对应交易账户的账户余额方向为贷方余额时,对当前交易进行异步处理。
在本发明实施例中,第一异步处理单元901在当前交易的交易方向为借方且当前交易对应交易账户的账户余额方向为借方余额时,对当前交易进行异步处理,第二异步处理单元902在当前交易的交易方向为贷方且当前交易对应交易账户的账户余额方向为贷方余额时,对当前交易进行异步处理,能够保障系统的高并发性能。
图10示出了本发明实施例提供的高并发交易处理装置中异步处理模块804的另一结构示意,为便于说明,仅示出了与本发明实施例相关的部分,详述如下:
在本发明的一实施例中,为了保障交易的实时性,参考图10,所述异步处理模块804所包含的各个单元用于执行图4对应实施例中的各个步骤,具体请参阅图4以及图4对应实施例中的相关描述,此处不再赘述。本发明实施例中,所述异步处理模块804包括余额异步更新单元1001及异步更新单元1002。
余额异步更新单元1001,用于在当前交易的交易方向与当前交易对应交易账户的账户余额方向一致时,更新预先加载至缓存中的当前交易对应交易账户的账户余额;
异步更新单元1002,用于将当前交易推送至消息队列中,以在当前交易处理成功后异步更新数据库中当前交易对应交易账户的账户余额。
在本发明实施例中,余额异步更新单元1001在当前交易的交易方向与当前交易对应交易账户的账户余额方向一致时,更新预先加载至缓存中的当前交易对应交易账户的账户余额,异步更新单元1002将当前交易推送至消息队列中,以在当前交易处理成功后异步更新数据库中当前交易对应交易账户的账户余额,先更新缓存中当前交易对应交易账户的账户余额,能够保障交易的实时性。
图11示出了本发明实施例提供的高并发交易处理装置中同步处理模块805的结构示意,为便于说明,仅示出了与本发明实施例相关的部分,详述如下:
在本发明的一实施例中,交易方向包括借方和贷方,账户余额方向包括借方余额和贷方余额。为了保障交易的实时性,参考图11,所述同步处理模块805所包含的各个单元用于执行图5对应实施例中的各个步骤,具体请参阅图5以及图5对应实施例中的相关描述,此处不再赘述。本发明实施例中,所述同步处理模块805包括第一同步处理单元1101及第二同步处理单元1102。
第一同步处理单元1101,用于在当前交易的交易方向为借方且当前交易对应交易账户的账户余额方向为贷方余额时,对当前交易进行同步处理。
第二同步处理单元1102,用于在当前交易的交易方向为贷方且当前交易对应交易账户的账户余额方向为借方余额时,对当前交易进行同步处理。
在本发明实施例中,第一同步处理单元1101在当前交易的交易方向为借方且当前交易对应交易账户的账户余额方向为贷方余额时,对当前交易进行同步处理,第二同步处理单元1102在当前交易的交易方向为贷方且当前交易对应交易账户的账户余额方向为借方余额时,对当前交易进行同步处理,能够保障交易实时性。
图12示出了本发明实施例提供的高并发交易处理装置中同步处理模块805的另一结构示意,为便于说明,仅示出了与本发明实施例相关的部分,详述如下:
在本发明的一实施例中,为了保障交易实时性,参考图12,所述同步处理模块805所包含的各个单元用于执行图6对应实施例中的各个步骤,具体请参阅图6以及图6对应实施例中的相关描述,此处不再赘述。本发明实施例中,所述同步处理模块805包括余额获取单元1201、判断单元1202、余额同步更新单元1203及同步更新单元1204。
余额获取单元1201,用于在当前交易的交易方向与当前交易对应交易账户的账户余额方向不一致时,获取预先加载至缓存中的当前交易对应交易账户的账户余额。
判断单元1202,用于判断当前交易的交易金额是否不大于当前交易对应交易账户的账户余额。
余额同步更新单元1203,用于在当前交易的交易金额不大于当前交易对应交易账户的账户余额时,执行当前交易以更新当前交易对应交易账户的账户余额至数据库。
同步更新单元1204,用于更新缓存中当前交易对应交易账户的账户余额。
在本发明实施例中,余额获取单元1201在当前交易的交易方向与当前交易对应交易账户的账户余额方向不一致时,获取预先加载至缓存中的当前交易对应交易账户的账户余额,判断单元1202判断当前交易的交易金额是否不大于当前交易对应交易账户的账户余额,余额同步更新单元1203在当前交易的交易金额不大于当前交易对应交易账户的账户余额时,执行当前交易以更新当前交易对应交易账户的账户余额至数据库,同步更新单元1204更新缓存中当前交易对应交易账户的账户余额,在同步处理时先获取账户余额,在同步执行交易后再更新账户余额,能够保障交易实时性。
图13示出了本发明实施例提供的高并发交易处理装置中同步处理模块805的再一结构示意,为便于说明,仅示出了与本发明实施例相关的部分,详述如下:
在本发明的一实施例中,为了提高用户体验,参考图13,所述同步处理模块805所包含的各个单元用于执行图7对应实施例中的各个步骤,具体请参阅图7以及图7对应实施例中的相关描述,此处不再赘述。本发明实施例中,在上述图12所示单元结构的基础上,所述同步处理模块805,还包括报错提示单元1301。
报错提示单元1301,用于在当前交易的交易金额大于当前交易对应交易账户的账户余额时,发出账户余额不足的提示。
在本发明实施例中,报错提示单元1301在当前交易的交易金额大于当前交易对应交易账户的账户余额时,发出账户余额不足的提示,能够提高用户体验。
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述高并发交易处理方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述高并发交易处理方法的计算机程序。
综上所述,本发明实施例中,在当前交易的交易方向与当前交易对应交易账户的账户余额方向一致时,对当前交易进行异步处理,在不增加系统复杂性的情况下保障系统的高并发性能;同时在当前交易的交易方向与当前交易对应交易账户的账户余额方向不一致时,对当前交易进行同步处理,保障系统的实时性。因此,本发明实施例能够兼顾系统的高并发性能及实时性,同时不增加系统复杂性。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种高并发交易处理方法,其特征在于,包括:
获取高并发交易队列中的当前交易;
根据当前交易确定当前交易对应交易账户的余额方向限制类型;
在当前交易对应交易账户的余额方向限制类型为限制余额方向时,判断当前交易的交易方向与当前交易对应交易账户的账户余额方向是否一致;交易方向指交易资金的流动方向;账户余额方向包括借方余额和贷方余额;
在当前交易的交易方向与当前交易对应交易账户的账户余额方向一致时,对当前交易进行异步处理;
在当前交易的交易方向与当前交易对应交易账户的账户余额方向不一致时,对当前交易进行同步处理。
2.如权利要求1所述的高并发交易处理方法,其特征在于,还包括:
在当前交易对应交易账户的余额方向限制类型为不限制余额方向时,对当前交易进行异步处理。
3.如权利要求1所述的高并发交易处理方法,其特征在于,交易方向包括借方和贷方,账户余额方向包括借方余额和贷方余额,在当前交易的交易方向与当前交易对应交易账户的账户余额方向一致时,对当前交易进行异步处理,包括:
在当前交易的交易方向为借方且当前交易对应交易账户的账户余额方向为借方余额时,对当前交易进行异步处理;或
在当前交易的交易方向为贷方且当前交易对应交易账户的账户余额方向为贷方余额时,对当前交易进行异步处理。
4.如权利要求1所述的高并发交易处理方法,其特征在于,在当前交易的交易方向与当前交易对应交易账户的账户余额方向一致时,对当前交易进行异步处理,包括:
在当前交易的交易方向与当前交易对应交易账户的账户余额方向一致时,更新预先加载至缓存中的当前交易对应交易账户的账户余额;
将当前交易推送至消息队列中,以在当前交易处理成功后异步更新数据库中当前交易对应交易账户的账户余额。
5.如权利要求1所述的高并发交易处理方法,其特征在于,交易方向包括借方和贷方,账户余额方向包括借方余额和贷方余额,在当前交易的交易方向与当前交易对应交易账户的账户余额方向不一致时,对当前交易进行同步处理,包括:
在当前交易的交易方向为借方且当前交易对应交易账户的账户余额方向为贷方余额时,对当前交易进行同步处理;或
在当前交易的交易方向为贷方且当前交易对应交易账户的账户余额方向为借方余额时,对当前交易进行同步处理。
6.如权利要求1所述的高并发交易处理方法,其特征在于,在当前交易的交易方向与当前交易对应交易账户的账户余额方向不一致时,对当前交易进行同步处理,包括:
在当前交易的交易方向与当前交易对应交易账户的账户余额方向不一致时,获取预先加载至缓存中的当前交易对应交易账户的账户余额;
判断当前交易的交易金额是否不大于当前交易对应交易账户的账户余额;
在当前交易的交易金额不大于当前交易对应交易账户的账户余额时,执行当前交易以更新当前交易对应交易账户的账户余额至数据库;
更新缓存中当前交易对应交易账户的账户余额。
7.如权利要求6所述的高并发交易处理方法,其特征在于,还包括:
在当前交易的交易金额大于当前交易对应交易账户的账户余额时,发出账户余额不足的提示。
8.一种高并发交易处理装置,其特征在于,包括:
交易获取模块,用于获取高并发交易队列中的当前交易;
限制类型确定模块,用于根据当前交易确定当前交易对应交易账户的余额方向限制类型;
判断模块,用于在当前交易对应交易账户的余额方向限制类型为限制余额方向时,判断当前交易的交易方向与当前交易对应交易账户的账户余额方向是否一致;交易方向指交易资金的流动方向;账户余额方向包括借方余额和贷方余额;
异步处理模块,用于在当前交易的交易方向与当前交易对应交易账户的账户余额方向一致时,对当前交易进行异步处理;
同步处理模块,用于在当前交易的交易方向与当前交易对应交易账户的账户余额方向不一致时,对当前交易进行同步处理。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任一所述高并发交易处理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至7任一所述高并发交易处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010927001.6A CN111984664B (zh) | 2020-09-07 | 2020-09-07 | 高并发交易处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010927001.6A CN111984664B (zh) | 2020-09-07 | 2020-09-07 | 高并发交易处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111984664A CN111984664A (zh) | 2020-11-24 |
CN111984664B true CN111984664B (zh) | 2023-11-17 |
Family
ID=73447052
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010927001.6A Active CN111984664B (zh) | 2020-09-07 | 2020-09-07 | 高并发交易处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111984664B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113159775A (zh) * | 2021-04-30 | 2021-07-23 | 中国银行股份有限公司 | 一种高并发数据慢操作方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107274162A (zh) * | 2017-05-31 | 2017-10-20 | 深圳市长亮科技股份有限公司 | 一种高交易并发量的处理方法 |
CN109615514A (zh) * | 2018-11-27 | 2019-04-12 | 宝付网络科技(上海)有限公司 | 热点账户交易系统及方法 |
CN110889754A (zh) * | 2019-11-19 | 2020-03-17 | 中信百信银行股份有限公司 | 提高不可透支热点账户处理效率的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090043663A1 (en) * | 2007-08-07 | 2009-02-12 | Prater Daniel N | Banking Account and Transaction Methods |
-
2020
- 2020-09-07 CN CN202010927001.6A patent/CN111984664B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107274162A (zh) * | 2017-05-31 | 2017-10-20 | 深圳市长亮科技股份有限公司 | 一种高交易并发量的处理方法 |
CN109615514A (zh) * | 2018-11-27 | 2019-04-12 | 宝付网络科技(上海)有限公司 | 热点账户交易系统及方法 |
CN110889754A (zh) * | 2019-11-19 | 2020-03-17 | 中信百信银行股份有限公司 | 提高不可透支热点账户处理效率的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111984664A (zh) | 2020-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109598604B (zh) | 日切判断方法及装置 | |
CN107436799B (zh) | 分布式事务一致性实现方法及装置 | |
CN108415757B (zh) | 分布式事务处理方法及装置 | |
CN111984664B (zh) | 高并发交易处理方法及装置 | |
CN108762895B (zh) | 处理分布式事务的方法及装置 | |
CN110363663A (zh) | 基于区块链的数据批量处理方法、装置、设备及存储介质 | |
CN111698233A (zh) | 报文处理方法及装置 | |
CN112334937A (zh) | 一种退款方法、交易系统、账户系统及存储介质 | |
CN113052687A (zh) | 一种交易路由分发方法和相关装置 | |
CN111292028A (zh) | 库存信息处理方法及系统、计算机系统和可读存储介质 | |
CN109472680A (zh) | 一种账务处理方法及系统 | |
CN113034283A (zh) | 交易数据的处理方法、装置及系统 | |
CN110928565A (zh) | 热点账户数据更新方法、装置、服务器及存储介质 | |
CN111563816B (zh) | 银行跨行支付业务下的账务与报文分离的系统及方法 | |
CN116257174A (zh) | 一种基于张量异步硬盘读写的异构空间优化器 | |
CN111178850B (zh) | 交易方法、装置及系统 | |
CN113962789A (zh) | 银行对账方法及装置 | |
CN113535772A (zh) | 一种商户退款执行方法和装置 | |
CN111754348A (zh) | 场景化组合交易方法及装置 | |
CN112925663A (zh) | 业务数据的计算方法和装置 | |
CN111797074A (zh) | 一种数据库连接方法、装置、电子设备和可读存储介质 | |
CN105574020B (zh) | 一种数据库操作方法和装置 | |
CN113837864A (zh) | 银行业务系统对账方法及装置 | |
CN117437076B (zh) | 一种基于对账码的对账方法、装置、设备及介质 | |
CN115686883A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |