CN109582738A - 一种处理高并发秒杀活动的方法 - Google Patents

一种处理高并发秒杀活动的方法 Download PDF

Info

Publication number
CN109582738A
CN109582738A CN201811467586.7A CN201811467586A CN109582738A CN 109582738 A CN109582738 A CN 109582738A CN 201811467586 A CN201811467586 A CN 201811467586A CN 109582738 A CN109582738 A CN 109582738A
Authority
CN
China
Prior art keywords
kills
movable
high concurrent
request
data
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
CN201811467586.7A
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.)
Guangdong Yali Science And Technology Group Co Ltd
Original Assignee
Guangdong Yali Science And Technology Group 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 Guangdong Yali Science And Technology Group Co Ltd filed Critical Guangdong Yali Science And Technology Group Co Ltd
Priority to CN201811467586.7A priority Critical patent/CN109582738A/zh
Publication of CN109582738A publication Critical patent/CN109582738A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]

Landscapes

  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种处理高并发秒杀活动的方法,具体步骤如下:步骤一:在高并发系统进行初始化时,从数据库中查询出秒杀活动的数据,加载到Redis缓存中;步骤二:选择性响应秒杀请求并发;步骤三:预减库存,当高并发系统收到秒杀请求时,减少Redis缓存中秒杀活动的数据,当秒杀活动的数据量减少到0时,直接返回秒杀结束的信息;步骤四:高并发系统判断商品是否已经秒杀成功,若是,则返回不能重复秒杀的信息;若不是,则将秒杀请求进入RabbitMQ消息队列,进行异步下单,并立即返回秒杀活动的排队队列中;步骤五:秒杀请求从RabbitMQ消息队列中出来,并生成商品订单并更新秒杀活动的数据。本发明的减少对数据库的访问,从而减轻数据库的压力,实现系统对高并发的支持。

Description

