CN111459963B - 核心账务交易并发处理方法及装置 - Google Patents
核心账务交易并发处理方法及装置 Download PDFInfo
- Publication number
- CN111459963B CN111459963B CN202010271743.8A CN202010271743A CN111459963B CN 111459963 B CN111459963 B CN 111459963B CN 202010271743 A CN202010271743 A CN 202010271743A CN 111459963 B CN111459963 B CN 111459963B
- Authority
- CN
- China
- Prior art keywords
- distributed
- transaction request
- transaction
- locking
- distributed cache
- 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 abstract description 13
- 238000012545 processing Methods 0.000 claims abstract description 202
- 238000000034 method Methods 0.000 claims abstract description 53
- 230000008569 process Effects 0.000 claims description 28
- 238000012544 monitoring process Methods 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 16
- 230000002159 abnormal effect Effects 0.000 claims description 13
- 238000003860 storage Methods 0.000 claims description 9
- 238000002955 isolation Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 10
- 230000007246 mechanism Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 5
- 230000002035 prolonged effect Effects 0.000 description 4
- 230000007547 defect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000004083 survival effect Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000007423 decrease Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 235000003642 hunger Nutrition 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000035945 sensitivity Effects 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
- G06F16/2336—Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
- G06F16/2343—Locking methods, e.g. distributed locking or locking implementation details
-
- 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
- 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/22—Payment schemes or models
- G06Q20/24—Credit schemes, i.e. "pay after"
-
- 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/03—Credit; Loans; Processing thereof
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Finance (AREA)
- Computational Linguistics (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种核心账务交易并发处理方法及装置,其中,该方法包括以下步骤:接收交易请求;基于分布式缓存对交易请求执行分布式锁加锁处理;根据交易请求执行交易的处理逻辑;在交易执行后,释放所述分布式锁。本发明基于分布式缓存对交易请求执行分布式锁加锁处理,并根据交易请求执行交易的处理逻辑,可确保在核心账务交易并发时,同一时间同一用户只有一个交易请求被处理,解决了核心账务交易并发时交易请求冲突的问题。与现有技术对比,可简化核心账务交易并发处理的整体流程,节约了资源,且不依赖消息中间件,也不需要对前端渠道适配改造,提高了核心账务交易并发处理的效率。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种核心账务交易并发处理方法及装置。
背景技术
在贷记卡的多个交易请求并发地操作同一个客户数据时,易发生交易冲突,造成贷记卡的多个核心账务交易请求交易失败的问题。
针对上述问题,现有技术中存在一种交易失败重试机制:在数据库事务已经回滚后,在交易返回后处理逻辑中增加对返回异常的判断,如果为并发访问冲突异常,则恢复交易上下文,尝试重新执行交易的全部处理逻辑。但交易失败重试机制的缺点是并发交易请求整体处理流程变得复杂,交易链变长,如果交易并发度变大时,造成系统资源过度浪费。
现有技术中还存在一种交易异步处理机制,由主线程投递业务处理消息,将同一个客户的交易请求投递到同一个消息队列,同一个队列的消息被顺序执行,主线程轮询交易执行结果,并返回执行结果。但交易异步处理机制的缺点是需要额外增加消息中间件,且对消息中间件依赖度较高,而且解耦了主线程和业务处理线程,不确定性变大。
现有技术中还存在一种前端渠道机制,由前端渠道通过批量模式,提交同一个客户的多个交易请求,进而进行交易,但缺点是前端渠道需要适配改造,需耗费额外的时间,流程较为复杂,适用性低。
发明内容
本发明实施例提供了一种核心账务交易并发处理方法,用以提高核心账务交易并发处理的效率,该方法包括:
接收交易请求;
基于分布式缓存对交易请求执行分布式锁加锁处理;
根据交易请求执行交易的处理逻辑;
在交易执行后,释放所述分布式锁。
本发明实施例还提供了一种核心账务交易并发处理装置,用以提高核心账务交易并发处理的效率,该装置包括:
交易请求接收模块,用于接收交易请求;
分布式锁加锁处理模块,用于基于分布式缓存对交易请求执行分布式锁加锁处理;
交易的处理逻辑执行模块,用于根据交易请求执行交易的处理逻辑;
分布式锁释放模块,用于在交易执行后,释放所述分布式锁。
本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述所述方法。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述所述方法的计算机程序。
本发明实施例中,接收交易请求;基于分布式缓存对交易请求执行分布式锁加锁处理;根据交易请求执行交易的处理逻辑;在交易执行后,释放所述分布式锁,可确保在核心账务交易并发时,同一时间同一用户只有一个交易请求被处理,解决了核心账务交易并发时交易请求冲突的问题。与现有技术对比,可简化核心账务交易并发处理的整体流程,节约了资源,且不依赖消息中间件,也不需要对前端渠道适配改造,提高了核心账务交易并发处理的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种核心账务交易并发处理方法的流程示意图;
图2是本发明实施例提供的一种分布式缓存的存储的流程示意图;
图3是本发明实施例提供的一实例中基于分布式缓存对交易请求执行分布式锁加锁处理的流程示意图;
图4是本发明实施例提供的一种核心账务交易并发处理装置的结构示意图;
图5是本发明实施例提供的一种核心账务交易并发处理装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明实施例中,提供了一种核心账务交易并发处理方法,如图1所示,该方法包括:
步骤101:接收交易请求;
步骤102:基于分布式缓存对交易请求执行分布式锁加锁处理;
步骤103:根据交易请求执行交易的处理逻辑;
步骤104:在交易执行后,释放所述分布式锁。
本发明实施例中,接收交易请求;基于分布式缓存对交易请求执行分布式锁加锁处理;根据交易请求执行交易的处理逻辑;在交易执行后,释放所述分布式锁,可确保在核心账务交易并发时,同一时间同一用户只有一个交易请求被处理,解决了核心账务交易并发时交易请求冲突的问题。与现有技术对比,可简化核心账务交易并发处理的整体流程,节约了资源,且不依赖消息中间件,也不需要对前端渠道适配改造,提高了核心账务交易并发处理的效率。
具体实施时,首先接收交易请求。在接收交易请求后,基于分布式缓存对交易请求执行分布式锁加锁处理。基于分布式缓存对交易请求执行分布式锁加锁处理的方法有多种,下面给出其中一个实施例。
在一实施例中,基于分布式缓存对交易请求执行分布式锁加锁处理,可以包括:在分布式锁总体开关和交易请求中交易码的分布式锁打开标志位均开启时,基于分布式缓存对交易请求执行分布式锁加锁处理。
在分布式环境中,出于对性能、一致性及敏感度的要求,使分布式锁成为了一种比较常见而高效的解决方案。本发明实施例采取基于分布式缓存的方式,执行分布式锁加锁处理,而执行分布式锁加锁处理还可以利用数据库执行加锁处理,以及利用ZooKeeper(分布式系统的可靠协调系统)执行加锁处理。在服务端接收到交易请求后,根据分布式锁总体开关和交易请求中交易码的分布式锁打开标志位,来决定是否执行分布式锁加锁处理逻辑,只有分布式锁总体开关和交易请求中交易码的分布式锁打开标志位均开启的情况下才会执行加锁处理逻辑,且配置参数能够动态生效。
具体实施时,基于分布式缓存对交易请求执行分布式锁加锁处理的方法有多种,下面给出其中另一个实施例。
在一实施例中,所述基于分布式缓存对交易请求执行分布式锁加锁处理,包括:获取交易请求的客户号;调用分布式缓存的put方法,对交易请求的客户号执行分布式锁加锁处理。
基于分布式缓存对交易请求执行分布式锁加锁处理,首先获取交易请求的客户号,调用分布式缓存的相应put(加锁处理)方法对这笔交易请求对应的客户号加锁,并设置锁的存活时间,如果put操作成功,则表明加锁成功。而基于分布式缓存的分布式锁组件执行加锁处理,能够保证对于同一个客户的并发交易的加锁请求,只有一个线程中的交易可执行加锁操作。
具体实施时,基于分布式缓存对交易请求执行分布式锁加锁处理的方法有多种,下面给出其中另一个实施例。
在一实施例中,所述基于分布式缓存对交易请求执行分布式锁加锁处理,包括:若分布式缓存出现故障,则对分布式缓存进行动态隔离;在隔离退出条件满足后,重新尝试加锁处理。
如果分布式缓存出现故障,依靠动态流控判断,对分布式缓存进行动态隔离和恢复对分布式缓存的访问,防止由于分布式缓存故障而导致整体交易处理时间变长。动态流控判断可以包括采取连续失败策略,对分布式缓存进行动态隔离,比如在动态流控中得出,连续访问分布式缓存失败的交易笔数超过20笔,则隔离接下来访问分布式缓存的2000笔请求,2000笔请求过后,再尝试基于分布式缓存执行加锁处理。本发明实施例采用动态流控机制,当分布式缓存出现大面积地访问失败异常后,动态地隔离分布式锁加锁及解锁机制,将相应的分布式缓存的访问逻辑删除,直接执行交易的处理逻辑,防止由于分布式缓存的故障,而导致交易服务器出现故障、故障蔓延,以及交易整体响应时间变长等现象。
具体实施时,基于分布式缓存对交易请求执行分布式锁加锁处理的方法有多种,下面给出其中另一个实施例。
在一实施例中,基于分布式缓存对交易请求执行分布式锁加锁处理,可以包括:
所述基于分布式缓存对交易请求执行分布式锁加锁处理,包括:基于多个分布式缓存集群对交易请求执行分布式锁加锁处理;所述分布式缓存集群包括:主分布式缓存和多个从分布式缓存;在主分布式缓存宕机时,选择一从分布式缓存替换主分布式缓存;在一分布式缓存集群失效时,隔离该失效的分布式缓存集群;将该失效的分布式缓存集群中的交易请求,发送至多个分布式缓存集群中另一分布式缓存集群。
实施例中,分布式缓存可为分布式缓存服务器,而当前生产的分布式缓存服务器采用的为master-slave(主-从)模式,一台master服务器(主服务器),两台slave服务器(从服务器),master服务器负责接收相应地读写请求,当master服务器宕机后,其中的一台slave服务器接管master服务器的工作,接收相应的读写请求。而在选择接管master服务器的工作的slave服务器时,可按照预设的条件进行选择,如选择多个slave服务器中性能最好的slave服务器。
在一分布式缓存集群失效时,可采用分布式缓存多集群多活模式(即部署多套集群,实现集群多活部署的模式)来提高分布式锁的整体高可用性,保证处理效率。图2是本发明实施例提供的一种分布式缓存的存储的流程示意图,如图2所示,假设有两套分布式缓存集群同时对外提供服务,基于交易请求的客户号对应的篮子号,依据客户号将交易请求均匀地分布在两套集群中,第一套集群保存客户号对应的篮子号%2=0的客户号列表,第二套集群保存客户号对应的篮子号%2=1的客户号列表,其中CUST0001、CUST0002、CUST0003、CUST0004代表不同的客户号。分布式锁在进行分布式缓存访问时,根据数据的分配规则,访问对应的分布式缓存集群。在其中一套分布式缓存集群失效时,采用人工干预,或者事件通知模式(即事件通知模式表示当一套分布式缓存集群失效时,基于事件通知分布式锁客户端,进行分布式缓存集群的动态切换,从而保证其高可用性),将所有的访问请求访问到另外一套集群上去。在分布式缓存集群迁移的过程中,由于分布式缓存存放的数据都是些临时数据,而无需做数据迁移工作。本发明实施例可保证在分布式部署的应用集群中,同一个方法在同一操作只能被一台机器上的一个线程执行。
具体实施时,本发明实施例提供的核心账务交易并发处理方法还可以包括:基于分布式缓存对交易请求执行分布式锁加锁处理时,对加锁处理状态进行监控,得到分布式锁监控数据;在加锁处理失败、且分布式缓存发出访问异常数据后,在分布式锁监控数据中添加所述访问异常数据;所述根据交易请求执行交易的处理逻辑,包括:在添加所述访问异常数据后,根据交易请求执行交易的处理逻辑。
在根据交易请求执行交易的处理逻辑前,对加锁处理状态进行监控,得到分布式锁监控数据;如果执行分布式锁加锁处理失败,判断分布式缓存是否有相应的分布式缓存访问异常数据抛出,如果有异常数据抛出,进行异常数据捕获的操作,更新分布式锁监控数据,并执行交易的处理逻辑。
具体实施时,本发明实施例提供的核心账务交易并发处理方法还可以包括:若加锁处理失败,判断加锁处理的次数是否超出加锁次数限值;若超出加锁次数限值,则根据交易请求执行交易的处理逻辑;若加锁处理的次数没有超出加锁次数限值,则经历预设的等待时间后,重新尝试加锁处理。
若对交易请求执行分布式锁加锁处理失败,还可判断执行分布式锁加锁处理次数是否达到了加锁次数限值,本实施例中,加锁次数限值可为最大的尝试加锁次数;如果执行分布式锁加锁处理次数超过了最大的尝试加锁次数,则直接根据交易请求执行交易的处理逻辑。如果执行分布式锁加锁处理次数没有超过最大的尝试加锁次数,则等待指定的时间后,则继续进行尝试执行加锁处理。本发明实施例提供的核心账务交易并发处理方法还可以包括:随着尝试次数的增加,设置线程等待的时间相应地减少,可缩短后一次尝试执行加锁处理的时间间隔,如第一次等待200ms,第二次等待150ms,第三次等待100ms,降低等待线程“饿死”发生的概率。随着尝试次数的增加,逐步减少等待时间,增大尝试的频率,以提高交易请求获取到分布式锁的概率。
具体实施时,本发明实施例提供的核心账务交易并发处理方法还可以包括:若加锁处理失败,判断加锁处理的时长是否超过预设等待时长;若超过预设等待时长,则根据交易请求执行交易的处理逻辑。
若对交易请求执行分布式锁加锁处理失败,判断分布式锁加锁处理的加锁处理的时长,如整体耗时,是否超过了预设等待时长,此预设等待时长可为最长的等待时间,如果对交易请求执行分布式锁加锁处理的时间超过了预设等待时长,则直接根据交易请求执行交易的处理逻辑。发明实施例提供的核心账务交易并发处理方法还可以包括:合理地设置分布式缓存的连接超时、请求超时等参数配置,当分布式缓存访问变慢时,可通过超时中断机制,中断对分布式缓存的访问,避免过多地延长交易的整体处理时间。
具体实施时,在基于分布式缓存对交易请求执行分布式锁加锁处理后,根据交易请求执行交易的处理逻辑;在交易执行后,释放所述分布式锁。
在根据交易请求执行交易的处理逻辑后,如果执行交易的处理逻辑前对交易请求执行了加锁处理,无论执行交易的处理逻辑成功或者失败,都需进行相应地解锁操作,释放所述分布式锁,删除对应的客户号缓存数据。本发明实施例在基于分布式缓存对交易请求执行分布式锁加锁处理时,还包括:设置分布式锁的超时时间,由于交易在前处理过程中,已经通过加锁处理获取到了分布式锁,在交易中断,或交易后处理无法摘掉已经获取到的锁的情况下,通过分布式锁的超时时间使得分布式锁自动失效。
图3是本发明实施例提供的一实例中基于分布式缓存对交易请求执行分布式锁加锁处理的流程示意图,在图3中,在接收交易请求后,执行交易前处理逻辑,对交易请求执行分布式锁加锁处理。图3所示的交易前处理获取分布式锁处理流程如下:
1.服务端接收到交易请求后,根据分布式锁总体开关和交易请求中交易码的分布式锁打开标志位,来决定是否执行分布式锁加锁处理逻辑,只有分布式锁总体开关和交易请求中交易码的分布式锁打开标志位均开启的情况下才会执行加锁处理逻辑,且配置参数能够动态生效;
2.动态流控判断,如果分布式缓存出现故障,依靠动态流控判断,对分布式缓存进行动态隔离和恢复对分布式缓存的访问,防止由于分布式缓存故障而导致整体交易处理时间变长;
3.基于分布式缓存对交易请求执行分布式锁加锁处理,首先获取交易请求的客户号,调用分布式缓存的相应put方法对这笔交易请求对应的客户号加锁,并设置锁的存活时间,如果put操作成功,则表明加锁成功。在访问分布式缓存的过程中,还需预先对相应的连接超时、读超时控制等超时控制进行设置,还需预先对多个分布式缓存集群的路由进行工作设置,如基于交易请求的客户号对应的篮子号,依据客户号将交易请求均匀地分布在多个分布式缓存集群中,预先设置每一分布式缓存集群对应的客户号列表;
4.如果执行分布式锁加锁处理成功,在分布式缓存的内部数据交换区中设置加锁成功标志位,并更新相应地监控数据,执行交易的处理逻辑;
5.如果执行分布式锁加锁处理失败,判断是否有相应的分布式缓存访问异常抛出,如果有异常抛出,进行异常捕获,更新监控数据,执行交易处理逻辑;
6.判断执行分布式锁加锁处理的加锁次数是否达到了最大的尝试加锁次数,如果超过了最大的尝试加锁次数,则直接执行相应的交易业务处理逻辑。判断执行分布式锁加锁处理的整体耗时是否超过了最大的等待时间,如果获取锁的尝试时间超过了最大的等待时间,则直接执行相应的交易业务处理逻辑;
7.如果执行分布式锁加锁处理的次数没有到达最大次数,则等待指定的时间后,则继续进行尝试加锁。随着尝试次数的增加,可设置线程等待的时间进行相应地减少。
由上述实施例可知,本发明实施例基于分布式缓存对交易请求执行分布式锁加锁处理,并根据交易请求执行交易的处理逻辑,可确保在核心账务交易并发时,同一时间同一用户只有一个交易请求被处理,解决了核心账务交易并发时交易请求冲突的问题。与现有技术对比,可简化核心账务交易并发处理的整体流程,节约了资源,且不依赖消息中间件,也不需要对前端渠道适配改造,提高了核心账务交易并发处理的效率。
实施例中,在处理核心账务交易并发的问题时,可按需对交易请求执行分布式锁加锁处理,节约了资源,而且不依赖其他中间件,且对现有的流程没有影响;按需获取分布式锁,不会造成资源的浪费,也不会增加业务逻辑的复杂度。
基于同一发明构思,本发明实施例中还提供了一种核心账务交易并发处理装置,如下面的实施例所述。由于核心账务交易并发处理装置解决问题的原理与核心账务交易并发处理方法相似,因此核心账务交易并发处理装置的实施可以参见核心账务交易并发处理方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图4是本发明实施例的核心账务交易并发处理装置的一种结构框图,如图4所示,包括:
交易请求接收模块01,用于接收交易请求;
分布式锁加锁处理模块02,用于基于分布式缓存对交易请求执行分布式锁加锁处理;
交易的处理逻辑执行模块03,用于根据交易请求执行交易的处理逻辑;
分布式锁释放模块04,用于在交易执行后,释放所述分布式锁。
在一实施例中,分布式锁加锁处理模块,具体用于:在分布式锁总体开关和交易请求中交易码的分布式锁打开标志位均开启时,基于分布式缓存对交易请求执行分布式锁加锁处理。
在一实施例中,分布式锁加锁处理模块,具体用于:获取交易请求的客户号;调用分布式缓存的put方法,对交易请求的客户号执行分布式锁加锁处理。
在一实施例中,分布式锁加锁处理模块,具体用于:若分布式缓存出现故障,则对分布式缓存进行动态隔离;在隔离退出条件满足后,重新尝试加锁处理。
在一实施例中,分布式锁加锁处理模块,具体用于:基于多个分布式缓存集群对交易请求执行分布式锁加锁处理;所述分布式缓存集群包括:主分布式缓存和多个从分布式缓存;在主分布式缓存宕机时,选择一从分布式缓存替换主分布式缓存;在一分布式缓存集群失效时,隔离该失效的分布式缓存集群;将该失效的分布式缓存集群中的交易请求,发送至多个分布式缓存集群中另一分布式缓存集群。
在一实施例中,本发明实施例提供的核心账务交易并发处理装置还可以包括:加锁处理监控模块05,如图5所示,图5是本发明实施例提供的一种核心账务交易并发处理装置的结构示意图。加锁处理监控模块用于:基于分布式缓存对交易请求执行分布式锁加锁处理时,对加锁处理状态进行监控,得到分布式锁监控数据;在加锁处理失败、且分布式缓存发出访问异常数据后,在分布式锁监控数据中添加所述访问异常数据;所述交易的处理逻辑执行模块,还用于:在添加所述访问异常数据后,根据交易请求执行交易的处理逻辑。
在一实施例中,本发明实施例提供的核心账务交易并发处理装置还可以包括:执行加锁处理次数监控模块,用于:若加锁处理失败,判断加锁处理的次数是否超出加锁次数限值;所述交易的处理逻辑执行模块,还用于:若超出加锁次数限值,则根据交易请求执行交易的处理逻辑;分布式锁加锁处理模块,还用于:若加锁处理的次数没有超出加锁次数限值,则经历预设的等待时间后,重新尝试加锁处理。
在一实施例中,本发明实施例提供的核心账务交易并发处理装置还可以包括:执行加锁处理时间监控模块,用于:若加锁处理失败,判断加锁处理的时长是否超过预设等待时长;所述交易的处理逻辑执行模块,还用于:若超过预设等待时长,则根据交易请求执行交易的处理逻辑。
本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述所述方法。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述所述方法的计算机程序。
综上所述,本发明实施例中,接收交易请求;基于分布式缓存对交易请求执行分布式锁加锁处理;根据交易请求执行交易的处理逻辑;在交易执行后,释放所述分布式锁,可确保在核心账务交易并发时,同一时间同一用户只有一个交易请求被处理,解决了核心账务交易并发时交易请求冲突的问题。与现有技术对比,可简化核心账务交易并发处理的整体流程,节约了资源,且不依赖消息中间件,也不需要对前端渠道适配改造,提高了核心账务交易并发处理的效率。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种核心账务交易并发处理方法,其特征在于,包括:
接收交易请求;
基于分布式缓存对交易请求执行分布式锁加锁处理;所述基于分布式缓存对交易请求执行分布式锁加锁处理,包括:在分布式锁总体开关和交易请求中交易码的分布式锁打开标志位均开启时,基于分布式缓存对交易请求执行分布式锁加锁处理;
所述基于分布式缓存对交易请求执行分布式锁加锁处理,包括:获取交易请求的客户号;调用分布式缓存的put方法,对交易请求的客户号执行分布式锁加锁处理;
根据交易请求执行交易的处理逻辑;
在交易执行后,释放所述分布式锁;
所述基于分布式缓存对交易请求执行分布式锁加锁处理,包括:
基于多个分布式缓存集群对交易请求执行分布式锁加锁处理;所述分布式缓存集群包括:主分布式缓存和多个从分布式缓存;在主分布式缓存宕机时,选择一从分布式缓存替换主分布式缓存;在一分布式缓存集群失效时,隔离该失效的分布式缓存集群;将该失效的分布式缓存集群中的交易请求,采用人工干预,或者事件通知模式发送至多个分布式缓存集群中另一分布式缓存集群;所述事件通知模式表示当一套分布式缓存集群失效时,基于事件通知分布式锁客户端,进行分布式缓存集群的动态切换;
如果分布式缓存出现故障,依靠动态流控判断,对分布式缓存进行动态隔离和恢复对分布式缓存的访问;所述动态流控判断包括采取连续失败策略,对分布式缓存进行动态隔离;
所述基于分布式缓存对交易请求执行分布式锁加锁处理,包括:若分布式缓存出现故障,则对分布式缓存进行动态隔离;在隔离退出条件满足后,重新尝试加锁处理;
还包括:基于分布式缓存对交易请求执行分布式锁加锁处理时,对加锁处理状态进行监控,得到分布式锁监控数据;在加锁处理失败、且分布式缓存发出访问异常数据后,在分布式锁监控数据中添加所述访问异常数据;所述根据交易请求执行交易的处理逻辑,包括:在添加所述访问异常数据后,根据交易请求执行交易的处理逻辑;
还包括:若加锁处理失败,判断加锁处理的次数是否超出加锁次数限值;若超出加锁次数限值,则根据交易请求执行交易的处理逻辑;若加锁处理的次数没有超出加锁次数限值,则经历预设的等待时间后,重新尝试加锁处理。
2.如权利要求1所述的方法,其特征在于,还包括:若加锁处理失败,判断加锁处理的时长是否超过预设等待时长;
若超过预设等待时长,则根据交易请求执行交易的处理逻辑。
3.一种核心账务交易并发处理装置,其特征在于,包括:
交易请求接收模块,用于接收交易请求;
分布式锁加锁处理模块,用于基于分布式缓存对交易请求执行分布式锁加锁处理;分布式锁加锁处理模块,具体用于:在分布式锁总体开关和交易请求中交易码的分布式锁打开标志位均开启时,基于分布式缓存对交易请求执行分布式锁加锁处理;
分布式锁加锁处理模块,具体用于:获取交易请求的客户号;调用分布式缓存的put方法,对交易请求的客户号执行分布式锁加锁处理;
交易的处理逻辑执行模块,用于根据交易请求执行交易的处理逻辑;
分布式锁释放模块,用于在交易执行后,释放所述分布式锁;
分布式锁加锁处理模块,具体用于:基于多个分布式缓存集群对交易请求执行分布式锁加锁处理;所述分布式缓存集群包括:主分布式缓存和多个从分布式缓存;在主分布式缓存宕机时,选择一从分布式缓存替换主分布式缓存;在一分布式缓存集群失效时,隔离该失效的分布式缓存集群;将该失效的分布式缓存集群中的交易请求,采用人工干预,或者事件通知模式发送至多个分布式缓存集群中另一分布式缓存集群;所述事件通知模式表示当一套分布式缓存集群失效时,基于事件通知分布式锁客户端,进行分布式缓存集群的动态切换;
如果分布式缓存出现故障,依靠动态流控判断,对分布式缓存进行动态隔离和恢复对分布式缓存的访问;所述动态流控判断包括采取连续失败策略,对分布式缓存进行动态隔离;所述基于分布式缓存对交易请求执行分布式锁加锁处理,包括:若分布式缓存出现故障,则对分布式缓存进行动态隔离;在隔离退出条件满足后,重新尝试加锁处理;
还包括:基于分布式缓存对交易请求执行分布式锁加锁处理时,对加锁处理状态进行监控,得到分布式锁监控数据;在加锁处理失败、且分布式缓存发出访问异常数据后,在分布式锁监控数据中添加所述访问异常数据;所述根据交易请求执行交易的处理逻辑,包括:在添加所述访问异常数据后,根据交易请求执行交易的处理逻辑;
还包括:若加锁处理失败,判断加锁处理的次数是否超出加锁次数限值;若超出加锁次数限值,则根据交易请求执行交易的处理逻辑;若加锁处理的次数没有超出加锁次数限值,则经历预设的等待时间后,重新尝试加锁处理。
4.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至2任一所述方法。
5.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1至2任一所述方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010271743.8A CN111459963B (zh) | 2020-04-07 | 2020-04-07 | 核心账务交易并发处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010271743.8A CN111459963B (zh) | 2020-04-07 | 2020-04-07 | 核心账务交易并发处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111459963A CN111459963A (zh) | 2020-07-28 |
CN111459963B true CN111459963B (zh) | 2024-03-15 |
Family
ID=71685197
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010271743.8A Active CN111459963B (zh) | 2020-04-07 | 2020-04-07 | 核心账务交易并发处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111459963B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112231131B (zh) * | 2020-09-28 | 2024-05-28 | 北京金山云网络技术有限公司 | 一种数据库锁的实现方法、装置、设备及可读存储介质 |
CN113298513A (zh) * | 2021-06-21 | 2021-08-24 | 深圳前海微众银行股份有限公司 | 代付请求处理方法及系统 |
CN115719274A (zh) * | 2022-11-23 | 2023-02-28 | 中电金信软件(上海)有限公司 | 一种分布式事务交易的控制方法、装置、设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2007331483A1 (en) * | 2006-12-12 | 2008-06-19 | The Sporting Exchange Ltd | Transaction processing system |
CN106445644A (zh) * | 2016-08-30 | 2017-02-22 | 中国民生银行股份有限公司 | 基于改进的一阶段提交的分布式事务的处理方法和装置 |
CN107239238A (zh) * | 2017-07-27 | 2017-10-10 | 郑州云海信息技术有限公司 | 一种基于分布式锁的存储的io操作方法及装置 |
CN107947976A (zh) * | 2017-11-20 | 2018-04-20 | 新华三云计算技术有限公司 | 故障节点隔离方法及集群系统 |
CN108063782A (zh) * | 2016-11-08 | 2018-05-22 | 北京国双科技有限公司 | 节点宕机接管方法和装置、节点集群系统 |
CN108874552A (zh) * | 2018-06-28 | 2018-11-23 | 杭州云英网络科技有限公司 | 分布式锁执行方法、装置及系统、应用服务器和存储介质 |
CN109558218A (zh) * | 2018-12-04 | 2019-04-02 | 山东浪潮通软信息科技有限公司 | 一种基于Redis的分布式业务数据锁实现方法 |
CN109670807A (zh) * | 2018-11-20 | 2019-04-23 | 平安科技(深圳)有限公司 | 扣款控制方法、装置、设备及可读存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013033345A (ja) * | 2011-08-01 | 2013-02-14 | Internatl Business Mach Corp <Ibm> | トランザクション処理システム、方法及びプログラム |
-
2020
- 2020-04-07 CN CN202010271743.8A patent/CN111459963B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2007331483A1 (en) * | 2006-12-12 | 2008-06-19 | The Sporting Exchange Ltd | Transaction processing system |
CN106445644A (zh) * | 2016-08-30 | 2017-02-22 | 中国民生银行股份有限公司 | 基于改进的一阶段提交的分布式事务的处理方法和装置 |
CN108063782A (zh) * | 2016-11-08 | 2018-05-22 | 北京国双科技有限公司 | 节点宕机接管方法和装置、节点集群系统 |
CN107239238A (zh) * | 2017-07-27 | 2017-10-10 | 郑州云海信息技术有限公司 | 一种基于分布式锁的存储的io操作方法及装置 |
CN107947976A (zh) * | 2017-11-20 | 2018-04-20 | 新华三云计算技术有限公司 | 故障节点隔离方法及集群系统 |
CN108874552A (zh) * | 2018-06-28 | 2018-11-23 | 杭州云英网络科技有限公司 | 分布式锁执行方法、装置及系统、应用服务器和存储介质 |
CN109670807A (zh) * | 2018-11-20 | 2019-04-23 | 平安科技(深圳)有限公司 | 扣款控制方法、装置、设备及可读存储介质 |
CN109558218A (zh) * | 2018-12-04 | 2019-04-02 | 山东浪潮通软信息科技有限公司 | 一种基于Redis的分布式业务数据锁实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111459963A (zh) | 2020-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111459963B (zh) | 核心账务交易并发处理方法及装置 | |
US10942823B2 (en) | Transaction processing system, recovery subsystem and method for operating a recovery subsystem | |
TWI267782B (en) | Deallocation of computer data in a multithreaded computer | |
US7478114B2 (en) | Failure tolerant transaction processing system | |
US5664088A (en) | Method for deadlock recovery using consistent global checkpoints | |
US8327375B2 (en) | System and method for supporting resource enlistment synchronization | |
US9626236B2 (en) | Method, apparatus and computer program for administering messages which a consuming application fails to process | |
US7536582B1 (en) | Fault-tolerant match-and-set locking mechanism for multiprocessor systems | |
US20080134182A1 (en) | Computer readable storage medium for protection against interleaving transactions using a transaction manager | |
RU2437144C2 (ru) | Способ устранения исключительной ситуации в одном из ядер многоядерной системы | |
CN111209110B (zh) | 一种实现负载均衡的任务调度管理方法、系统和存储介质 | |
CN111427751B (zh) | 基于异步处理机制对业务进行处理的方法及系统 | |
EP0165934A1 (en) | CONTROLLING PROCESSING OF A PROGRAM IN A MULTI-PROCESSING SYSTEM. | |
CN111414241A (zh) | 批量数据处理方法、装置、系统、计算机设备及计算机可读存储介质 | |
US8132174B2 (en) | Concurrency management in cluster computing of business applications | |
CN111538585B (zh) | 一种基于node.js的服务器进程调度方法、系统和装置 | |
US8336053B2 (en) | Transaction management | |
CN114844809B (zh) | 基于网络心跳和内核磁盘心跳的多因子仲裁方法、装置 | |
KR20050035301A (ko) | 이종의 프로세스들을 통합하도록 적응된 데이터 프로세싱시스템 | |
US20140250248A1 (en) | Method for managing a processor, lock contention management apparatus, and computer system | |
CN109313573B (zh) | 数据库服务中的冷数据库的动态解激活 | |
CN116127494A (zh) | 用户并发访问的控制方法及相关装置 | |
US20020099703A1 (en) | Adaptive lock escalation based on the concept of unescalatable locks | |
CN111158956A (zh) | 一种集群系统的数据备份方法及相关装置 | |
CN114500749A (zh) | Ai智能外呼转人工坐席的方法、系统、设备和存储介质 |
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: 20220908 Address after: 25 Financial Street, Xicheng District, Beijing 100033 Applicant after: CHINA CONSTRUCTION BANK Corp. Address before: 25 Financial Street, Xicheng District, Beijing 100033 Applicant before: CHINA CONSTRUCTION BANK Corp. Applicant before: Jianxin Financial Science and Technology Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |