CN105046466A - 库存数据的并发控制系统及方法 - Google Patents
库存数据的并发控制系统及方法 Download PDFInfo
- Publication number
- CN105046466A CN105046466A CN201510369616.0A CN201510369616A CN105046466A CN 105046466 A CN105046466 A CN 105046466A CN 201510369616 A CN201510369616 A CN 201510369616A CN 105046466 A CN105046466 A CN 105046466A
- Authority
- CN
- China
- Prior art keywords
- request
- unit
- stock
- processing unit
- database
- 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
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及通信领域,尤其涉及库存数据的并发控制系统及方法,可应用于请求库存进行扣减服务的操作中,主要是通过设置的接受请求单元来负责接受请求,并发送通知至处理单元,以利用该处理单元对第一库存数据库进行扣减操作后并将扣减结果信息存储至处理结果单元,并在接受请求单元向处理结果单元询问处理结果时将处理结果信息反馈至接受请求单元,进而可使得应用本申请技术方案的高并发数据请求系统能够在保留横向扩展服务器能力的基础上,最大限度减少在诸如商品扣减等操作时进行的高并发操作对数据库带来不利影响,即利用批量的库存扣减操作来减缓高并发期间数据库的压力,以提升系统的性能及承压能力。
Description
技术领域
本发明涉及通信领域,尤其涉及库存数据的并发控制系统及方法。
背景技术
目前电商业务有促销活动频度高,用户并发波动大的特点。传统的电商体系架构只能通过增加应用服务器这种横向扩展的方式来满足巨大的用户访问量,但是为了临时活动进行横向扩展,需极大的硬件和运维成本,而在并发比较平缓时又造成资源的浪费,很难调和。
另外,在注入秒杀等活动期间由于具有诸如商品种类少、短时间访问量巨大等特点,进而会对记录商品库存的数据库操作造成巨大的压力,尤其是过大的秒杀并发请求会对数据库的个别商品记录上产生大量操作锁,而由于数据库的处理能力有限,不仅会降低对用户下单的响应时间,甚至还能造成系统短时间瘫痪,使得用户体验大大降低,不利用电商业务的推广应用。
发明内容
为了解决上述问题,本发明设计了一种库存数据的并发控制系统及方法,可应用于高并发数据请求的数据交互操作中,以有效的提高库存数据系统的承压能力。
为了实现上述目的,本发明设计了一种库存数据的并发控制系统,可应用于用户终端对第一数据库中存储的库存数据进行扣减的操作中,所述系统包括:
接受请求单元,与所述用户终端通讯连接,以接收所述用户终端发送的库存扣减请求;
处理单元,与所述接受请求单元通讯连接,以根据所述库存扣减请求对所述第一数据库中存储的所述库存数据进行扣减操作;
处理结果单元,分别与所述处理单元和所述接受请求单元通讯连接;以及
所述处理单元将所述扣减操作的结果信息存储至所述处理结果单元,所述接受请求单元将所述处理结果单元反馈的所述结果信息发送至所述用户终端。
进一步改进技术方案,所述系统还包括:
第二数据库,分别与所述接受请求单元和所述处理单元通讯连接,以用于存储库存扣减请求;以及
所述接受请求单元根据接收的所述库存扣减请求发送通知信息至所述处理单元,所述处理单元根据接收的所述通知信息对所述第二数据库中存储的所述库存扣减请求进行合并;并且
所述处理单元根据合并的所述库存扣减请求对所述第一数据库中存储的所述库存数据进行所述扣减操作。
进一步改进技术方案,所述系统还包括:
所述接受请求单元对接收的所述库存扣减请求进行分类处理后,将分类处理的所述库存扣减请求存储至所述第二数据库;以及
所述处理单元对分类处理后的所述库存扣减请求进行合并,并根据合并的所述库存扣减请求进行所述扣减操作。
进一步改进技术方案,所述系统还包括:
服务器、应用层模块和服务层模块,且所述接受请求单元、所述处理单元、所述处理结果单元、所述第一数据库和所述第二数据库均设置在所述服务层模块中;以及
所述用户终端依次通过所述服务器、所述应用层模块与所述接受
请求单元通讯连接。
进一步改进技术方案,所述系统中的所述处理单元包括:
第一判断模块,分别与所述接受请求单元和所述第一数据库通讯连接,以用于根据接收的所述通知信息判断所述第一数据库中是否能够满足所述扣减请求;以及
所述处理单元根据所述第一判断模块输出的第一判断信息进行所述扣减操作或反馈失败判断信息至所述用户终端。
进一步改进技术方案,所述系统中的所述处理单元包括:
第二判断模块,分别与所述接受请求单元和所述第二数据库,以用于根据接收的所述通知信息判断所述第二数据库中是否存在待处理所述扣减请求;以及
所述处理单元根据所述第二判断模块输出的第二判断信息对所述待处理扣减请求合并后进行所述扣减操作或停止继续进行所述扣减操作。
进一步改进技术方案,所述系统中的所述接受请求单元包括:
第三判断模块,分别与所述处理结果单元和所述用户终端连接,以用于判断所述处理结果单元中是否反馈所述扣减操作的结果信息至所述接受请求单元;以及
所述接受请求单元根据所述第三判断模块输出的第三判断信息通知所述用户终端所述并发控制系统异常或将所述扣减操作的结果信息发送至所述用户终端。
本发明还设计了一种库存数据的并发控制方法,可基于上述任意一项所述的并发控制系统的基础上,以利用用户终端对第一数据库中存储的库存数据进行扣减的操作中,所述方法包括:
所述用户终端发送库存扣减请求至所述接受请求单元,所述接受请求单元接收所述用户终端发送的库存扣减请求;
所述处理单元根据所述库存扣减请求对所述第一数据库中存储的所述库存数据进行扣减操作;
所述处理单元将所述扣减操作的结果信息存储至所述处理结果单元,所述接受请求单元将所述处理结果单元反馈的所述结果信息发送至所述用户终端。
进一步改进技术方案,所述方法还包括:
所述用户终端向所述接受请求单元发送所述库存扣减请求,所述接受请求单元将所述库存扣减请求存储至所述第二数据库,所述接受请求单元根据接收的所述库存扣减请求发送通知信息至所述处理单元,所述处理单元根据接收的所述通知信息对所述第二数据库中存储的所述库存扣减请求进行合并;并且
所述处理单元根据合并的所述库存扣减请求对所述第一数据库中存储的所述库存数据进行所述扣减操作。
进一步改进技术方案,所述方法还包括:
所述用户终端向所述接受请求单元发送库存扣减请求,所述接受请求单元对接收的所述库存扣减请求进行分类处理后,将分类处理的所述库存扣减请求存储至所述第二数据库;以及
所述处理单元对分类处理后的所述库存扣减请求进行合并,并根据合并的所述库存扣减请求对所述第一数据库中存储的所述库存数据进行所述扣减操作。
进一步改进技术方案,所述方法还包括:
所述用户终端依次通过所述服务器、所述应用层模块发送所述库存扣减请求至所述接受请求单元。
进一步改进技术方案,所述方法中包括:
所述处理单元接收所述通知信息,并合并的所述库存扣减请求;以及
所述处理单元判断所述第一数据库是否能够满足所述库存扣减请求,生成所述第一判断信息;
当所述第一数据库能够满足所述库存扣减请求时,生成成功判断信息,所述处理单元根据所述成功判断信息对所述第一数据库进行扣减操作,否则生成失败判断信息,所述处理单元反馈失败判断信息至所述用户终端。
进一步改进技术方案,所述方法中包括:
所述接受请求单元发送所述通知信息至所述处理单元,所述处理单元根据接收的所述通知信息判断所述第二数据库中是否存在所述待处理所述扣减请求,生成所述第二判断信息;以及
当所述第二数据库中存在所述待处理所述扣减请求时,所述处理单元生成成功判断信息,所述处理单元根据所述成功判断信息对所述待处理扣减请求合并后进行所述扣减操作;否则生成失败判断信息,所述处理单元停止继续进行所述扣减操作。
进一步改进技术方案,所述方法中包括:
所述处理单元将所述扣减操作的结果信息存储至所述处理结果单元,所述接受请求单元按照预设时间定时询问所述处理结果单元所述扣减操作的结果信息;以及
当所述处理结果单元中反馈所述扣减操作的结果信息至所述接受请求单元,则生成所述成功判断信息,所述接受请求单元将所述扣减操作的结果信息发送至所述用户终端,否则,生成所述失败判断信息,所述接受请求单元通知所述用户终端所述并发控制系统异常。
与现有技术相比较,本发明的有益效果是:
本申请中记载的技术方案有别于传统电商解决方案的处理高并发数据请求的系统,可应用于请求库存进行扣减服务的操作中,主要是通过设置的接受请求单元来负责接受请求,并发送通知至处理单元,以利用该处理单元对第一库存数据库进行扣减操作后并将扣减结果信息存储至处理结果单元,并在接受请求单元向处理结果单元询问处理结果时将处理结果信息反馈至接受请求单元,进而可使得应用本申请技术方案的高并发数据请求系统能够在保留横向扩展服务器能力的基础上,最大限度减少在诸如商品扣减等操作时进行的高并发操作对数据库带来不利影响,即利用批量的库存扣减操作来减缓高并发期间数据库的压力,以提升系统的性能及承压能力。
附图说明
图1为本发明实施例一的库存数据的并发控制系统的结构示意图;
图2为本发明实施例二的库存数据的并发控制系统的结构示意图;
图3为本发明实施例三的库存数据的并发控制系统的结构示意图;
图4为本发明实施例四的库存数据的并发控制方法的结构示意图;
图5为本发明实施例五的库存数据的并发控制方法的结构示意图。
具体实施方式
下面结合附图进行进一步说明。
实施例一
如附图1所示,本实施例设计了一种库存数据的并发控制系统,可应用于用户终端对存储有诸如商品库存数据的数据库(即第一数据库)中存储的库存数据进行扣减的操作中,该系统包括:
用户终端1、接受请求单元2、处理单元3、处理结果单元4、第一数据库5、第二数据库6;接受请求单元2与用户终端1通讯连接,以接收用户终端1发送的库存扣减请求,其中信号的走向方式是从用户终端1发送至接受请求单元2;处理单元3与接受请求单元2通讯连接,以根据库存扣减请求对第一数据库5中存储的库存数据进行扣减操作,其中的信号走向是从接受请求单元2至处理单元3,处理单元3再将信号传送至第一数据库5;处理结果单元4,分别与处理单元3和接受请求单元2通讯连接;以及处理单元3将扣减操作的结果信息存储至处理结果单元4,接受请求单元2将处理结果单元4反馈的结果信息发送至用户终端1,其中的通信信号走向为从处理单元3至处理结果单元4,处理结果单元4再将通信信号传送至接受请求单元2,接受请求单元2再将通信信号发送至用户终端1。
优选的,上述的结果信息可包括很多种结果信息,例如成功的结果信息、失败的结果信息、库存不足的结果信息、库存充足的结果信息等,不仅限于上述列举的信息类别,根据系统的具体情况设置具体的结果信息种类。
进一步的,上述的第二数据库6还分别与接受请求单元2和处理单元3通讯连接,以用于存储库存扣减请求;而接受请求单元2则根据接收的库存扣减请求发送通知信息至处理单元3,处理单元3根据接收的通知信息对第二数据库6中存储的库存扣减请求进行合并;另外,处理单元3根据合并的库存扣减请求对第一数据库5中存储的库存数据进行扣减操作。
优选的,在用户终端1发送库存扣减请求之前,第一数据库5中便已经预存有库存数据,且上述的处理单元3在接到接受请求单元2的通知信息后,便对第二数据库6中存储的库存扣减请求进行合并操作后,调取并根据合并后的库存扣减请求对第一数据库5中的预存库存数据进行扣减操作。
优选的,上述的接受请求单元2对接收的库存扣减请求进行分类处理后,将分类处理的库存扣减请求存储至第二数据库6;以及处理单元3对分类处理后的库存扣减请求进行合并,并根据合并的库存扣减请求进行扣减操作。
接受请求单元2在接受到库存扣减请求后,对库存扣减请求进行分类,分类后将库存扣减请求存储至第二数据库6中,至此,第二数据库6中的库存扣减请求为分类放置,当处理单元3接到库存扣减请求后,按照库存扣减请求所对应的分类在第二数据库6中进行查找,这样方便系统快速查找。
实施例二
基于上述实施例一的基础上,本实施例也提供了一种库存数据的并发控制系统。
如附图2所示,本实施例中的库存数据的并发控制系统包括:用户终端1、服务器11、应用层模块12和服务层模块13。
其中,作为优选的技术方案,应用层模块中可以包含若干个应用单元(图中未标示)。
接受请求单元2、处理单元3、处理结果单元4、第一数据库5和第二数据库6均设置在服务层模块13中;以及用户终端1依次通过服务器11、应用层模块12与服务层模块13中的接受请求单元2通讯连接。
服务层模块13包括:用户终端1、接受请求单元2、处理单元3、处理结果单元4、第一数据库5、第二数据库6;其中:
接受请求单元2与用户终端1通讯连接,以接收用户终端1发送的库存扣减请求,其中信号的走向方式是从用户终端1发送至接受请求单元2;
处理单元3与接受请求单元2通讯连接,以根据库存扣减请求对第一数据库5中存储的库存数据进行扣减操作,其中的信号走向是从接受请求单元2至处理单元3,处理单元3再将信号传送至第一数据库5;
处理结果单元4,分别与处理单元3和接受请求单元2通讯连接;以及
处理单元3将扣减操作的结果信息存储至处理结果单元4,接受请求单元2将处理结果单元4反馈的结果信息发送至用户终端1,其中的通信信号走向为从处理单元3至处理结果单元4,处理结果单元4再将通信信号传送至接受请求单元2,接受请求单元2再将通信信号发送至用户终端1。
第二数据库6分别与接受请求单元2和处理单元3通讯连接,以用于存储库存扣减请求,接受请求单元2根据接收的库存扣减请求发送通知信息至处理单元3,处理单元3根据接收的通知信息对第二数据库6中存储的库存扣减请求进行合并。
处理单元3根据合并的库存扣减请求对第一数据库5中存储的库存数据进行扣减操作。其在用户终端1发送库存扣减请求之前,第一数据库5中便已经预存有库存数据,处理单元3接到接受请求单元2的通知信息,从第二数据库6中得到库存扣减请求,进行对第二数据库6中的库存扣减请求合并,以使处理单元3对第一数据库5中的预存库存数据进行扣减。
上述服务器亦指提供计算服务的设备,本发明所述服务器包含所有服务器种类,不进行列举,服务器用于响应库存扣减服务请求,并进行计算服务化的处理。
上述应用模块作为本发明实施例1的改进,当用户终端1与实际处理扣减请求的服务层模块13之间还存在其他过程时,用应用层模块12将两者相互连接。
例如,用户终端1在网络上购买商品,服务器11接受购买请求,同时该网络提供商还其他与该网络相同的提供方式,即该提供方式为应用层模块12中的若干单元,也就是说,在网络上的请求传达到服务器11时,该网络面对用户的其他提供方式如APP应用等,即应同步刷新用户终端1的请求,用户在网络上与其他应用层模块12中的应用单元中查看库存扣减请求,均应看出用户已经提出库存扣减请求的显示,最后接受请求单元2再接收库存扣减请求。
实施例三:
基于上述实施例一和/或实施例二的基础上,本实施例也提供了一种库存数据的并发控制系统。
如附图3所示,一种库存数据的并发控制系统包括:用户终端1、服务器11、应用层模块12和服务层模块13。其中,作为优选的技术方案,应用层模块中可以包含若干个应用单元。
接受请求单元2、处理单元3、处理结果单元4、第一数据库5和第二数据库6均设置在服务层模块13中;以及用户终端1依次通过服务器11、应用层模块12与服务层模块13中的接受请求单元2通讯连接。
如上所述:服务层模块13包括:用户终端1、接受请求单元2、处理单元3、处理结果单元4、第一数据库5、第二数据库6。接受请求单元2与用户终端1通讯连接,以接收用户终端1发送的库存扣减请求,处理单元3与接受请求单元2通讯连接,以根据库存扣减请求对第一数据库5中存储的库存数据进行扣减操作。
第二数据库6分别与接受请求单元2和处理单元3通讯连接,以用于存储库存扣减请求;其中处理单元3内部包括第二判断模块32,第二判断模块32分别与接受请求单元2和第二数据库6通讯连接,以用于根据接收的通知信息判断第二数据库6中是否存在待处理扣减请求;以及处理单元3根据第二判断模块32输出的第二判断信息对待处理扣减请求合并后进行扣减操作或停止继续进行扣减操作。
优选的,接受请求单元2对接收的库存扣减请求进行分类处理后,将分类处理的库存扣减请求存储至第二数据库6,处理单元2对分类处理后的库存扣减请求进行合并,并根据合并的库存扣减请求进行扣减操作,接受请求单元2根据接收的库存扣减请求发送通知信息至处理单元3,处理单元3根据接收的通知信息对第二数据库6中存储的库存扣减请求进行合并。
服务层模块13中处理单元3内部还包括第一判断模块31,第一判断模块31分别与接受请求单元2和第一数据库5通讯连接,以用于根据接收的通知信息判断第一数据库5中是否能够满足扣减请求,处理单元3根据第一判断模块31输出的第一判断信息进行扣减操作或反馈失败判断信息至用户终端。若第一判断模块31输出的第一判断信息为成功判断信息,处理单元3根据合并的库存扣减请求对第一数据库5中存储的库存数据进行扣减操作,处理结果单元4分别与处理单元3和接受请求单元2通讯连接。
服务层模块13中的接受请求单元2还包括第三判断模块21,第三判断模块21分别与处理结果单元4和用户终端1连接,以用于判断处理结果单元4中是否反馈扣减操作的结果信息至接受请求单元2,接受请求单元2根据第三判断模块21输出的第三判断信息通知用户终端1并发控制系统异常或将扣减操作的结果信息发送至用户终端1。
接受请求单元2根据第三判断模块21输出的第三判断信息为成功判断信息时,处理单元3将扣减操作的结果信息存储至处理结果单元4,接受请求单元2将处理结果单元4反馈的结果信息发送至用户终端1.
其中第一判断信息、第二判断信息、第三判断信息均包含成功判断信息与失败判断信息,对应成功与失败两种情况下将对应的判断信息发送至其他单元。
实施例四:
如附图4所示,本实施例可基于上述实施例一至三中任意一项或多项所阐述的库存数据的并发控制系统基础上提出一种库存数据的并发控制方法,可应用于用户终端1对第一数据库5中存储的库存数据进行扣减的操作中,该方法包括:
用户终端1发送库存扣减请求至接受请求单元2,接受请求单元2将库存扣减请求存储至第二数据库6,接受请求单元2根据接收的库存扣减请求发送通知信息至处理单元3,处理单元3根据接收的通知信息对第二数据库6中存储的库存扣减请求进行合并。
处理单元3根据合并的库存扣减请求对第一数据库5中存储的库存数据进行扣减操作。处理单元3将扣减操作的结果信息存储至处理结果单元4,接受请求单元2定时向处理结果单元4寻问结果信息,接受请求单元2将处理结果单元4反馈的结果信息发送至用户终端1。
优选的,本方法还包括:
用户终端1向接受请求单元2发送库存扣减请求,接受请求单元2对接收的库存扣减请求进行分类处理后,将分类处理的库存扣减请求存储至第二数据库6,处理单元2对分类处理后的库存扣减请求进行合并,并根据合并的库存扣减请求对第一数据库6中存储的库存数据进行扣减操作。
举例说明本实施例的实际应用情况,比如,当用户终端1想买A商品,接受请求单元2接收到了想买A商品的请求,这时接受请求单元2同时还对A商品进行分类选定,A商品属于食品类,那么接受请求单元2将会将想买A商品的请求放置在第二数据库6中的食品类的请求分类中,接受请求单元2同步通知处理单元3。
处理单元3在第二数据库6中寻找到A商品的库存扣减请求,将A商品的请求数量进行合并,再至第一数据库5中将合并A商品的库存扣减请求的数量进行库存扣减,得到合并扣减的结果信息,接受请求单元2按照预定时间定期询问处理结果单元4合并扣减结果,处理结果单元4将合并扣减的结果反馈到接受请求单元2,接受请求单元2再反馈结果信息至用户终端1。
实施例五:
基于实施例四,本实施例还提供了一种库存数据的并发控制方法。
如附图5所示,用户终端1依次通过服务器11、应用层模块12发送库存扣减请求至服务层模块中13的接受请求单元2,接受请求单元2接收到库存扣减请求。
本实施例尚未说明的方法与实施例四的方法相同,此处不再赘述。
举例说明本实施例的实际应用情况,比如,当用户终端1想买B商品,想买B商品的库存扣减请求发送至服务器11中,同时应用层模块12中的B商品的数量请求信息被同步刷新,再将库存扣减请求发送至接受请求单元2,接受请求单元2接收到了想买B商品的库存扣减请求,这时接受请求单元2同时还对B商品进行分类,B商品属于家具类,那么接受请求单元2将会将想买B商品的库存扣减请求放置在第二数据库6中的家具类中,接受请求单元2同步通知处理单元3。
处理单元3在第二数据库6中寻找到B商品的库存扣减请求,将B商品的库存扣减请求数量进行合并,再至第一数据库5中将合并B商品的数量进行库存扣减,得到合并扣减的结果信息,接受请求单元2按照预定时间定期询问处理结果单元4合并扣减结果,处理结果单元4将合并扣减的结果反馈到接受请求单元2,接受请求单元2再反馈结果信息至用户终端1,用户终端1得到用户是否扣减成功的信息。
实施例6
基于上述实施例四和/或五的基础上,本实施例提供了一种库存数据的并发控制方法。
如附图5所示,用户终端1依次通过服务器11、应用层模块12发送库存扣减请求至服务层模块中13的接受请求单元2。
接受请求单元2接收到库存扣减请求,接受请求单元2将从应用层模块12接受的库存扣减请求存储至第二数据库6,接受请求单元2根据接收的库存扣减请求发送通知信息至处理单元3。
优选的,处理单元3根据接收的通知信息判断第二数据库6中是否存在待处理扣减请求,生成第二判断信息,当第二数据库6中存在待处理扣减请求时,处理单元3生成成功判断信息,处理单元3根据成功判断信息对待处理扣减请求进行合并,否则生成失败判断信息,处理单元3停止继续进行扣减操作。
优选的,处理单元3判断第一数据库5是否能够满足库存扣减请求,生成第一判断信息,当第一数据库5能够满足库存扣减请求时,生成成功判断信息,处理单元3根据成功判断信息对第一数据库5进行扣减操作,否则生成失败判断信息,处理单元3反馈失败判断信息至用户终端1。
处理单元3根据合并的库存扣减请求对第一数据库5中存储的库存数据进行扣减操作,处理单元3将扣减操作的结果信息存储至处理结果单元4,接受请求单元2定时向处理结果单元4寻问结果信息,处理单元3将扣减操作的结果信息存储至处理结果单元4,接受请求单元2按照预设时间定时询问处理结果单元4扣减操作的结果信息。
当处理结果单元4中反馈扣减操作的结果信息至接受请求单元2,则生成成功判断信息,接受请求单元2将扣减操作的结果信息发送至用户终端1,否则,生成失败判断信息,接受请求单元2通知用户终端1并发控制系统异常。
优选的,用户终端1向接受请求单元2发送库存扣减请求,接受请求单元2对接收的库存扣减请求进行分类处理后,将分类处理的库存扣减请求存储至第二数据库6,处理单元2对分类处理后的库存扣减请求进行合并,并根据合并的库存扣减请求对第一数据库5中存储的库存数据进行扣减操作。
举例说明本实施例的事件情况:用户终端1依次通过服务器11、应用层模块12发送购买C商品的库存扣减请求至服务层模块中13的接受请求单元2。
接受请求单元2接收到购买C商品的库存扣减请求,接受请求单元2将库存扣减请求按照类别存储至第二数据库6中,C商品属于电器类,接受请求单元2根据接收的购买C商品的库存扣减请求发送通知信息至处理单元3,处理单元3根据接收的购买C商品的通知信息判断第二数据库6中的电器类存在待处理扣减请求,生成成功判断信息。
第二数据库6中电器类别存在待处理的购买C商品的请求,处理单元3生成成功判断信息,处理单元3根据成功判断信息对待处理扣减请求合并后进行扣减操作。
处理单元3判断第一数据库5能够满足购买C商品的库存扣减请求,生成成功判断信息,处理单元3根据成功判断信息对第一数据库5进行扣减操作,处理单元3将扣减操作的结果信息存储至处理结果单元4,接受请求单元2定时向处理结果单元4寻问结果信息。
处理结果单元4将结果信息反馈接受请求单元2,生成成功判断信息,接受请求单元2将扣减操作的结果信息发送至用户终端1,进而用户终端1接收到合并扣减的情况。
下面结合具体的实例对本申请中的库存数据的并发控制系统及方法进行进一步的阐述:
例如当前有3个用户同时执行下单操作,相应的就需要对存储商品数据的库存数据库进行库存扣减操作,预设请求用户和商品对应关系为:【用户A、商品a】【用户B、商品a】【用户C、商品b】
相应的,采用本申请的技术方案进行扣减操作的处理过程则具体包括:
首先,用户A线程(即接收请求单元2)将商品a库存扣减请求提交到队列,用户B线程将商品a库存扣减请求提交到队列,用户C线程将商品b库存扣减请求提交到队列;同时,该3个用户线程(A、B、C)分别通知库存扣减处理单元(即处理单元3)。
其次,库存扣减处理单元接受用户A线程通知开始处理商品a的扣减操作,并从队列中拿到两个商品a的扣减请求,分别是用户A和用户B请求的,且对上述的两个商品a的扣减请求进行合并后,对商品a进行扣减操作后将处理结果放到处理结果单元(即处理结果单元4)中。
之后,库存扣减处理单元接受用户B线程通知开始处理商品a的扣减操作,此时队列中的商品a扣减请求已都被用户A的请求处理掉了,所以库存扣减处理单元发现队列为空,则直接结束。
然后,库存扣减处理单元接受用户C线程通知开始处理商品b的扣减操作,此时若商品b的库存不足,则扣减失败,处理单元将失败结果放到结果单元中。
最后,上述的用户A和用户B线程分别从结果单元中获取处理结果,处理成功,返回给用户下单成功。用户C线程则从结果单元中获取处理结果,处理失败,返回给用户下单失败。
综上所述,本申请实施例中的库存数据的并发控制系统及方法,可应用于诸如电商秒杀等之类操作时产生的对数据库并发请求扣减服务的操作中,主要是通过设置的接受请求单元来负责接收用户终端发送的库存扣减请求,并发送通知至处理单元,以利用该处理单元对库存数据库进行扣减操作后并扣减结果信息存储至处理结果单元,并在请求单元向处理结果单元询问处理结果时将处理结果信息反馈至用户端,进而可使得应用本申请技术方案的高并发数据请求系统能够在保留横向扩展服务器能力的基础上,最大限度减少在诸如商品扣减等操作时进行的高并发操作对数据库带来不利影响,即利用批量的库存扣减操作来减缓高并发期间数据库的压力,以提升系统的性能及承压能力。
本领域技术人员应该理解,本领域技术人员在结合现有技术以及上述实施例可以实现变化例,这样的变化例并不影响本发明的实质内容,在此不予赘述。
以上对本发明的较佳实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,其中未尽详细描述的设备和结构应该理解为用本领域中的普通方式予以实施;任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案作出许多可能的变动和修饰,或修改为等同变化的等效实施例,这并不影响本发明的实质内容。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。
Claims (14)
1.库存数据的并发控制系统,其特征在于,应用于用户终端对第一数据库中存储的库存数据进行扣减的操作中,所述系统包括:
接受请求单元,与所述用户终端通讯连接,以接收所述用户终端发送的库存扣减请求;
处理单元,与所述接受请求单元通讯连接,以根据所述库存扣减请求对所述第一数据库中存储的所述库存数据进行扣减操作;
处理结果单元,分别与所述处理单元和所述接受请求单元通讯连接;以及
所述处理单元将所述扣减操作的结果信息存储至所述处理结果单元,所述接受请求单元将所述处理结果单元反馈的所述结果信息发送至所述用户终端。
2.根据权利要求1所述的并发控制系统,其特征在于,所述系统还包括:
第二数据库,分别与所述接受请求单元和所述处理单元通讯连接,以用于存储库存扣减请求;以及
所述接受请求单元根据接收的所述库存扣减请求发送通知信息至所述处理单元,所述处理单元根据接收的所述通知信息对所述第二数据库中存储的所述库存扣减请求进行合并;并且
所述处理单元根据合并的所述库存扣减请求对所述第一数据库中存储的所述库存数据进行所述扣减操作。
3.根据权利要求2所述的并发控制系统,其特征在于,所述系统还包括:
所述接受请求单元对接收的所述库存扣减请求进行分类处理后,将分类处理的所述库存扣减请求存储至所述第二数据库;以及
所述处理单元对分类处理后的所述库存扣减请求进行合并,并根据合并的所述库存扣减请求进行所述扣减操作。
4.根据权利要求2所述的并发控制系统,其特征在于,所述系统还包括:
服务器、应用层模块和服务层模块,且所述接受请求单元、所述处理单元、所述处理结果单元、所述第一数据库和所述第二数据库均设置在所述服务层模块中;以及
所述用户终端依次通过所述服务器、所述应用层模块与所述接受请求单元通讯连接。
5.根据权利要求4所述的并发控制系统,其特征在于,所述系统中的所述处理单元包括:
第一判断模块,分别与所述接受请求单元和所述第一数据库通讯连接,以用于根据接收的所述通知信息判断所述第一数据库中是否能够满足所述扣减请求;以及
所述处理单元根据所述第一判断模块输出的第一判断信息进行所述扣减操作或反馈失败判断信息至所述用户终端。
6.根据权利要求5所述的并发控制系统,其特征在于,所述系统中的所述处理单元包括:
第二判断模块,分别与所述接受请求单元和所述第二数据库,以用于根据接收的所述通知信息判断所述第二数据库中是否存在待处理所述扣减请求;以及
所述处理单元根据所述第二判断模块输出的第二判断信息对所述待处理扣减请求合并后进行所述扣减操作或停止继续进行所述扣减操作。
7.根据权利要求6所述的并发控制系统,其特征在于,所述系统中的所述接受请求单元包括:
第三判断模块,分别与所述处理结果单元和所述用户终端连接,以用于判断所述处理结果单元中是否反馈所述扣减操作的结果信息至所述接受请求单元;以及
所述接受请求单元根据所述第三判断模块输出的第三判断信息通知所述用户终端所述并发控制系统异常或将所述扣减操作的结果信息发送至所述用户终端。
8.一种库存数据的并发控制方法,其特征在于,基于如权利要求1~7中任意一项所述的并发控制系统,所述方法包括:
所述用户终端发送库存扣减请求至所述接受请求单元,所述接受请求单元接收所述用户终端发送的库存扣减请求;
所述处理单元根据所述库存扣减请求对所述第一数据库中存储的所述库存数据进行扣减操作;
所述处理单元将所述扣减操作的结果信息存储至所述处理结果单元,所述接受请求单元将所述处理结果单元反馈的所述结果信息发送至所述用户终端。
9.根据权利要求8所述的并发控制方法,其特征在于,所述方法还包括:
所述用户终端向所述接受请求单元发送所述库存扣减请求,所述接受请求单元将所述库存扣减请求存储至第二数据库,所述接受请求单元根据接收的所述库存扣减请求发送通知信息至所述处理单元,所述处理单元根据接收的所述通知信息对所述第二数据库中存储的所述库存扣减请求进行合并;并且
所述处理单元根据合并的所述库存扣减请求对所述第一数据库中存储的所述库存数据进行所述扣减操作。
10.根据权利要求9所述的并发控制方法,其特征在于,所述方法还包括:
所述用户终端向所述接受请求单元发送库存扣减请求,所述接受请求单元对接收的所述库存扣减请求进行分类处理后,将分类处理的所述库存扣减请求存储至所述第二数据库;以及
所述处理单元对分类处理后的所述库存扣减请求进行合并,并根据合并的所述库存扣减请求对所述第一数据库中存储的所述库存数据进行所述扣减操作。
11.根据权利要求9所述的并发控制方法,其特征在于,所述方法还包括:
所述用户终端依次通过所述服务器、所述应用层模块发送所述库存扣减请求至所述接受请求单元。
12.根据权利要求11所述的并发控制方法,其特征在于,所述方法中包括:
所述处理单元接收所述通知信息,并合并的所述库存扣减请求;以及
所述处理单元判断所述第一数据库是否能够满足所述库存扣减请求,生成所述第一判断信息;
当所述第一数据库能够满足所述库存扣减请求时,生成成功判断信息,所述处理单元根据所述成功判断信息对所述第一数据库进行扣减操作,否则生成失败判断信息,所述处理单元反馈失败判断信息至所述用户终端。
13.根据权利要求12所述的并发控制方法,其特征在于,所述方法中包括:
所述接受请求单元发送所述通知信息至所述处理单元,所述处理单元根据接收的所述通知信息判断所述第二数据库中是否存在所述待处理所述扣减请求,生成所述第二判断信息;以及
当所述第二数据库中存在所述待处理所述扣减请求时,所述处理单元生成成功判断信息,所述处理单元根据所述成功判断信息对所述待处理扣减请求合并后进行所述扣减操作;否则生成失败判断信息,所述处理单元停止继续进行所述扣减操作。
14.根据权利要求13所述的并发控制方法,其特征在于,所述方法中包括:
所述处理单元将所述扣减操作的结果信息存储至所述处理结果单元,所述接受请求单元按照预设时间定时询问所述处理结果单元所述扣减操作的结果信息;以及
当所述处理结果单元中反馈所述扣减操作的结果信息至所述接受请求单元,则生成所述成功判断信息,所述接受请求单元将所述扣减操作的结果信息发送至所述用户终端,否则,生成所述失败判断信息,所述接受请求单元通知所述用户终端所述并发控制系统异常。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510369616.0A CN105046466A (zh) | 2015-06-29 | 2015-06-29 | 库存数据的并发控制系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510369616.0A CN105046466A (zh) | 2015-06-29 | 2015-06-29 | 库存数据的并发控制系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105046466A true CN105046466A (zh) | 2015-11-11 |
Family
ID=54452993
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510369616.0A Pending CN105046466A (zh) | 2015-06-29 | 2015-06-29 | 库存数据的并发控制系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105046466A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106204232A (zh) * | 2016-07-18 | 2016-12-07 | 苏州华车网络科技有限公司 | 一种处理高并发交互数据请求的系统和方法 |
CN107463593A (zh) * | 2016-12-13 | 2017-12-12 | 阿里巴巴集团控股有限公司 | 库存扣减方法及其设备 |
CN108182617A (zh) * | 2017-11-29 | 2018-06-19 | 商派软件有限公司 | 一种小型高并发扣减库存下单订单方法 |
CN108629653A (zh) * | 2018-03-29 | 2018-10-09 | 客如云科技(成都)有限责任公司 | 一种低延时库存扣减服务系统及方法 |
CN110349068A (zh) * | 2019-07-05 | 2019-10-18 | 上海瀚之友信息技术服务有限公司 | 一种公共服务系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103426072A (zh) * | 2013-07-16 | 2013-12-04 | 无限极(中国)有限公司 | 一种高并发竞争库存的订单处理系统及其处理方法 |
CN104636957A (zh) * | 2015-02-04 | 2015-05-20 | 上海瀚之友信息技术服务有限公司 | 一种处理高并发数据请求的系统和方法 |
-
2015
- 2015-06-29 CN CN201510369616.0A patent/CN105046466A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103426072A (zh) * | 2013-07-16 | 2013-12-04 | 无限极(中国)有限公司 | 一种高并发竞争库存的订单处理系统及其处理方法 |
CN104636957A (zh) * | 2015-02-04 | 2015-05-20 | 上海瀚之友信息技术服务有限公司 | 一种处理高并发数据请求的系统和方法 |
Non-Patent Citations (1)
Title |
---|
何翔 等: "多种技术手段解决订烟系统大并发处理难题", 《信息与电脑(理论版)》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106204232A (zh) * | 2016-07-18 | 2016-12-07 | 苏州华车网络科技有限公司 | 一种处理高并发交互数据请求的系统和方法 |
CN107463593A (zh) * | 2016-12-13 | 2017-12-12 | 阿里巴巴集团控股有限公司 | 库存扣减方法及其设备 |
CN108182617A (zh) * | 2017-11-29 | 2018-06-19 | 商派软件有限公司 | 一种小型高并发扣减库存下单订单方法 |
CN108182617B (zh) * | 2017-11-29 | 2021-06-25 | 商派软件有限公司 | 一种小型高并发扣减库存下单订单方法 |
CN108629653A (zh) * | 2018-03-29 | 2018-10-09 | 客如云科技(成都)有限责任公司 | 一种低延时库存扣减服务系统及方法 |
CN110349068A (zh) * | 2019-07-05 | 2019-10-18 | 上海瀚之友信息技术服务有限公司 | 一种公共服务系统 |
CN110349068B (zh) * | 2019-07-05 | 2023-06-20 | 上海瀚之友信息技术服务有限公司 | 一种公共服务系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105046466A (zh) | 库存数据的并发控制系统及方法 | |
CN102932472B (zh) | 一种数据处理方法以及通信系统 | |
WO2021190087A1 (zh) | 任务执行方法、装置、系统和服务器 | |
CN105959395A (zh) | 一种集群自反馈式负载均衡调度系统及方法 | |
CN105468690A (zh) | 一种库存数据处理方法和装置 | |
CN110796545B (zh) | 一种区块链交易的批处理方法、设备和存储介质 | |
CN104636957A (zh) | 一种处理高并发数据请求的系统和方法 | |
CN107682576A (zh) | 客户进线分配方法、系统、计算机设备及存储介质 | |
CN104657841A (zh) | 快件投递方法、投递处理方法及快递柜终端和服务系统 | |
CN102081626B (zh) | 一种数据查询的方法及查询服务器 | |
KR102546759B1 (ko) | 보행 로봇 기반의 물류박스 추적 시스템, 방법 및 장치와 단말기 및 저장 매체 | |
CN107682572A (zh) | 客户进线分配方法、系统、计算机设备及存储介质 | |
CN103685363A (zh) | 一种高效可靠的多任务处理方法及系统 | |
CN103428260A (zh) | 用于将终端分配到服务器并高效地提示终端的系统及方法 | |
CN106682969A (zh) | 订单管理方法及系统 | |
CN109949129A (zh) | 一种高并发的订单处理系统及方法 | |
CN103036955A (zh) | 多媒体播放终端的监控系统与监控方法 | |
CN110809050A (zh) | 基于流式计算的个性化推送系统及方法 | |
CN107463663B (zh) | 一种轻量级多数据源访问方法 | |
CN115081413A (zh) | 一种报表生成方法、装置、系统、设备及介质 | |
CN109271259A (zh) | 企业服务总线系统、数据处理方法、终端及存储介质 | |
CN104616129A (zh) | 高效盘点系统及方法 | |
CN104021484A (zh) | 基于web的销售渠道与客户关系网络管理方法及系统 | |
CN109245927A (zh) | 云数据系统中的告警系统和方法 | |
CN103747054A (zh) | 网络数据分配装置及具有该网络数据分配装置的系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20151111 |
|
RJ01 | Rejection of invention patent application after publication |