一种处理高并发秒杀活动的方法
技术领域
本发明涉及计算机技术及软件领域,尤其涉及一种处理高并发秒杀活动的方法。
背景技术
高并发是目前电商网站常见的营销手段,当大量用户同一时间同时进行抢购时,会导致网站瞬间的并发量非常大,进而使得业务逻辑非常简单的秒杀活动在技术层面上面临着巨大的考验。而最大的瓶颈在于数据库的IO操作,数据处理并发的能力有限,在应对大量并发请求时,数据库无法支撑巨大的压力。
发明内容
本发明的目的在于针对背景技术中的缺陷,提出一种处理高并发秒杀活动的方法,通过使用redis缓存和RabbitMQ消息队列,来减少对数据库的访问,从而减轻数据库的压力,实现系统对高并发的支持。
为达此目的,本发明采用以下技术方案:
一种处理高并发秒杀活动的方法,具体步骤如下:
步骤一:在高并发系统进行初始化的时候,从数据库中查询出秒杀活动的数据,并加载到Redis缓存中;
步骤二:进行内存标记,选择性响应秒杀请求并发;
步骤三:预减库存,当高并发系统收到秒杀请求时,减少Redis缓存中秒杀活动的数据,当秒杀活动的数据量减少到0时,直接返回秒杀结束的信息;
步骤四:高并发系统判断商品是否已经秒杀成功,若是,则返回不能重复秒杀的信息;若不是,则将秒杀请求进入RabbitMQ消息队列,进行异步下单,并立即返回秒杀活动的排队队列中;
步骤五:秒杀请求从RabbitMQ消息队列中出来,并生成商品订单并更新秒杀活动的数据。
优选的,在所述步骤一中,高并发系统初始化时,将秒杀活动的数据,加载到Redis缓存中,秒杀活动数据包括但不限于秒杀商品的库存数据,秒杀请求直接访问Redis缓存但不访问数据库。
优选的,在所述步骤二中,存在大量的秒杀请求并发时,高并发系统选择部分秒杀请求并发进行响应,对于没有响应的秒杀请求并发,返回秒杀失败的信息。
优选的,在所述步骤三中,高并发系统收到秒杀请求时,首先减少Redis缓存中的秒杀活动数据,秒杀活动数据包括但不限于秒杀商品的库存数据,当Redis缓存中的秒杀活动数据减少至0时,将秒杀活动的数据同步到数据库中,并返回秒杀结束的信息。
优选的,在所述步骤四中,使用RabbitMQ消息队列进行异步下单,当Redis缓存中的秒杀活动数据减少至0时,秒杀请求进入RabbitMQ消息队列,并返回秒杀活动的排队队列中。
有益效果:
1、使用Redis缓存和RabbitMQ消息队列,减少对数据库的访问,从而减轻数据库压力,实现系统对高并发的支持;
2、通过将Redis缓存中的数据同步到数据库中,保证数据的正确性,并减少对Redis缓存的访问;
3、通过RabbitMQ消息队列同步数据到数据库,不直接更新数据库,并立即返回用户信息,无须等待数据库处理完成后再返回处理结果,极大提升用户体验度。
附图说明
图1是本发明的流程图。
具体实施方式
下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。
本实施例的一种处理高并发秒杀活动的方法,具体步骤如下:
如图1中的S1所示,步骤一:在高并发系统进行初始化的时候,从数据库中查询出秒杀活动的数据,并加载到Redis缓存中;在所述步骤一中,高并发系统初始化时,将秒杀活动的数据,加载到Redis缓存中,秒杀活动数据包括但不限于秒杀商品的库存数据,秒杀请求直接访问Redis缓存但不访问数据库。
在初始化的时候,将秒杀活动的数据加载到Redis缓存中,但不是全部的秒杀活动的数据,在本实施例中,秒杀活动的数据包括但不限于秒杀商品的库存数据,由于Redis缓存的运算速度比数据库快,因此秒杀请求可以直接访问Redis缓存并进行库存的判断等操作,秒杀请求并不会去访问数据库,从而极大提升高并发系统的并发性能,减少对数据库的访问,减轻数据库的压力。
如图1中的S2所示,步骤二:进行内存标记,选择性响应秒杀请求并发;在所述步骤二中,存在大量的秒杀请求并发时,高并发系统选择部分秒杀请求并发进行响应,对于没有响应的秒杀请求并发,返回秒杀失败的信息。
通过判断商品是否已经秒杀结束,来减少对Redis的访问,过滤掉后续无用的秒杀请求,例如例如10个商品已经秒杀结束,后续所有请求将直接返回秒杀失败,不再进行后续操作,减少对网络的开销,同时并不是所有的秒杀请求并发,高并发系统都会一一响应,只会选择性的响应一部分,对于其他不响应的秒杀请求并发,则会返回秒杀失败的信息,大大减少了对Redis缓存的访问。
如图1中的S3所示,步骤三:预减库存,当高并发系统收到秒杀请求时,减少Redis缓存中秒杀活动的数据,当秒杀活动的数据量减少到0时,直接返回秒杀结束的信息;在所述步骤三中,高并发系统收到秒杀请求时,首先减少Redis缓存中的秒杀活动数据,秒杀活动数据包括但不限于秒杀商品的库存数据,当Redis缓存中的秒杀活动数据减少至0时,将秒杀活动的数据同步到数据库中,并返回秒杀结束的信息。
当高并发系统受到秒杀请求后,是先减少Redis缓存中的秒杀活动的数据,在本实施例中,秒杀活动的数据包括秒杀商品的库存数据,当库存数据减少到0时,Redis缓存将数据同步到数据库中,保证实际数据在数据库中,而不能保存在Redis缓存中,但由于数据库运算速度太慢,支持不了秒杀活动,因此选择将秒杀活动在Redis缓存中进行,后续再将数据同步到数据库中。
如图1中的S4所示,步骤四:高并发系统判断商品是否已经秒杀成功,若是,则返回不能重复秒杀的信息;若不是,则将秒杀请求进入RabbitMQ消息队列,进行异步下单,并立即返回秒杀活动的排队队列中;在所述步骤四中,使用RabbitMQ消息队列进行异步下单,当Redis缓存中的秒杀活动数据减少至0时,秒杀请求进入RabbitMQ消息队列,并返回秒杀活动的排队队列中。
在步骤三中,由于当Redis缓存中的秒杀活动数据减少到0时,会将数据同步到数据库中,便是采用步骤四的RabbitMQ消息队列进行同步,使用RabbitMQ消息队列进行异步下单,当Redis缓存的库存数据扣减成功后,秒杀请求进入RabbitMQ消息队列,返回前端排队中,而不是直接更新数据库的操作。此做法的优点在于用户点击秒杀按钮后能立即收到响应,然后再进行数据库读写操作,而无须等待数据库处理完成后再返回处理结果,极大提升用户体验度。
如图1中的S5所示,步骤五:秒杀请求从RabbitMQ消息队列中出来,并生成商品订单并更新秒杀活动的数据。同时的,由于RabbitMQ消息队列同步数据到数据库需要时间,因此采用异步下单的方式,即用户看到秒杀成功的提升后,但是在订单中却看不到该秒杀成功的订单,要过一段时间,等RabbitMQ消息队列同步数据成功后,才能看到订单。
以上结合具体实施例描述了本发明的技术原理。这些描述只是为了解释本发明的原理,而不能以任何方式解释为对本发明保护范围的限制。基于此处的解释,本领域的技术人员不需要付出创造性的劳动即可联想到本发明的其它具体实施方式,这些方式都将落入本发明的保护范围之内。

