CN103825835A - 一种互联网高并发秒杀系统 - Google Patents
一种互联网高并发秒杀系统 Download PDFInfo
- Publication number
- CN103825835A CN103825835A CN201310616248.6A CN201310616248A CN103825835A CN 103825835 A CN103825835 A CN 103825835A CN 201310616248 A CN201310616248 A CN 201310616248A CN 103825835 A CN103825835 A CN 103825835A
- Authority
- CN
- China
- Prior art keywords
- user
- queue
- seckilling
- application server
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种互联网高并发秒杀系统,包括用户层、负载均衡控制层、业务应用层和数据接口层,用户秒杀请求由用户层发出,之后负载均衡控制层通过反向代理来实现负载均衡并将用户秒杀请求分配给业务应用层中的其中一台应用服务器,应用服务器判断符合秒杀资格的用户进入数据接口层中基于memcached构建的参与秒杀用户队列和参与中奖用户队列,应用服务器通过获取队列锁,取得处理队列数据的资格,完成队列中数据的处理,从而完成秒杀的处理,最后,应用服务器将结果返回给用户。本发明通过部署多个秒杀系统,并使用F5/Nginx反向代理来实现负载均衡,能够顺利处理互联网高并发的秒杀请求,系统可靠性高。
Description
技术领域
本发明涉及网络通信领域,尤其是一种互联网高并发秒杀系统。
背景技术
秒杀具有时间短,并发访问量大的特点,用户在秒杀开始前,通过不停的刷新浏览器页面以保证不会错过秒杀,这些请求如果按照一般的网站应用架构,访问应用服务器、连接数据库,会对应用服务器、数据库服务器造成极大的负载压力。
发明内容
有鉴于此,本发明的目的是提供一种互联网高并发秒杀系统。
本发明采用以下方案实现:一种互联网高并发秒杀系统,其特征在于:包括用户层、负载均衡控制层、业务应用层和数据接口层,用户秒杀请求由用户层发出,之后负载均衡控制层通过反向代理来实现负载均衡并将用户秒杀请求分配给业务应用层中的其中一台应用服务器,应用服务器判断符合秒杀资格的用户进入数据接口层中基于memcached构建的参与秒杀用户队列和参与中奖用户队列,应用服务器通过获取队列锁,取得处理队列数据的资格,完成队列中数据的处理,从而完成秒杀的处理,最后,应用服务器将结果返回给用户。
在本发明一实施例中,所述用户层的使用者为Web用户或Wap用户。
在本发明一实施例中,所述数据接口层包括数据库和memcached缓存服务器。
在本发明一实施例中,所述应用服务器在获取队列数据,构建或获取参与中奖用户队列,判定中奖用户后,释放获取的锁,多个应用服务器重新获取处理队列数据的锁。
本发明通过部署多个秒杀系统,并使用F5/ Nginx反向代理来实现负载均衡,通过Memcached与业务应用层集成协同工作,来实现对秒杀场景的实现,能够顺利处理互联网高并发的秒杀请求,系统可靠性高。
为使本发明的目的、技术方案及优点更加清楚明白,以下将通过具体实施例和相关附图,对本发明作进一步详细说明。
附图说明
图1是本发明系统结构原理框图。
图2是本发明秒杀流程原理图。
具体实施方式
如图1和图2所示,本发明提供一种互联网高并发秒杀系统,包括用户层、负载均衡控制层、业务应用层和数据接口层,用户秒杀请求由用户层发出,之后负载均衡控制层通过(F5/Nginx)反向代理来实现负载均衡并将用户秒杀请求分配给业务应用层中的其中一台应用服务器(秒杀系统),应用服务器(使用Token)判断符合秒杀资格的用户进入数据接口层中基于memcached构建的参与秒杀用户队列和参与中奖用户队列,应用服务器通过获取队列锁,取得处理队列数据的资格,完成队列中数据的处理,从而完成秒杀的处理,最后,应用服务器将结果返回给用户。优选的,所述用户层的使用者为Web用户或Wap用户,所述数据接口层包括数据库和memcached缓存服务器,所述应用服务器在获取队列数据,构建或获取参与中奖用户队列,判定中奖用户后,释放获取的锁,多个应用服务器重新获取处理队列数据的锁。
本发明高并发、负载均衡下的数据处理,基于memcached缓存设计、队列设计、锁设计。基于memcached的队列构建,将参与中奖的用户存储在memcached缓存中。在负载均衡下秒杀算法的实现,多个应用服务器通过竞争memcached构建的线程锁,获取处理队列数据的资格(获取队列锁)。应用服务器在获取队列数据,对请求数据鉴权处理,构建参与秒杀用户队列和参与中奖用户队列,判定中奖用户后,异步持久化队列数据;返回处理结果给用户,释放获取的线程锁,多个应用服务器重新获取处理队列数据的线程锁。
Memcached缓存技术:
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载,使用三十二位元的循环冗余校验(CRC-32)计算键值后,将资料分散在不同机器上。当表给满了以后,接下来新增的资料会以LRU机制替换掉。Memcached中保存的数据都存储在memcached内置的内存存储空间中,以提高性能。
Memcached队列:
队列数组:队列使用数组Q[1…m]来存储,数组的上界即是队列所容许的最大容量。在队列的运算中需设置两个指针:head;队头指针,指向实际队头元素的前一个未知;tail,队列指针,指向实际队尾所在的位置。一般情况下,两个指针的初始值为0,这时队列为空,没有元素。
动态队列数组:通过变动memcached中队列最大值,来扩容队列。队列中的数据存储在memcached的内存中使用散列方式存储。每个存储的对象都有唯一的下标标识该对象在队列中的排序位置。
Memcached锁:
通过Memcached里赋值指定标识,获得标识的为取得该锁。系统轮询获取Memcached里的标识。获取到则处理对应业务,处理业务完成后,移除该标识。
异步持久化:
通过系统线程调度,将memcached里的队列数据进行持久化到数据库。
上列较佳实施例,对本发明的目的、技术方案和优点进行了进一步详细说明,所应理解的是,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种互联网高并发秒杀系统,其特征在于:包括用户层、负载均衡控制层、业务应用层和数据接口层,用户秒杀请求由用户层发出,之后负载均衡控制层通过反向代理来实现负载均衡并将用户秒杀请求分配给业务应用层中的其中一台应用服务器,应用服务器判断符合秒杀资格的用户进入数据接口层中基于memcached构建的参与秒杀用户队列和参与中奖用户队列,应用服务器通过获取队列锁,取得处理队列数据的资格,完成队列中数据的处理,从而完成秒杀的处理,最后,应用服务器将结果返回给用户。
2.根据权利要求1所述的一种互联网高并发秒杀系统,其特征在于:所述用户层的使用者为Web用户或Wap用户。
3.根据权利要求1所述的一种互联网高并发秒杀系统,其特征在于:所述数据接口层包括数据库和memcached缓存服务器。
4.根据权利要求1所述的一种互联网高并发秒杀系统,其特征在于:所述应用服务器在获取队列数据,构建或获取参与中奖用户队列,判定中奖用户后,释放获取的锁,多个应用服务器重新获取处理队列数据的锁。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310616248.6A CN103825835A (zh) | 2013-11-29 | 2013-11-29 | 一种互联网高并发秒杀系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310616248.6A CN103825835A (zh) | 2013-11-29 | 2013-11-29 | 一种互联网高并发秒杀系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103825835A true CN103825835A (zh) | 2014-05-28 |
Family
ID=50760672
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310616248.6A Pending CN103825835A (zh) | 2013-11-29 | 2013-11-29 | 一种互联网高并发秒杀系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103825835A (zh) |
Cited By (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104636957A (zh) * | 2015-02-04 | 2015-05-20 | 上海瀚之友信息技术服务有限公司 | 一种处理高并发数据请求的系统和方法 |
CN104991818A (zh) * | 2015-06-30 | 2015-10-21 | 北京奇虎科技有限公司 | 一种数据处理方法、服务器和系统 |
CN105139245A (zh) * | 2015-08-28 | 2015-12-09 | 江苏讯狐信息科技有限公司 | 一种互联网电子商务系统 |
CN105786629A (zh) * | 2016-02-02 | 2016-07-20 | 四川长虹电器股份有限公司 | 基于消息队列的数据处理方法 |
CN106170016A (zh) * | 2016-07-28 | 2016-11-30 | 深圳市创梦天地科技有限公司 | 一种处理高并发数据请求的方法和系统 |
CN106210019A (zh) * | 2016-07-04 | 2016-12-07 | 安徽天达网络科技有限公司 | 一种大型高并发web应用系统 |
CN106202505A (zh) * | 2016-07-20 | 2016-12-07 | 北京京东尚科信息技术有限公司 | 数据处理方法及其系统 |
CN106302608A (zh) * | 2015-06-08 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 一种信息处理方法及装置 |
CN106919441A (zh) * | 2017-02-08 | 2017-07-04 | 武汉奇米网络科技有限公司 | 一种电子商务平台高并发事件的处理方法及系统 |
CN107025270A (zh) * | 2017-03-09 | 2017-08-08 | 珠海昊星自动化系统有限公司 | 一种分布式高性能高并发大数据系统 |
CN107203890A (zh) * | 2016-03-17 | 2017-09-26 | 阿里巴巴集团控股有限公司 | 凭证数据发放方法、装置及系统 |
CN107273225A (zh) * | 2017-06-16 | 2017-10-20 | 深圳易嘉恩科技有限公司 | 基于消息队列的高并发抢单功能实现方法 |
CN107277088A (zh) * | 2016-04-06 | 2017-10-20 | 泰康保险集团股份有限公司 | 高并发业务请求处理系统及方法 |
CN107483531A (zh) * | 2017-06-20 | 2017-12-15 | 华迪计算机集团有限公司 | 一种海量数据高并发接收解决方法及系统 |
CN108090058A (zh) * | 2016-11-21 | 2018-05-29 | 广东亿迅科技有限公司 | 一种高并发活动交互方法 |
CN108512938A (zh) * | 2018-04-17 | 2018-09-07 | 阿里巴巴集团控股有限公司 | 一种数据请求的处理方法、装置及电子设备 |
CN108833505A (zh) * | 2018-05-31 | 2018-11-16 | 康键信息技术(深圳)有限公司 | 数据请求处理方法、服务器及存储介质 |
CN109345353A (zh) * | 2018-10-15 | 2019-02-15 | 广东鸭梨云信息科技有限公司 | 一种基于关系型分布式数据库的新型秒杀方法 |
CN111049933A (zh) * | 2019-12-28 | 2020-04-21 | 杭州电力设备制造有限公司 | 一种电力关键节点温度的监测系统 |
CN111176824A (zh) * | 2018-11-12 | 2020-05-19 | 商派软件有限公司 | 一种处理高并发活动报名的方法 |
CN112102044A (zh) * | 2020-11-10 | 2020-12-18 | 成都四方伟业软件股份有限公司 | 一种消息队列处理高并发秒杀商品的方法、系统及装置 |
CN112184326A (zh) * | 2020-10-14 | 2021-01-05 | 深圳市欢太科技有限公司 | 处理高并发秒杀活动的方法、高并发系统、终端及计算机可读存储介质 |
CN112738252A (zh) * | 2020-12-30 | 2021-04-30 | 昆山巨星行动电子商务有限公司 | 一种电商高并发秒杀系统 |
CN113034207A (zh) * | 2021-04-20 | 2021-06-25 | 青岛冠成软件有限公司 | 一种抽奖信息处理方法、装置、服务器和可读存储介质 |
CN113141337A (zh) * | 2020-01-19 | 2021-07-20 | 上海静客网络科技有限公司 | 线上抢购系统高并发场景处理方法 |
CN115118612A (zh) * | 2022-05-12 | 2022-09-27 | 曙光信息产业股份有限公司 | 资源配额管理方法、装置、计算机设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070136289A1 (en) * | 2005-12-14 | 2007-06-14 | Intel Corporation | Lock elision with transactional memory |
CN103268321A (zh) * | 2013-04-19 | 2013-08-28 | 中国建设银行股份有限公司 | 高并发交易数据处理方法和装置 |
CN103312624A (zh) * | 2012-03-09 | 2013-09-18 | 腾讯科技(深圳)有限公司 | 一种消息队列服务系统和方法 |
-
2013
- 2013-11-29 CN CN201310616248.6A patent/CN103825835A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070136289A1 (en) * | 2005-12-14 | 2007-06-14 | Intel Corporation | Lock elision with transactional memory |
CN103312624A (zh) * | 2012-03-09 | 2013-09-18 | 腾讯科技(深圳)有限公司 | 一种消息队列服务系统和方法 |
CN103268321A (zh) * | 2013-04-19 | 2013-08-28 | 中国建设银行股份有限公司 | 高并发交易数据处理方法和装置 |
Non-Patent Citations (1)
Title |
---|
李军锋,等.: "高并发Web航空票务秒杀系统的设计与实现", 《计算机工程与设计》 * |
Cited By (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104636957B (zh) * | 2015-02-04 | 2018-07-24 | 上海瀚之友信息技术服务有限公司 | 一种处理高并发数据请求的系统和方法 |
CN104636957A (zh) * | 2015-02-04 | 2015-05-20 | 上海瀚之友信息技术服务有限公司 | 一种处理高并发数据请求的系统和方法 |
US10491707B2 (en) | 2015-06-08 | 2019-11-26 | Alibaba Group Holding Limited | Information processing using a server group |
CN106302608B (zh) * | 2015-06-08 | 2020-02-04 | 阿里巴巴集团控股有限公司 | 一种信息处理方法及装置 |
CN106302608A (zh) * | 2015-06-08 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 一种信息处理方法及装置 |
CN104991818A (zh) * | 2015-06-30 | 2015-10-21 | 北京奇虎科技有限公司 | 一种数据处理方法、服务器和系统 |
CN104991818B (zh) * | 2015-06-30 | 2018-10-09 | 北京奇虎科技有限公司 | 一种数据处理方法、服务器和系统 |
CN105139245A (zh) * | 2015-08-28 | 2015-12-09 | 江苏讯狐信息科技有限公司 | 一种互联网电子商务系统 |
CN105786629A (zh) * | 2016-02-02 | 2016-07-20 | 四川长虹电器股份有限公司 | 基于消息队列的数据处理方法 |
CN107203890A (zh) * | 2016-03-17 | 2017-09-26 | 阿里巴巴集团控股有限公司 | 凭证数据发放方法、装置及系统 |
CN107277088A (zh) * | 2016-04-06 | 2017-10-20 | 泰康保险集团股份有限公司 | 高并发业务请求处理系统及方法 |
CN107277088B (zh) * | 2016-04-06 | 2021-01-15 | 泰康保险集团股份有限公司 | 高并发业务请求处理系统及方法 |
CN106210019A (zh) * | 2016-07-04 | 2016-12-07 | 安徽天达网络科技有限公司 | 一种大型高并发web应用系统 |
CN106202505A (zh) * | 2016-07-20 | 2016-12-07 | 北京京东尚科信息技术有限公司 | 数据处理方法及其系统 |
CN106202505B (zh) * | 2016-07-20 | 2019-09-20 | 北京京东尚科信息技术有限公司 | 数据处理方法及其系统 |
CN106170016A (zh) * | 2016-07-28 | 2016-11-30 | 深圳市创梦天地科技有限公司 | 一种处理高并发数据请求的方法和系统 |
CN108090058A (zh) * | 2016-11-21 | 2018-05-29 | 广东亿迅科技有限公司 | 一种高并发活动交互方法 |
CN108090058B (zh) * | 2016-11-21 | 2021-10-29 | 广东亿迅科技有限公司 | 一种高并发活动交互方法 |
CN106919441A (zh) * | 2017-02-08 | 2017-07-04 | 武汉奇米网络科技有限公司 | 一种电子商务平台高并发事件的处理方法及系统 |
CN107025270A (zh) * | 2017-03-09 | 2017-08-08 | 珠海昊星自动化系统有限公司 | 一种分布式高性能高并发大数据系统 |
CN107273225A (zh) * | 2017-06-16 | 2017-10-20 | 深圳易嘉恩科技有限公司 | 基于消息队列的高并发抢单功能实现方法 |
CN107483531A (zh) * | 2017-06-20 | 2017-12-15 | 华迪计算机集团有限公司 | 一种海量数据高并发接收解决方法及系统 |
CN108512938A (zh) * | 2018-04-17 | 2018-09-07 | 阿里巴巴集团控股有限公司 | 一种数据请求的处理方法、装置及电子设备 |
CN108512938B (zh) * | 2018-04-17 | 2021-03-30 | 创新先进技术有限公司 | 一种数据请求的处理方法、装置及电子设备 |
CN108833505A (zh) * | 2018-05-31 | 2018-11-16 | 康键信息技术(深圳)有限公司 | 数据请求处理方法、服务器及存储介质 |
CN109345353B (zh) * | 2018-10-15 | 2022-04-22 | 广东鸭梨云信息科技有限公司 | 一种基于关系型分布式数据库的新型秒杀方法 |
CN109345353A (zh) * | 2018-10-15 | 2019-02-15 | 广东鸭梨云信息科技有限公司 | 一种基于关系型分布式数据库的新型秒杀方法 |
CN111176824A (zh) * | 2018-11-12 | 2020-05-19 | 商派软件有限公司 | 一种处理高并发活动报名的方法 |
CN111176824B (zh) * | 2018-11-12 | 2021-04-20 | 商派软件有限公司 | 一种处理高并发活动报名的方法 |
CN111049933A (zh) * | 2019-12-28 | 2020-04-21 | 杭州电力设备制造有限公司 | 一种电力关键节点温度的监测系统 |
CN113141337A (zh) * | 2020-01-19 | 2021-07-20 | 上海静客网络科技有限公司 | 线上抢购系统高并发场景处理方法 |
CN112184326A (zh) * | 2020-10-14 | 2021-01-05 | 深圳市欢太科技有限公司 | 处理高并发秒杀活动的方法、高并发系统、终端及计算机可读存储介质 |
CN112102044B (zh) * | 2020-11-10 | 2021-03-09 | 成都四方伟业软件股份有限公司 | 一种消息队列处理高并发秒杀商品的方法、系统及装置 |
CN112102044A (zh) * | 2020-11-10 | 2020-12-18 | 成都四方伟业软件股份有限公司 | 一种消息队列处理高并发秒杀商品的方法、系统及装置 |
CN112738252A (zh) * | 2020-12-30 | 2021-04-30 | 昆山巨星行动电子商务有限公司 | 一种电商高并发秒杀系统 |
CN113034207A (zh) * | 2021-04-20 | 2021-06-25 | 青岛冠成软件有限公司 | 一种抽奖信息处理方法、装置、服务器和可读存储介质 |
CN115118612A (zh) * | 2022-05-12 | 2022-09-27 | 曙光信息产业股份有限公司 | 资源配额管理方法、装置、计算机设备和存储介质 |
CN115118612B (zh) * | 2022-05-12 | 2024-06-04 | 曙光信息产业股份有限公司 | 资源配额管理方法、装置、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103825835A (zh) | 一种互联网高并发秒杀系统 | |
Fitzpatrick | Distributed caching with memcached | |
CN102902805B (zh) | 一种页面访问方法和装置 | |
CN106506663B (zh) | 一种号码分配方法、服务器及系统 | |
CN103312624B (zh) | 一种消息队列服务系统和方法 | |
CN106170016A (zh) | 一种处理高并发数据请求的方法和系统 | |
Li et al. | A cost-effective mechanism for cloud data reliability management based on proactive replica checking | |
CN101388824B (zh) | 一种机群系统中分片存储模式下文件读取的方法及系统 | |
CN103905503A (zh) | 数据存取方法、调度方法、设备及系统 | |
JP2019503537A (ja) | ショートリンクを処理する方法及び装置並びにショートリンクサーバ | |
CN102147746A (zh) | 动态线程池管理 | |
CN110191428A (zh) | 一种基于智能云平台的数据分配方法 | |
CN109597903B (zh) | 图像文件处理装置和方法、文件存储系统及存储介质 | |
CN103442090A (zh) | 一种数据分散存储的云计算系统 | |
Adya et al. | Fast key-value stores: An idea whose time has come and gone | |
CN106936582A (zh) | 电子签章系统及方法 | |
CN105224662A (zh) | 工单处理方法和装置 | |
CN110245129A (zh) | 一种分布式全局数据去重方法和装置 | |
CN108121776A (zh) | 一种数据读取方法及装置 | |
CN110147345A (zh) | 一种基于rdma的键值存储系统及其工作方法 | |
CN115203159B (zh) | 一种数据存储方法、装置、计算机设备和存储介质 | |
CN103345429A (zh) | 基于片上ram的高并发访存加速方法、加速器及cpu | |
US10642520B1 (en) | Memory optimized data shuffle | |
Chen et al. | Dosas: Mitigating the resource contention in active storage systems | |
CN110401681A (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: 20140528 |