CN107609924A - 一款短时间高并发抢购场景运用 - Google Patents

一款短时间高并发抢购场景运用 Download PDF

Info

Publication number
CN107609924A
CN107609924A CN201610540497.5A CN201610540497A CN107609924A CN 107609924 A CN107609924 A CN 107609924A CN 201610540497 A CN201610540497 A CN 201610540497A CN 107609924 A CN107609924 A CN 107609924A
Authority
CN
China
Prior art keywords
data
database
order
panic buying
high concurrent
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
Application number
CN201610540497.5A
Other languages
English (en)
Inventor
杨治国
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hunan Yifenxiao E-Commerce Co Ltd
Original Assignee
Hunan Yifenxiao E-Commerce Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hunan Yifenxiao E-Commerce Co Ltd filed Critical Hunan Yifenxiao E-Commerce Co Ltd
Priority to CN201610540497.5A priority Critical patent/CN107609924A/zh
Publication of CN107609924A publication Critical patent/CN107609924A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一款短时间高并发抢购场景运用,包括:1.引入Redis做存。2.在用户抢购开始前频繁刷页面时,系统只从缓存中取商品数据,解耦了数据库查询的压力。3.用户下单时系统只把订单数据存入订单缓存队列后然后告诉用户你的订单正在处理。然后由RedisPub/Sub服务通知Web服务器,服务器把库存订单进行串行化处理,解耦数据库并发下单压力,保证库存可靠。4.支付功能保持原来实现不变。本发明增强了数据的并发性处理,给客户带来良好的体验,避免了高并发情况下给数据库带来的瓶颈问题,避免数据库死锁的问题,确保了数据的一致性和完整性。

Description

一款短时间高并发抢购场景运用
本发明涉及互联网技术领域,尤其涉及一种实现短时间高并发抢购运用法。
在目前的电商企业中,由于售后服务专员的考核指标主要通过工作量进行衡量,进而为了能够提高其自身的考核指标,售后服务专员会在售后服务系统中争抢售后服 务申请数据进行审核和处理。在售后服务系统中,售后服务申请数据的领取属于一种 抢占模式,这就要求售后服务系统的领取环节必须支持短时间高并发处理。
抢购太火爆有时引起站点打不开,崩溃了;还有就是卖出的数量比设置可购买的数量要多。我们可以试想一下抢购时哪些页面会请求最多。抢购之前人们通常会通常刷页面等待,一般在抢购开始前一点时间会频繁刷新抢购倒数的页面或购买详情页面。抢购开始以后前一段时间下单的人会很多。付款并发量相对较小,通常订单在下单后几小时内都能付款,缓解了并发压力。
现有技术中的缺陷表现在如下几个方面:
1在高并发的运用场景下,现有技术方案容易发生数据库死锁,如果死锁处理不 好的话容易导致数据库崩溃,进而导致系统无法使用等严重后果;
2并发性能差,用户体验不好,往往在客户端发起领取请求后,要数秒之后才能 返回结果。
本发明一款短时间高并发抢购场景运用主要采用以下技术方案:
1.引入Redis做存,从所述Redis缓存获取所述待处理数据,并对所述待处理数据进行处理,将处理后的结果数据发送到消息队列;监听所述消息队列,并从所述消息队列中获取所述结果数据,并将所接收的结果数据持久化到所述数据库;删除所述Redis缓存中的所述待处理数据。
2.在用户抢购开始前频繁刷页面时,系统只从缓存中取商品数据,解耦了数据库查询的压力;用于进行所述数据信息和处理后的结果数据的存储; Redis缓存,用于保存所述数据信息中的待处理数据; 第一服务模块,用于接收客户端发送来的数据信息,创建数据库连接,并开启数 据库事务,将所述数据信息持久化到所述数据库,将所述数据信息中的待处理数据写 入所述Redis缓存,之后提交数据库事务; 数据处理模块,用于从所述Redis缓存获取所述待处理数据,并对所述待处理数 据进行处理,将处理后的结果数据发送到消息队列; 第二服务模块,用于监听所述消息队列,并从所述消息队列中获取所述结果数据, 并将所接收的结果数据持久化到所述数据库,之后删除所述Redis缓存中的所述待处 理数据。
3.用户下单时系统只把订单数据存入订单缓存队列后然后告诉用户你的订单正在处理。然后由RedisPub/Sub服务通知Web服务器,服务器把库存订单进行串行化处理,解耦数据库并发下单压力,保证库存可靠。 将所述待处理数据写入Redis缓存时,是将所述待处理数据写入所述存储队列List 中; 从所述Redis缓存获取所述待处理数据,并对所述待处理数据进行处理时,是从 所述存储队列List中取出所述待处理数据以进行处理,将处理后的结果数据转存到与 所述List相对应的Complete List中。然后由RedisPub/Sub服务通知Web服务器,服务器把库存订单进行串行化处理,解耦数据库并发下单压力,保证库存可靠。
本发明一款短时间高并发抢购场景运用有益效果:
抢购太火爆有时引起站点打不开,崩溃了;还有就是卖出的数量比设置可购买的数量要多。那么问题来了:我们如何在设计中如何解决。通常我们需要从设计中考虑以下问题:对高并发,我们如何解耦后端压力,特别是数据库的压力。 何保障库存可靠。
1、 当抢购时哪些页面会请求最多;抢购之前人们通常会通常刷页面等待,一般在抢购开始前一点时间会频繁刷新抢购倒数的页面或购买详情页面。抢购开始以后前一段时间下单的人会很多。付款并发量相对较小,通常订单在下单后几小时内都能付款,缓解了并发压力。针对以上问题及场景,我们做了以下处理,增加限时购缓存订单系统,去支持限时购高并发处理,并保持限时购业务的可靠性。
2、 针对问题做了如下改进:
(1)引入Redis做缓存;
(2)在用户抢购开始前频繁刷页面时,系统只从缓存中取商品数据,解耦了数据库查询的压力;
(3)用户下单时系统只把订单数据存入订单缓存队列后然后告诉用户你的订单正在处理。然后由Redis Pub/Sub服务通知Web服务器,服务器把库存订单进行串行化处理,解耦数据库并发下单压力,保证库存可靠;
(4)支付功能保持原来实现不变。
本发明一款短时间高并发抢购场景运用的具体实施方式:
1、买家前端查询限时购商品数据时只走缓存;
2、卖家后台更新限时购或库存信息时需同步更新数据库及缓存;
3、系统为每个正在开卖的限时购商品库存创建锁,买家对某库存下单时锁住该库存的下单操作,每一个商品库存只允许一个会员下单,下单的订单数据直接加入订单缓存后告诉买家[您的订单正在处理,请稍等]。然后通过Redis Pub/Sub服务通知服务器处理订单,将订单按库存串行化处理,订单处理完成后,则更新限时购订单缓存的处理状态;
4、 买家得知订单正在处理后,则不断查询缓存的订单处理状态。直到获取订单处理结果,下单成功则进行支付页面,失败则提示失败原因并引导买家重新下单;
5、 最后就是在Web服务启动时,需要对限时购订单缓存系统初始化,把商品数据加入缓存中,并处理上次未处理完成的订单。
一款短时间高并发抢购场景运用;对于整个的数据处理过程来说,一方面增强了数 据的并发性处理,能够较快的完成数据的处理,不需要客户较长时间的等待,给 客户带来良好的体验,另一方面,也避免了高并发情况下给数据库带来的瓶颈问 题,避免数据库死锁的问题,也确保了数据的一致性和完整性。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明 的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保 护的范围之内。(一种数据处理方法和系统)。