Claims (5)

1.一种处理高并发秒杀活动的方法,其特征在于:具体步骤如下:
步骤一:在高并发系统进行初始化的时候,从数据库中查询出秒杀活动的数据,并加载到Redis缓存中;
步骤二:进行内存标记,选择性响应秒杀请求并发;
步骤三:预减库存,当高并发系统收到秒杀请求时,减少Redis缓存中秒杀活动的数据,当秒杀活动的数据量减少到0时,直接返回秒杀结束的信息;
步骤四:高并发系统判断商品是否已经秒杀成功,若是,则返回不能重复秒杀的信息;若不是,则将秒杀请求进入RabbitMQ消息队列,进行异步下单,并立即返回秒杀活动的排队队列中;
步骤五:秒杀请求从RabbitMQ消息队列中出来,并生成商品订单并更新秒杀活动的数据。
2.根据权利要求1所述一种处理高并发秒杀活动的方法,其特征在于:
在所述步骤一中,高并发系统初始化时,将秒杀活动的数据,加载到Redis缓存中,秒杀活动数据包括但不限于秒杀商品的库存数据,秒杀请求直接访问Redis缓存但不访问数据库。
3.根据权利要求1所述一种处理高并发秒杀活动的方法,其特征在于:
在所述步骤二中,存在大量的秒杀请求并发时,高并发系统选择部分秒杀请求并发进行响应,对于没有响应的秒杀请求并发,返回秒杀失败的信息。
4.根据权利要求1所述一种处理高并发秒杀活动的方法,其特征在于:
在所述步骤三中,高并发系统收到秒杀请求时,首先减少Redis缓存中的秒杀活动数据,秒杀活动数据包括但不限于秒杀商品的库存数据,当Redis缓存中的秒杀活动数据减少至0时,将秒杀活动的数据同步到数据库中,并返回秒杀结束的信息。
5.根据权利要求4所述一种处理高并发秒杀活动的方法,其特征在于:
在所述步骤四中,使用RabbitMQ消息队列进行异步下单,当Redis缓存中的秒杀活动数据减少至0时,秒杀请求进入RabbitMQ消息队列,并返回秒杀活动的排队队列中。
CN201811467586.7A 2018-12-03 2018-12-03 一种处理高并发秒杀活动的方法 Pending CN109582738A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811467586.7A CN109582738A (zh) 2018-12-03 2018-12-03 一种处理高并发秒杀活动的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811467586.7A CN109582738A (zh) 2018-12-03 2018-12-03 一种处理高并发秒杀活动的方法

Publications (1)

Publication Number Publication Date
CN109582738A true CN109582738A (zh) 2019-04-05

Family

ID=65926805

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811467586.7A Pending CN109582738A (zh) 2018-12-03 2018-12-03 一种处理高并发秒杀活动的方法

Country Status (1)

