CN105653695A - 一种并发数据请求处理方法及装置 - Google Patents
一种并发数据请求处理方法及装置 Download PDFInfo
- Publication number
- CN105653695A CN105653695A CN201511024664.2A CN201511024664A CN105653695A CN 105653695 A CN105653695 A CN 105653695A CN 201511024664 A CN201511024664 A CN 201511024664A CN 105653695 A CN105653695 A CN 105653695A
- Authority
- CN
- China
- Prior art keywords
- request
- data
- concurrent
- identification information
- unique identification
- 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
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/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种并发数据请求处理方法及装置,用以解决现有技术中由于数据库读和写的时间差造成数据重复入库的问题,其中,并发数据请求的处理方法,包括:记录接收到的注册请求的唯一标识信息;在接收到并发的数据请求时,根据所述唯一标识信息判断并发的数据请求是否为相同的数据请求;在确定并发的数据请求是相同的数据请求的情况下,仅处理并发的数据请求中的一个,该方案避免了高并发请情况下冗余数据的产生,保证了数据的准确性。
Description
技术领域
本发明涉及数据库领域,特别是涉及一种并发数据请求处理方法及装置。
背景技术
数据库的事务(Transaction)是并发控制的单位,是用户定义的一个操作序列。这些操作如果执行就都执行,如果不执行就都不执行是一个不可分割的工作单位。通过事务,SQLServer能将逻辑相关的一组操作绑定在一起,以便服务器保持数据的完整性。事务通常是以BEGINTRANSACTION开始,以COMMIT或ROLLBACK结束。COMMIT表示提交,即提交事务的所有操作。具体地说就是将事务中所有对数据库的更新写回到磁盘上的物理数据库中去,事务正常结束。ROLLBACK表示回滚,即在事务运行的过程中发生了某种故障,事务不能继续进行,系统将事务中对数据库的所有以完成的操作全部撤消,滚回到事务开始的状态。一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。
在数据库的使用中,用户可以使用手机号、邮箱以及自定义的用户名来注册用户,每个用户可以有两种用户类型,分别为云平台用户和官网用户。云平台的用户只能通过注册使用云平台数据库,而官网用户既可以通过注册也可以通过登录实现入云平台数据库。因而数据入库之前先从用户表中查询是否已经有注册数据,有则返回提示,没有则数据入库,然而,在数据请求高并发的情况下,由于数据库读和写的时间差,会造成数据重复入库。
发明内容
本发明提供一种并发数据请求处理方法及装置,用以解决现有技术中由于数据库读和写的时间差造成数据重复入库的问题。
根据本发明的第二个方面,提供了一种并发数据请求的处理方法,包括:记录接收到的注册请求的唯一标识信息;在接收到并发的数据请求时,根据唯一标识信息判断并发的数据请求是否为相同的数据请求;在确定并发的数据请求是相同的数据请求的情况下,仅处理并发的数据请求中的一个。
其中,上述唯一标识信息包括:注册身份标识ID以及用户类型。
其中,记录接收到的注册请求的唯一标识信息,包括:将接收到的数据库注册请求的注册ID以及用户类型数据插入到预先设置的数据库表中。
其中,数据库表为仅包含一列的存储引擎为InnoDB的InnoDB表中,且该列为InnoDB表的主键。
其中,记录接收到的注册请求的唯一标识信息,包括:在接收到登陆请求时,在登陆验证通过后,判断该登陆请求是否是已经沉淀过的数据;如果是,则根据已经沉淀过的数据返回登陆结果,如果否,则记录登陆请求的唯一标识信息。
根据本发明的第二个方面,提供了一种并发数据请求的处理装置,包括:记录模块,用于记录接收到的注册请求的唯一标识信息;判断模块,用于在接收到并发的数据请求时,根据唯一标识信息判断并发的数据请求是否为相同的数据请求;处理模块,用于在确定并发的数据请求是相同的数据请求的情况下,仅处理并发的数据请求中的一个。
其中,上述唯一标识信息包括:注册身份标识ID以及用户类型。
其中,上述记录模块具体用于:将接收到的数据库注册请求的注册ID以及用户类型数据插入到预先设置的数据库表中。
其中,上述数据库表为仅包含一列的存储引擎为InnoDB的InnoDB表中,且该列为InnoDB表的主键。
其中,上述记录模块,包括:判断模块,用于在接收到登陆请求时,在登陆验证通过后,判断该登陆请求是否是已经沉淀过的数据;记录模块,用于在判断模块的判断结果为是时,根据已经沉淀过的数据返回登陆结果,在判断模块的判断结果为否时,记录登陆请求的唯一标识信息。
本发明有益效果如下:
本发明实施例提供的方案根据数据请求的唯一标识来确定接收到的并发请求是否属于相同的请求,从而实现在并发请求存在相同请求的情况下仅处理并发请求中的一个,从而避免了高并发请情况下冗余数据的产生,保证了数据的准确性。
附图说明
图1是本发明实施例1中提供的并发数据请求处理方法的流程图;
图2是本发明实施例2中提供的第一种并发数据请求处理方法的流程图;
图3是本发明实施例2中提供的第二种并发数据请求处理方法的流程图;
图4是本发明实施例3中提供的并发数据起球处理装置的结构框图。
具体实施方式
为了解决现有技术中由于数据库读和写的时间差造成数据重复入库的问题,本发明提供了一种并发数据请求处理方法及装置,以下结合附图以及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不限定本发明。
实施例1
本实施例提供了一种并发数据请求的处理方法,图1是该方法的流程图,如图1所示,该方法包括如下步骤:
步骤101:记录接收到的注册请求的唯一标识信息,优选的,该唯一标识信息具体可以包括:注册ID以及用户类型,其中,用户类型具体可以包括官方网站用户、平台用户以及第三方用户。
记录接收到的数据库注册请求的唯一标识信息具体可以包括:在接收到登陆请求时,在登陆验证通过后,判断该登陆请求是否是已经沉淀过的数据(在进行判断之前,系统并不知晓该请求是登陆请求或注册请求,如果该请求的数据在之前未沉淀过,则可以认为该请求是注册请求,如果该请求的数据之前沉淀过,则认为该请求是登陆请求);如果是,则根据已经沉淀过的数据返回登陆结果,如果否,则记录请求的唯一标识信息。
具体地,记录接收到的数据库注册请求的唯一标识信息,包括:将接收到的数据库注册请求的注册ID以及用户类型数据插入到预先设置的数据库表,在本实施例中,优选的,数据库表为仅包含一列的存储引擎为InnoDB的InnoDB表中,InnoDB,是一种事务型数据库的引擎,是MySQL的数据库引擎之一,为MySQLAB发布binary的标准之一,且该列为InnoDB的主键,主键:表中经常有一个列或多列的组合,其值能唯一地标识表中的每一行。这样的一列或多列称为表的主键,通过它可强制表的实体完整性。当创建或更改表时可通过定义PRIMARYKEY约束来创建主键。一个表只能有一个PRIMARYKEY约束,而且PRIMARYKEY约束中的列不能接受空值。由于PRIMARYKEY约束确保唯一数据,所以经常用来定义标识列。
步骤102:在接收到并发的数据请求时,根据唯一标识信息判断并发的数据请求是否为相同的数据请求;
在用户进行登录请求时,由于用户误操作,连续提交同一登录信息,或由于网络延迟,均能够造成并发的相同数据请求,故在接收到并发数据后,需要根据之前记录的注册请求的唯一标识信息来判断并发的数据请求是否为同一数据请求。
步骤103:在确定并发的数据请求是相同的数据请求的情况下,则仅处理并发的数据请求中的一个。
在该步骤中,在判断并发的数据请求为相同数据请求后,会将并发的数据请求拦截,仅处理其中一个,然后将数据沉淀到平台。
实施例2
本实施例分别以用户当前提交的请求为注册请求以及登陆请求来对本发明提出的并发数据请求处理方法进行说明:
在用户当前提交的请求为注册请求的情况下,如图2所示,本实施例并发数据请求处理方式包括如下操作:
创建一张约束表,该表为只包含一列的InnoDB表,该列为表的主键;
平台接收到来自用户的注册请求时,向表中插入注册ID以及用户类型组合形成的唯一约束信息(同上述唯一标识信息);
当相同的数据请求并发到来时,由于数据库唯一主键约束,将相同数据的并发拦截,只处理其中之一,最终将数据沉淀到平台。
在用户当前提交的请求为登陆请求的情况下,如图3所示,本实施例并发数据请求处理方式包括如下操作:
平台接收到来自用户的登录请求时,请求官网的登录接口进行登陆验证,在验证通过之后判断该请求的数据是否已经是沉淀数据。
当判断是新数据时,向约束表中插入登录ID以及用户类型组合形成的唯一约束信息。
当接收到来自用户的相同的并发数据请求时,由于数据库唯一主键约束,会将相同的并发数据请求拦截,只处理其中之一,将数据沉淀到平台,其余请求经过短暂延迟后查询沉淀数据并返回给用户。
实施例3
本实施例提供了一种并发数据请求处理装置,该装置用于实现上述实施例1以及实施例2提供的并发数据请求方法,图4是该装置的结构框图,如图4所示,该装置40包括如下组成部分:
记录模块41,用于记录接收到的数据库注册请求的唯一标识信息;其中,该唯一标识信息包括:注册ID以及用户类型。
判断模块42,用于在接收到并发的数据请求时,根据唯一标识信息判断并发的数据请求是否为相同的数据请求;
处理模块43,用于在确定并发的数据请求是相同的数据请求的情况下,则仅处理并发的数据请求中的一个。
其中,上述记录模块41具体用于:将接收到的数据库注册请求的注册ID以及用户类型数据插入到预先设置的数据库表。优选的,数据库表为仅包含一列的存储引擎为InnoDB的InnoDB表中,且该列为InnoDB表的主键。
更进一步的,上述记录模块41具体可以包括:判断单元,用于在接收到登陆请求时,在登陆验证通过后,判断该登陆请求是否是已经沉淀过的数据;记录单元,用于在判断模块的判断结果为是时,根据已经沉淀过的数据返回登陆结果,在判断模块的判断结果为否时,记录请求的唯一标识信息。
本发明实施例提供的方案根据数据请求的唯一标识来确定接收到的并发请求是否属于相同的请求,从而实现在并发请求存在相同请求的情况下仅处理并发请求中的一个,从而避免了高并发请情况下冗余数据的产生,保证了数据的准确性。
尽管为示例目的,已经公开了本发明的优选实施例,本领域的技术人员将意识到各种改进、增加和取代也是可能的,因此,本发明的范围应当不限于上述实施例。
Claims (10)
1.一种并发数据请求的处理方法,其特征在于,包括:
记录接收到的注册请求的唯一标识信息;
在接收到并发的数据请求时,根据所述唯一标识信息判断并发的数据请求是否为相同的数据请求;
在确定并发的数据请求是相同的数据请求的情况下,仅处理并发的数据请求中的一个。
2.根据权利要求1所述的方法,其特征在于,所述唯一标识信息包括:
注册身份标识ID以及用户类型。
3.根据权利要求1所述的方法,其特征在于,所述记录接收到的注册请求的唯一标识信息,包括:
将接收到的数据库注册请求的注册ID以及用户类型数据插入到预先设置的数据库表中。
4.根据权利要求3所述的方法,其特征在于,所述数据库表为仅包含一列的存储引擎为InnoDB的InnoDB表中,且该列为所述InnoDB表的主键。
5.根据权利要求1至4任意一项所述的方法,其特征在于,所述记录接收到的注册请求的唯一标识信息,包括:
在接收到登陆请求时,在登陆验证通过后,判断该登陆请求是否是已经沉淀过的数据;
如果是,则根据已经沉淀过的数据返回登陆结果,如果否,则记录所述登陆请求的唯一标识信息。
6.一种并发数据请求的处理装置,其特征在于,包括:
记录模块,用于记录接收到的注册请求的唯一标识信息;
判断模块,用于在接收到并发的数据请求时,根据所述唯一标识信息判断并发的数据请求是否为相同的数据请求;
处理模块,用于在确定并发的数据请求是相同的数据请求的情况下,仅处理并发的数据请求中的一个。
7.根据权利要求6所述的装置,其特征在于,所述唯一标识信息包括:
注册身份标识ID以及用户类型。
8.根据权利要求6所述的装置,其特征在于,所述记录模块具体用于:
将接收到的数据库注册请求的注册ID以及用户类型数据插入到预先设置的数据库表中。
9.根据权利要求8所述的装置,其特征在于,所述数据库表为仅包含一列的存储引擎为InnoDB的InnoDB表中,且该列为所述InnoDB表的主键。
10.根据权利要求6至9任意一项所述的装置,其特征在于,所述记录模块,包括:
判断模块,用于在接收到登陆请求时,在登陆验证通过后,判断该登陆请求是否是已经沉淀过的数据;
记录模块,用于在所述判断模块的判断结果为是时,根据已经沉淀过的数据返回登陆结果,在所述判断模块的判断结果为否时,记录所述登陆请求的唯一标识信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511024664.2A CN105653695A (zh) | 2015-12-30 | 2015-12-30 | 一种并发数据请求处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511024664.2A CN105653695A (zh) | 2015-12-30 | 2015-12-30 | 一种并发数据请求处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105653695A true CN105653695A (zh) | 2016-06-08 |
Family
ID=56490877
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201511024664.2A Pending CN105653695A (zh) | 2015-12-30 | 2015-12-30 | 一种并发数据请求处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105653695A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106897345A (zh) * | 2016-07-22 | 2017-06-27 | 阿里巴巴集团控股有限公司 | 一种数据存储的方法及装置 |
CN112527826A (zh) * | 2019-09-19 | 2021-03-19 | 北京京东振世信息技术有限公司 | 处理请求的方法和装置 |
CN113660201A (zh) * | 2021-07-08 | 2021-11-16 | 上海二三四五网络科技有限公司 | 一种高并发主键冲突的控制方法及控制装置 |
-
2015
- 2015-12-30 CN CN201511024664.2A patent/CN105653695A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106897345A (zh) * | 2016-07-22 | 2017-06-27 | 阿里巴巴集团控股有限公司 | 一种数据存储的方法及装置 |
CN112527826A (zh) * | 2019-09-19 | 2021-03-19 | 北京京东振世信息技术有限公司 | 处理请求的方法和装置 |
CN113660201A (zh) * | 2021-07-08 | 2021-11-16 | 上海二三四五网络科技有限公司 | 一种高并发主键冲突的控制方法及控制装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109791591B (zh) | 经由区块链进行身份和凭证保护及核实的方法和系统 | |
CN107633016B (zh) | 数据处理方法及装置和电子设备 | |
CN111104392B (zh) | 一种数据库迁移方法、装置、电子设备及存储介质 | |
EP3779760B1 (en) | Blockchain-based data processing method and apparatus, and electronic device | |
CN110188103A (zh) | 数据对账方法、装置、设备和存储介质 | |
CN112685391B (zh) | 一种服务数据迁移方法、装置、计算机设备和存储介质 | |
CN105653695A (zh) | 一种并发数据请求处理方法及装置 | |
CN110599277A (zh) | 一种库存扣减方法和装置 | |
WO2016101759A1 (zh) | 一种数据路由方法、数据管理装置和分布式存储系统 | |
CN114741384A (zh) | 一种患者信息处理方法及其装置、计算机可读存储介质 | |
CN112835885A (zh) | 一种分布式表格存储的处理方法、装置及系统 | |
CN105892954A (zh) | 基于多副本的数据存储方法和装置 | |
CN111988217B (zh) | 数据交互方法、装置、电子设备及存储介质 | |
CN111127088B (zh) | 实现最终一致性的方法、装置、计算机设备及存储介质 | |
CN109542860B (zh) | 基于hdfs的业务数据管理方法、终端设备 | |
CN115390939B (zh) | 业务处理方法和系统 | |
WO2023092986A1 (zh) | 基于分布式身份标识的数据跨链转移和系统 | |
CN109828832A (zh) | 基于区块链的数据流通方法、装置、设备和介质 | |
CN110263060A (zh) | 一种erp电子附件管理方法及计算机设备 | |
CN105447121A (zh) | 一种数据库集群重建连接高可用的方法 | |
CN115495620A (zh) | 基于图结构的数据管理方法及相关设备 | |
CN115309334A (zh) | 磁盘管理方法、装置、设备及存储介质 | |
CN114971576A (zh) | 一种企业平台的管理方法、系统、终端设备及存储介质 | |
CN107704557B (zh) | 操作互斥数据的处理方法、装置、计算机设备和存储介质 | |
CN115222390A (zh) | 安全检查方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160608 |
|
WD01 | Invention patent application deemed withdrawn after publication |