Claims (3)

1.一款短时间高并发抢购场景运用,其特征在于:1.引入Redis做存; 2.在用户抢购开始前频繁刷页面时,系统只从缓存中取商品数据,解耦了数据库查询的压力; 3.用户下单时系统只把订单数据存入订单缓存队列后然后告诉用户你的订单正在处理,然后由RedisPub/Sub服务通知Web服务器,服务器把库存订单进行串行化处理,解耦数据库并发下单压力,保证库存可靠, 4.支付功能保持原来实现不变;本发明增强了数据的并发性处理,给客户带来良好的体验,避免了高并发情况下给数据库带来的瓶颈问题,避免数据库死锁的问题,确保了数据的一致性和完整性。
2.根据权利要求1所述的一款短时间高并发抢购场景运用,其特征在于:引入Redis做存;从所述Redis缓存获取所述待处理数据,并对所述待处理数据进行处理,将处理后的结果数据发送到消息队列;监听所述消息队列,并从所述消息队列中获取所述结果数据,并将所接收的结果数据持久化到所述数据库;删除所述Redis缓存中的所述待处理数据。
3.根据权利要求1所述的一款短时间高并发抢购场景运用,其特征在于,将所述待处理数据写入Redis缓存时,是将所述待处理数据写入所述存储队列List 中; 从所述Redis缓存获取所述待处理数据,并对所述待处理数据进行处理时,是从 所述存储队列List中取出所述待处理数据以进行处理,将处理后的结果数据转存到与 所述List相对应的CompleteList中;然后由RedisPub/Sub服务通知Web服务器,服务器把库存订单进行串行化处理,解耦数据库并发下单压力,保证库存可靠。
CN201610540497.5A 2016-07-11 2016-07-11 一款短时间高并发抢购场景运用 Pending CN107609924A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610540497.5A CN107609924A (zh) 2016-07-11 2016-07-11 一款短时间高并发抢购场景运用

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610540497.5A CN107609924A (zh) 2016-07-11 2016-07-11 一款短时间高并发抢购场景运用