Country Link
CN (1) CN109582738A (zh)

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110148034A (zh) * 2019-04-24 2019-08-20 珠海市珠澳跨境工业区好易通科技有限公司 一种网购系统架构优装置及方法
CN111091405A (zh) * 2019-09-12 2020-05-01 达疆网络科技(上海)有限公司 一种解决秒杀促销高并发的实现方案
CN111401752A (zh) * 2020-03-18 2020-07-10 北京泓慧国际能源技术发展有限公司 一种飞轮储能调频共享处理方法、装置、系统及电子设备
CN111507729A (zh) * 2020-04-29 2020-08-07 广东所能网络有限公司 一种基于移动互联网的电子商务风险控制系统及方法
CN112015745A (zh) * 2020-08-19 2020-12-01 北京达佳互联信息技术有限公司 一种数据管理方法及装置
CN112102044A (zh) * 2020-11-10 2020-12-18 成都四方伟业软件股份有限公司 一种消息队列处理高并发秒杀商品的方法、系统及装置
CN112132662A (zh) * 2020-09-28 2020-12-25 广州立白企业集团有限公司 一种商品秒杀方法、装置、计算机设备及存储介质
CN112184326A (zh) * 2020-10-14 2021-01-05 深圳市欢太科技有限公司 处理高并发秒杀活动的方法、高并发系统、终端及计算机可读存储介质
CN112306709A (zh) * 2020-09-27 2021-02-02 北京沃东天骏信息技术有限公司 一种高并发请求的处理方法及装置、服务器、存储介质
CN112416314A (zh) * 2020-01-21 2021-02-26 上海哔哩哔哩科技有限公司 库存动态管理方法及系统
CN112418900A (zh) * 2020-02-13 2021-02-26 上海哔哩哔哩科技有限公司 数据处理方法及计算机设备
CN112817985A (zh) * 2021-02-25 2021-05-18 紫光云技术有限公司 一种基于云主机创建流量控制管理的方法
CN112950307A (zh) * 2021-01-29 2021-06-11 成都环宇知了科技有限公司 一种基于Swoole框架的秒杀方法及系统
CN112954004A (zh) * 2021-01-26 2021-06-11 广州华多网络科技有限公司 秒杀活动服务响应方法及其装置、设备与介质
CN113141264A (zh) * 2020-01-16 2021-07-20 北京京东振世信息技术有限公司 高并发访问处理方法、装置以及存储介质
CN113435931A (zh) * 2021-06-29 2021-09-24 未鲲(上海)科技服务有限公司 业务数据处理方法、装置、计算机设备及存储介质
CN113537852A (zh) * 2020-04-14 2021-10-22 成都鼎桥通信技术有限公司 秒杀处理方法及系统
CN113645323A (zh) * 2021-07-29 2021-11-12 广州鲁邦通智能科技有限公司 一种高并发状态下防止mac地址重复写入的方法、单元和系统
CN117541156A (zh) * 2023-12-15 2024-02-09 西安英兆软件信息有限责任公司 仓库管理数据库数据处理方法及系统

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110148034A (zh) * 2019-04-24 2019-08-20 珠海市珠澳跨境工业区好易通科技有限公司 一种网购系统架构优装置及方法
CN111091405A (zh) * 2019-09-12 2020-05-01 达疆网络科技(上海)有限公司 一种解决秒杀促销高并发的实现方案
CN111091405B (zh) * 2019-09-12 2023-08-08 达疆网络科技(上海)有限公司 一种解决秒杀促销高并发的实现方案
CN113141264A (zh) * 2020-01-16 2021-07-20 北京京东振世信息技术有限公司 高并发访问处理方法、装置以及存储介质
CN113141264B (zh) * 2020-01-16 2023-12-08 北京京东振世信息技术有限公司 高并发访问处理方法、装置以及存储介质
CN112416314A (zh) * 2020-01-21 2021-02-26 上海哔哩哔哩科技有限公司 库存动态管理方法及系统
CN112418900A (zh) * 2020-02-13 2021-02-26 上海哔哩哔哩科技有限公司 数据处理方法及计算机设备
CN111401752A (zh) * 2020-03-18 2020-07-10 北京泓慧国际能源技术发展有限公司 一种飞轮储能调频共享处理方法、装置、系统及电子设备
CN113537852A (zh) * 2020-04-14 2021-10-22 成都鼎桥通信技术有限公司 秒杀处理方法及系统
CN111507729A (zh) * 2020-04-29 2020-08-07 广东所能网络有限公司 一种基于移动互联网的电子商务风险控制系统及方法
CN112015745A (zh) * 2020-08-19 2020-12-01 北京达佳互联信息技术有限公司 一种数据管理方法及装置
CN112015745B (zh) * 2020-08-19 2024-05-17 北京达佳互联信息技术有限公司 一种数据管理方法及装置
CN112306709A (zh) * 2020-09-27 2021-02-02 北京沃东天骏信息技术有限公司 一种高并发请求的处理方法及装置、服务器、存储介质
CN112132662A (zh) * 2020-09-28 2020-12-25 广州立白企业集团有限公司 一种商品秒杀方法、装置、计算机设备及存储介质
CN112132662B (zh) * 2020-09-28 2023-06-20 广州立白企业集团有限公司 一种商品秒杀方法、装置、计算机设备及存储介质
CN112184326A (zh) * 2020-10-14 2021-01-05 深圳市欢太科技有限公司 处理高并发秒杀活动的方法、高并发系统、终端及计算机可读存储介质
CN112102044A (zh) * 2020-11-10 2020-12-18 成都四方伟业软件股份有限公司 一种消息队列处理高并发秒杀商品的方法、系统及装置
CN112954004A (zh) * 2021-01-26 2021-06-11 广州华多网络科技有限公司 秒杀活动服务响应方法及其装置、设备与介质
CN112950307A (zh) * 2021-01-29 2021-06-11 成都环宇知了科技有限公司 一种基于Swoole框架的秒杀方法及系统
CN112817985A (zh) * 2021-02-25 2021-05-18 紫光云技术有限公司 一种基于云主机创建流量控制管理的方法
CN113435931A (zh) * 2021-06-29 2021-09-24 未鲲(上海)科技服务有限公司 业务数据处理方法、装置、计算机设备及存储介质
CN113645323A (zh) * 2021-07-29 2021-11-12 广州鲁邦通智能科技有限公司 一种高并发状态下防止mac地址重复写入的方法、单元和系统
CN117541156A (zh) * 2023-12-15 2024-02-09 西安英兆软件信息有限责任公司 仓库管理数据库数据处理方法及系统

Similar Documents

Publication Publication Date Title
CN109582738A (zh) 一种处理高并发秒杀活动的方法
CN104598459B (zh) 数据库处理、数据访问方法及系统
CN109949135A (zh) 高并发交易请求处理方法、系统、设备及存储介质
CN102902805B (zh) 一种页面访问方法和装置
TWI430176B (zh) 管理持久的方法、裝置及電腦程式
CN107657518A (zh) 一种基于事件的流程处理方法及相关装置和服务器
JP2006252539A5 (zh)
EP2864883A2 (en) Querying for business service processing status information
CN104980468A (zh) 处理业务请求的方法、装置及系统
CN110502546A (zh) 一种数据处理方法及装置
CN107645410A (zh) 一种基于OpenStack云平台的虚拟机管理系统及方法
CN106528154A (zh) 一种在线选座的方法、系统及设备
CN108111554A (zh) 一种访问队列的控制方法及装置
CN105872110A (zh) 一种云平台服务管理方法及装置
CN111461776A (zh) 资源发放的方法、装置、设备及存储介质
CN106815080A (zh) 分布式图数据处理方法和装置
CN108965054A (zh) 一种客户端与服务端数据快速交互方法
CN108959047B (zh) 一种基于业务场景的压力测试方法及装置
CN109191162A (zh) 信息处理方法、系统、装置及存储介质
CN104243619A (zh) 一种分布式移动支付系统
CN109472540A (zh) 业务处理方法和装置
CN115827646A (zh) 索引配置方法、装置和电子设备
CN114356970B (zh) 一种存储系统资源缓存方法及装置
CN108932329A (zh) 一种数据查询处理方法及装置
CN107589907A (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