Publications (1)

Publication Number Publication Date
CN107609924A true CN107609924A (zh) 2018-01-19

Family

ID=61054804

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610540497.5A Pending CN107609924A (zh) 2016-07-11 2016-07-11 一款短时间高并发抢购场景运用

Country Status (1)

Country Link
CN (1) CN107609924A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109034982A (zh) * 2018-09-05 2018-12-18 满金坝(深圳)科技有限公司 千万级订单表中订单信息加速处理方法及装置
CN109308653A (zh) * 2018-10-16 2019-02-05 翟红鹰 避免客户端访问服务器拥堵的方法、终端及存储介质
CN110135925A (zh) * 2018-02-08 2019-08-16 北京京东尚科信息技术有限公司 订单处理系统、方法和装置
CN111178998A (zh) * 2018-11-09 2020-05-19 商派软件有限公司 一种用于高访问量的秒杀平台及方法
CN111507729A (zh) * 2020-04-29 2020-08-07 广东所能网络有限公司 一种基于移动互联网的电子商务风险控制系统及方法
CN114723526A (zh) * 2022-04-08 2022-07-08 湖南快乐阳光互动娱乐传媒有限公司 订单的处理方法、装置、服务器及计算机存储介质

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110135925A (zh) * 2018-02-08 2019-08-16 北京京东尚科信息技术有限公司 订单处理系统、方法和装置
CN110135925B (zh) * 2018-02-08 2023-09-26 北京京东尚科信息技术有限公司 订单处理系统、方法和装置
CN109034982A (zh) * 2018-09-05 2018-12-18 满金坝(深圳)科技有限公司 千万级订单表中订单信息加速处理方法及装置
CN109034982B (zh) * 2018-09-05 2022-06-17 满金坝(深圳)科技有限公司 千万级订单表中订单信息加速处理方法及装置
CN109308653A (zh) * 2018-10-16 2019-02-05 翟红鹰 避免客户端访问服务器拥堵的方法、终端及存储介质
CN109308653B (zh) * 2018-10-16 2022-04-22 牡丹国际商品交易中心有限公司 避免客户端访问服务器拥堵的方法、终端及存储介质
CN111178998A (zh) * 2018-11-09 2020-05-19 商派软件有限公司 一种用于高访问量的秒杀平台及方法
CN111507729A (zh) * 2020-04-29 2020-08-07 广东所能网络有限公司 一种基于移动互联网的电子商务风险控制系统及方法
CN114723526A (zh) * 2022-04-08 2022-07-08 湖南快乐阳光互动娱乐传媒有限公司 订单的处理方法、装置、服务器及计算机存储介质

Similar Documents

Publication Publication Date Title
CN107609924A (zh) 一款短时间高并发抢购场景运用
US11281665B2 (en) Read/write split database query routing
CN103886079B (zh) 一种数据处理方法和系统
US11373224B2 (en) Business event processing
US9916568B2 (en) Caching item information in a cloud-based point of sale system
US9459860B2 (en) Mixed mode session management
US7788316B2 (en) Efficient server handling of multiple requests from a web browser
US20150206116A1 (en) Method for synchronizing orders between remote and central web-base point of sale systems
CN107766080B (zh) 事务消息处理方法、装置、设备及系统
US20180039937A1 (en) Managing information about inventory
WO2020192328A1 (zh) 基于区块链的订单状态更新方法、装置、设备及存储介质
CN105096122A (zh) 一种分片式交易匹配方法和装置
WO2020000798A1 (zh) 基于区块链的游戏数据处理方法、系统及计算机设备
CN111813868B (zh) 数据同步方法及装置
WO2023056771A1 (zh) 一种信息处理方法、装置、设备及计算机可读存储介质
CN111179080A (zh) 一种订单处理方法和订单处理装置
CN111177158B (zh) 一种订单与库存匹配一致的方法
US11503108B1 (en) Systems and methods of distributed processing
US11341474B2 (en) Systems, devices, and methods for network management at a point of sale (POS) device
US20070179859A1 (en) Blocking orders during order processing
US20240111547A1 (en) Systems and methods of distributed processing
WO2014186699A1 (en) Transferring transactions between local and central point of service servers
US11763248B2 (en) Distributed ledger platform for improved return logistics
US11483380B1 (en) Systems and methods of distributed processing
US11915037B2 (en) Systems and methods of validating commands sent from processing instances to a matching engine in a distributed processing environment

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20180119