CN117575741A - 秒杀请求的处理方法、装置、设备、介质和程序产品 - Google Patents
秒杀请求的处理方法、装置、设备、介质和程序产品 Download PDFInfo
- Publication number
- CN117575741A CN117575741A CN202311667933.1A CN202311667933A CN117575741A CN 117575741 A CN117575741 A CN 117575741A CN 202311667933 A CN202311667933 A CN 202311667933A CN 117575741 A CN117575741 A CN 117575741A
- Authority
- CN
- China
- Prior art keywords
- region
- sub
- inventory
- distributed cache
- killing
- 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
- 230000002147 killing effect Effects 0.000 title claims abstract description 155
- 238000012545 processing Methods 0.000 title claims abstract description 44
- 238000000034 method Methods 0.000 title claims abstract description 43
- 230000004044 response Effects 0.000 claims description 45
- 238000004590 computer program Methods 0.000 claims description 19
- 238000003672 processing method Methods 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 10
- 230000015654 memory Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 230000003139 buffering effect Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0605—Supply or demand aggregation
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Data Mining & Analysis (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Economics (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Computational Linguistics (AREA)
- Marketing (AREA)
- Development Economics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种秒杀请求的处理方法,可以应用于大数据技术领域。该秒杀请求的处理方法包括:将M个子库存信息分别存储至N个分布式缓存服务器中,其中,M个子库存信息中的每一个以键值存储数据库的形式存储于分布式缓存服务器中,每一个子库存信息的键表示该子库存信息中的库存被分配的地区,每一个子库存信息的值表示该子库存信息中的库存量;获取用户的秒杀请求;以及根据用户的位置信息和M个子库存信息的键表示的地区,调配存储于N个分布式缓存服务器中的一个缓存服务器中的一个子库存信息响应秒杀请求,M和N均为大于等于2的正整数。本公开还提供了一种秒杀请求的处理装置、设备、存储介质和程序产品。
Description
技术领域
本公开涉及大数据领域,更具体地涉及一种秒杀请求的处理方法、装置、设备、介质和程序产品。
背景技术
目前,大量商家在线上购物中提供了一种秒杀活动,该秒杀活动是指在极短时间内,用户对商品进行秒杀抢购。此类活动已经吸引了大量消费者参与其中。
但是,现有的提供秒杀活动的秒杀系统,往往将商品库存通过单个数据索引表进行存储,并将该数据索引表放入单个缓存服务器中。往往在执行大规模的秒杀活动时,因为同时需要处理大量用户的秒杀请求,单个服务器的性能往往会过载,导致服务器宕机,无法及时处理用户的秒杀请求。
发明内容
鉴于上述问题,本公开提供了一种秒杀请求的处理方法、装置、设备、介质和程序产品。
根据本公开的第一个方面,提供了一种秒杀请求的处理方法,包括:将M个子库存信息分别存储至N个分布式缓存服务器中,其中,所述M个子库存信息中的每一个以键值存储数据库的形式存储于所述分布式缓存服务器中,每一个所述子库存信息的键表示该子库存信息中的库存被分配的地区,每一个所述子库存信息的值表示该子库存信息中的库存量,M和N均为大于等于2的正整数;获取用户的秒杀请求,其中,所述秒杀请求包括用户的位置信息和用户的秒杀信息;以及根据所述用户的位置信息和所述M个子库存信息的键表示的地区,调配存储于所述N个分布式缓存服务器中的一个缓存服务器中的一个子库存信息响应所述秒杀请求,其中,所述调配存储于所述N个分布式缓存服务器中的一个缓存服务器中的一个子库存信息响应所述秒杀请求包括:根据所述秒杀信息,对存储于所述N个分布式缓存服务器中的一个缓存服务器中的一个子库存信息中的库存量进行扣减。根据本公开的实施例,该处理方法还包括:将全量库存按照地区进行拆分;将拆分后的全量库存存储于关系型数据库中,其中,所述关系型数据库中的每一条记录包括地区号和库存量,所述地区号表示对应的库存量被分配的地区的编号;以及将存储于所述关系型数据库中的拆分后的全量库存转换为M个子库存信息。根据本公开的实施例,将全量库存按照地区进行拆分具体包括:根据各个地区使用所述秒杀请求的应用系统的用户数,对所述全量库存的库存量进行拆分。
根据本公开的实施例,该处理方法还包括获取地区层级关系,所述地区层级关系包括第一层级地区、第二层级地区、第三层级地区和第四层级地区,所述第一层级地区、所述第二层级地区、所述第三层级地区和所述第四层级地区在层级上依次扩大,所述第二层级地区包括k1个第一层级地区,所述第三层级地区包括k2个第二层级地区,所述第四层级地区包括k3个第三层级地区,其中,k1、k2和k3均为大于等于2的正整数。
根据本公开的实施例,用户的位置信息包括用户所处的第一层级地区;所述根据所述用户的位置信息和所述M个子库存信息的键表示的地区,调配存储于所述N个分布式缓存服务器中的一个缓存服务器中的一个子库存信息响应所述秒杀请求,具体包括:根据用户所处的第一层级地区,确定用户所处的第一层级地区对应的地区编号信息;响应于所述地区编号信息,匹配存储于第i1个分布式缓存服务器中的一个子库存信息的键,比较所述秒杀信息中的秒杀数量和存储于所述第i1个分布式缓存服务器中的一个子库存信息中的库存量,其中,所述第i1个分布式缓存服务器为所述N个分布式缓存服务器中的一个;响应于所述秒杀数量,存储于所述第i1个分布式缓存服务器中的一个子库存信息中的库存量大于或等于所述秒杀数量时,对存储于第i1个分布式缓存服务器中的一个子库存信息中的库存量进行扣减。
根据本公开的实施例,所述根据所述用户的位置信息和所述M个子库存信息的键表示的地区,调配存储于所述N个分布式缓存服务器中的一个缓存服务器中响应所述秒杀请求,还具体包括:在所述用户所属的第二层级地区中的所有其他第一层级地区所对应的库存量小于所述秒杀数量时,确定所述用户所处的第二层级地区的所属第三层级地区;依次查询所述用户所属的第三层级地区中的所有其他第二层级地区中的所有第一层级地区所对应的地区编号信息;响应于所查询的第m个第二层级地区中第x个第一层级地区的地区编号信息,匹配存储于第im_x个分布式缓存服务器中的一个子库存信息的键,比较所述秒杀信息中的秒杀数量和存储于所述第im_x个分布式缓存服务器中的一个子库存信息中的库存量,其中,所述第im_x个分布式缓存服务器为所述N个分布式缓存服务器中的一个,m为2到k2的整数,x为1到k1的整数;直至所述存储于所述第im_x个分布式缓存服务器中的一个子库存信息中的库存量大于或等于所述秒杀数量时,结束所述查询;以及响应于所述秒杀数量,对存储于第im_x个分布式缓存服务器中的一个子库存信息中的库存量进行扣减。
根据本公开的实施例,所述根据所述用户的位置信息和所述M个子库存信息的键表示的地区,调配存储于所述N个分布式缓存服务器中的一个缓存服务器响应所述秒杀请求,还具体包括:在所述用户所属的第三层级地区中的所有其他第二层级地区中的所有第一层级地区所对应的库存量小于所述秒杀数量时,确定所述用户所处的第三层级地区的所属第四层级地区;依次查询所述用户所属的第四层级地区中的所有其他第三层级地区中的所有第二层级中的所有第一层级地区;响应于所查询的第p个第三层级地区中的第y个第二层级地区中第x个第一层级地区的地区编号信息,匹配存储于第ip_y_x个分布式缓存服务器中的一个子库存信息的键,比较所述秒杀信息中的秒杀数量和存储于所述第ip_y_x个分布式缓存服务器中的一个子库存信息中的库存量,其中,所述第ip_y_x个分布式缓存服务器为所述N个分布式缓存服务器中的一个,p为2到k3的整数,y为1到k2的整数;直至所述存储于所述第ip_y_x个分布式缓存服务器中的一个子库存信息中的库存量大于或等于所述秒杀数量时,结束所述查询;以及响应于所述秒杀数量,对存储于第ip_y_x个分布式缓存服务器中的一个子库存信息中的库存量进行扣减。本公开的第二方面提供了一种秒杀请求的处理装置,包括:缓存模块,用于将M个子库存信息分别存储至N个分布式缓存服务器中,其中,所述M个子库存信息中的每一个以键值存储数据库的形式存储于所述分布式缓存服务器中,每一个所述子库存信息的键表示该子库存信息中的库存被分配的地区,每一个所述子库存信息的值表示该子库存信息中的库存量,M和N均为大于等于2的正整数;
获取请求模块,用于获取用户的秒杀请求,其中,所述秒杀请求包括用户的位置信息和用户的秒杀信息;以及
扣减模块,根据所述用户的位置信息和所述M个子库存信息的键表示的地区,调配存储于所述N个分布式缓存服务器中的一个缓存服务器响应所述秒杀请求,其中,所述调配存储于所述N个分布式缓存服务器中的一个缓存服务器中响应所述秒杀请求包括:根据所述秒杀信息,对存储于所述N个分布式缓存服务器中的一个缓存服务器中的一个子库存信息中的库存量进行扣减。
本公开的第三方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得一个或多个处理器执行上述秒杀请求的处理方法。
本公开的第四方面还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行上述秒杀请求的处理方法。
本公开的第五方面还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述秒杀请求的处理方法。
根据本公开的实施例,将库存总量进行拆分为多个子库存信息,从而能够将多个子库存信息存入多个缓存服务器中,通过多个服务器之间对用户秒杀请求的响应,使得秒杀系统能够在处理大量的秒杀请求中具有良好的性能,同时通过对子库存信息中键值对的识别,能够准确匹配到能够满足用户秒杀请求的服务器,从而提高了处理用户秒杀请求的效率。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述内容以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的秒杀请求处理方法、装置、设备、介质和程序产品的应用场景图;
图2示意性示出了根据本公开实施例的秒杀请求处理方法的流程图。
图3~图6示意性示出了根据本公开实施例的服务器响应秒杀请求的流程图。
图7示意性示出了根据本公开实施例的秒杀请求处理装置的结构框图;以及
图8示意性示出了根据本公开实施例的适于实现秒杀请求处理方法的电子设备的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
首先,对本文中记载的技术术语作如下解释和说明:
表(Table):是由一组相关的数据组成的二维数据结构。它是数据库中的基本组织单位,用于存储和组织数据。每个表由一系列的列(Column)和行(Row)组成。
列(Column)定义了表中的属性或字段,规定了数据类型和约束其中。每个列代表表中的一个属性或字段,定义了数据的类型和约束。例如,一个用户表可以有例如″ID″、″姓名″、″年龄″和″电子邮件″等。
行(Row)则代表表中的记录(Record)或数据项,包含了一组特定的数据,每个数据与相应的列对应。例如,用户表中的每一行可以表示一个具体的用户,包含了该用户的ID、姓名、年龄和电子邮件等信息。
记录(Record):记录是表中的一行数据,包含了一组特定的数据项。每个记录由表的列定义的属性对应的值组成,每个值是记录中的一个数据项。
表的结构由列的定义和约束规定,而记录则是实际存储的数据。表和记录的关系类似于电子表格中的工作表和单元格。通过在表中插入、更新和删除记录,可以对数据进行增加、修改和删除操作。通过查询表,可以检索和获取特定条件下的记录。表和记录的概念是关系型数据库的核心,它们提供了一种结构化的方式来组织和管理数据,以便进行有效的数据存储和查询。
Key(键):Key是在键值存储数据库中用于唯一标识和访问数据的字符串。它类似于表中的列名,用于定位特定的数据项。
Value(值):Value是键值存储数据库中与Key对应的特定的数据。
在键值存储数据库中,Key和Value是一对一关系,通过Key可以快速地访问和获取对应的Value。不同于关系型数据库中的表、列和记录的结构,键值存储数据库以Key-Value的形式存储数据,提供了简单而灵活的数据存储和检索方式。
哈希值(hash值),是一组任意长度的输入信息通过哈希算法得到的“数据指纹”,即进行加密运算得到的一组二进制值,常用于利用的一个短的随机字母和数位组成的唯一字符串来代表一个数据。
分布式缓存:指将应用系统和缓存组件进行分离的缓存机制,主要作为数据缓存服务的技术平台,用于OLTP(联机事务处理)热点数据的缓存,为应用提供高可用、高性能、低成本、弹性扩展、集中运维的快速数据缓存服务。
分布式应用服务器系统,由一组独立的服务器组成,大型分布式系统一般由几十或上百台服务器组成,并作为一个统一的整体对外提供服务。每台应用服务器独立运行,均可以访问分布式缓存服务器或数据库。
本发明的实施例提供一种秒杀请求的处理方法,包括:将M个子库存信息分别存储至N个分布式缓存服务器中,其中,所述M个子库存信息中的每一个以键值存储数据库的形式存储于所述分布式缓存服务器中,每一个所述子库存信息的键表示该子库存信息中的库存被分配的地区,每一个所述子库存信息的值键表示该子库存信息中的库存量,M和N均为大于等于2的正整数;获取用户的秒杀请求,其中,所述秒杀请求包括用户的位置信息和用户的秒杀信息;以及根据所述用户的位置信息和所述M个子库存信息的键表示的地区,调配存储于所述N个分布式缓存服务器中的一个缓存服务器中的一个子库存信息响应所述秒杀请求,其中,所述调配存储于所述N个分布式缓存服务器中的一个缓存服务器中的一个子库存信息响应所述秒杀请求包括:根据所述秒杀信息,对存储于所述N个分布式缓存服务器中的一个缓存服务器中的一个子库存信息中的库存量进行扣减。
在根据本发明的实施例的方法中,通过地区划分对库存总量进行拆分,使得库存能够打散存放到分布式缓存服务器上,消灭了库存单一存放会产生的性能瓶颈问题。
本公开的实施例提供了一种秒杀请求的处理方法、装置、设备、介质和程序产品。
图1示意性示出了根据本公开实施例的秒杀请求的处理方法、装置、设备、介质和程序产品的应用场景图。
如图1所示,根据该实施例的应用场景100可以包括终端设备101、102、103。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。
需要说明的是,本公开实施例所提供的秒杀请求的处理方法一般可以由服务器105执行。相应地,本公开实施例所提供的秒杀请求的处理装置一般可以设置于服务器105中。本公开实施例所提供的秒杀请求的处理方法也可以由不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群执行。相应地,本公开实施例所提供的秒杀请求的处理装置也可以设置于不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
以下将基于图1描述的场景,通过图2~图6对公开实施例所提供的秒杀请求的处理方法进行详细描述。
图2示意性示出了根据本公开实施例的秒杀请求处理方法的流程图。
如图2所示,该实施例的秒杀请求的处理方法包括操作S210~操作S230。
在操作S210,将M个子库存信息分别存储至N个分布式缓存服务器中。
在本公开的实施例中,M个子库存信息由商品的全量库存拆分所得。其中,对商品的全量库存进行拆分包括:将全量库存按照地区进行拆分,将拆分后的全量库存存储于关系型数据库中,其中,所述关系型数据库中的每一条记录包括地区号和库存量,所述地区号表示对应的库存量被分配的地区的编号;以及将存储于所述关系型数据库中的拆分后的全量库存转换为M个子库存信息。
在本公开的实施例中,将全量库存按照地区进行拆分还包括:根据各个地区使用所述秒杀请求的应用系统的用户数,对所述全量库存的库存量进行拆分。例如某商品在A省的库存总量为10个单位,在A省中,B市使用该秒杀请求进行该商品秒杀活动的用户数占全A省的二分之一,则将A省的库存总量中拆分出二分之一分配给B市,即B市的库存量为5个单位。而在B市内,C区使用该秒杀请求进行该商品秒杀活动的用户数占B市的五分之二,而将B市的库存量中拆分出五分之二分配给C区,即A省B市C区的库存量为2个单位。
在本公开的实施例中,通过地区划分对库存总量进行拆分,使得库存总量能够打散存放到分布式缓存服务器上,同时通过地区确定预拆分库存的个数,能够保证每个地区的用户都能享有库存;并且根据用户人数确定库存量能够保证库存总量的合理分配。
在本公开的实施例中,关系型数据库可以为Orcale数据库。关系型数据库中的某一条记录包括库存量被分配的地区、地区编号和库存量,数据库中具体的列(column)包括:省级行政区、地级行政区、县级行政区及辖区、地区编号以及库存量,数据库中的每一行(row)为一条记录,例如,省级行政区:A省、地级行政区:B市、县级行政区或市辖区:C区、地区编号:0001、库存量:10000。
在本公开的实施例中,每个子库存信息包括一个或多个关系型数据库中的记录。每个子库存的信息以键值存储数据库的形式存储于分布式缓存服务器中,其中,每个子库存的信息的键(key)为地区编号,用于表示该子库存信息中的库存被分配的地区,每一个所述子库存信息的值(value)为库存量,用以表示所对应的键(key)的库存量。
在本公开的实施例中,通过应用服务服务器系统将M个子库存信息存入分布式缓存服务器中。其中,分布式缓存服务器将子库存信息中key的hash值作为唯一值,进而将M个子库存信息分散到N个缓存服务器中。其中,M和N为大于等于2的整数。
在本公开的实施例中,M小于等于N时,例如,子库存信息为10个,缓存服务器为10个,则将每个子库存信息分别存入一个缓存服务器中,M大于N时,例如,子库存信息为12个,缓存服务器为10个,则需要将12个子库存信息合并成10个子库存信息,再将合并后的每个子库存信息分别存入一个缓存服务器中。
在本公开的实施例中,将库存总量拆分为M个并存储到分布式缓存服务器上能够有效利用服务器的性能,提高秒杀请求处理的效率,消灭了库存量单一存放会产生的服务器性能瓶颈问题,进而能够提高用户进行秒杀活动时的使用体验。
在操作S220,获取用户的秒杀请求,其中,所述秒杀请求包括用户的位置信息和用户的秒杀信息。
在本公开的实施例中,在获取用户的秒杀请求之前,可以获得用户的同意或授权。例如,在操作S220之前,可以向用户发出获取用户秒杀请求的请求。在用户同意或授权可以获取用户秒杀请求的情况下,执行所述操作S220。
在本公开的实施例中,用户的位置信息包括用户所在位置的地区信息,用户的秒杀信息包括用户所请求库存量的秒杀数量。
在本公开的实施例中,地区信息具体通过地区层级关系来表示,所述地区层级关系包括第一层级地区、第二层级地区、第三层级地区和第四层级地区。其中,所述第一层级地区、所述第二层级地区、所述第三层级地区和所述第四层级地区在层级上依次扩大,分别对应县级行政区、地级行政区、省级行政区和国家。所述第二层级地区包括k1个第一层级地区,所述第三层级地区包括k2个第二层级地区,所述第四层级地区包括k3个第三层级地区,其中,k1、k2和k3均为大于等于2的正整数。
例如,某国包括34个省级行政区,其中,A省包括17个地级行政区,其中,B市包括13个市辖区。
在本公开的实施例中,通过对地区信息进行层级划分,可以使得库存总量可以根据地区层级进行拆分,同时可以对用户根据地区层级进行分类,为后续根据地区进行查询并执行秒杀请求提供了基础。
在操作S230,根据用户的位置信息和M个子库存信息的键表示的地区,调配存储于N个分布式缓存服务器中的一个缓存服务器中的一个子库存信息响应秒杀请求。
在本公开的实施例中,所述调配存储于所N个分布式缓存服务器中的一个缓存服务器中的一个子库存信息响应秒杀请求包括:根据所述秒杀信息,对存储于所述N个分布式缓存服务器中的一个缓存服务器中的一个子库存信息中的库存量进行扣减。
在本公开的实施例中,所述根据所述用户的位置信息和所述M个子库存信息的键表示的地区,调配存储于所述N个分布式缓存服务器中的一个缓存服务器中的一个子库存信息响应所述秒杀请求。
图3~图6示意性示出了根据本公开实施例的服务器响应秒杀请求的流程图。
如图3所示,该实施例的服务器响应秒杀请求包括操作S310~操作S330。
在操作S310,根据用户所处的第一层级地区,确定用户所处的第一层级地区对应的地区编号信息,例如确定用户处在A省B市C区内,则确定对应的地区编号信息为0001;
在操作S320,响应于所述地区编号信息,匹配存储于第i1个分布式缓存服务器中的一个子库存信息的键,比较所述秒杀信息中的秒杀数量和存储于所述第i1个分布式缓存服务器中的一个子库存信息中的库存量,其中,所述第i1个分布式缓存服务器为所述N个分布式缓存服务器中的一个;
例如,查找存储有子库存信息中键(key)为0001的第i1个服务器,该服务器为存储有子库存信息的N个分布式缓存服务器中的一个,根据该子库存信息中的键(key)确定值(value),即库存量,并将子库存中的库存量与用户秒杀请求中所包含的秒杀数量相比较。
在操作S330,响应于所述秒杀数量,在存储于所述第i1个分布式缓存服务器中的一个子库存信息中的库存量大于或等于所述秒杀数量时,对存储于第i1个分布式缓存服务器中的一个子库存信息中的库存量进行扣减。
例如,在子库存的库存量为10000,大于用户秒杀请求中所包含的秒杀数量8000时,对该子库存中的库存量进行扣减,并更新得到扣减后的子库存的库存量为2000。
在本实施例中,通过在响应秒杀请求时优先对用户所在地区进行查询,在本地库存量充足的情况下,能够提升秒杀请求在本地用户的响应速度,从而确定了用户在本地库存秒杀中具有优势,提高了用户的体验。
在本公开的实施例中,在响应于存储于所述第i1个分布式缓存服务器中的一个子库存信息中的库存量小于所述秒杀数量时,例如第i1个服务器中库存量为5000,小于用户的秒杀数量8000,需要查询存储相同第二层级地区内的其他不同第一层级地区库存量大于所述秒杀数量的缓存服务器并响应秒杀请求。
如图4所示,该实施例的服务器响应秒杀请求还包括操作S410~操作S430。
在操作S410,确定所述用户所处第一层级地区所属的第二层级地区,并依次查询所述所属的第二层级地区中的所有其他第一层级地区所对应的地区编号信息。
例如,用户所处的第一层级地区为C区,所述第二层级地区为B市,则依次查询B市内除C区以外所有其他第一层级地区的地区编号信息。
在操作S420,响应于查询的第n个第一层级地区所对应的地区编号信息,匹配存储于第in个分布式缓存服务器中的一个子库存信息的键,比较秒杀信息中的秒杀数量和存储于所述第in个分布式缓存服务器中的一个子库存信息中的库存量。其中,n为2到k1的整数其中,所述第in个分布式缓存服务器为所述N个分布式缓存服务器中的一个。
例如,第2次查询的B市内的第一层级地区为J区,对应的地区编号为0002,则查找存储有子库存信息中键(key)为0002的第i2个服务器,该服务器为存储有子库存信息的N个分布式缓存服务器中的一个,根据该子库存信息中的键(key)确定值(value),即库存量,并将子库存中的库存量与用户秒杀请求中所包含的秒杀数量相比较。
在操作S430,存储于所述第in个分布式缓存服务器中的一个子库存信息中的库存量大于或等于所述秒杀数量时,结束所述查询并响应于所述秒杀数量,对存储于第in个分布式缓存服务器中的一个子库存信息中的库存量进行扣减。
例如,第i2个服务器中所存储的库存量为9000,大于用户秒杀请求中所包含的秒杀数量8000时,对该子库存中的库存量进行扣减,并更新得到扣减后的子库存的库存量为1000。
在本公开的实施例中,在所查询的同属于用户所在第二层级地区的所有其他第一层级地区对应的库存量小于用户的秒杀数量时,需要查询存储相同第三层级地区内的其他不同第二层级地区中的第一层级地区库存量大于或等于所述秒杀数量的缓存服务器并响应秒杀请求。
如图5所示,该实施例的服务器响应秒杀请求还包括操作S510~操作S520。
在操作S510,确定所述用户所处第二层级地区所属的第三层级地区;依次查询所属第三层级地区中的所有其他第二层级地区中的所有第一层级地区所对应的地区编号信息。
例如,用户所属的第二层级为B市,则第三层级地区为A省,则依次查询A省内除B市的所有其他第二层级地区的第一层级地区的地区编号信息。
在操作S520,响应于所查询的第m个第二层级地区中第x个第一层级地区的地区编号信息,匹配存储于第im_x个分布式缓存服务器中的一个子库存信息的键,比较秒杀信息中的秒杀数量和存储于第im_x个分布式缓存服务器中的一个子库存信息中的库存量,其中,m为2到k2的整数,x为1到k1的整数,其中,所述第im_x个分布式缓存服务器为所述N个分布式缓存服务器中的一个。
例如,第2次查询到的为A省内D市的第1个第一层级地区E区,对应的地区编号为0021,则查找存储有子库存信息中键(key)为0021的第i2_1个服务器,该服务器为存储有子库存信息的N个分布式缓存服务器中的一个,根据该子库存信息中的键(key)确定值(value),即库存量,并将子库存中的库存量与用户秒杀请求中所包含的秒杀数量相比较。
在操作S530,存储于所述第im_x个分布式缓存服务器中的一个子库存信息中的库存量大于或等于所述秒杀数量时,结束所述查询并响应于所述秒杀数量,对存储于第im_x个分布式缓存服务器中的一个子库存信息中的库存量进行扣减。
例如,第i2_1个服务器中所存储的库存量为11000,大于用户秒杀请求中所包含的秒杀数量8000时,对该子库存中的库存量进行扣减,并更新得到扣减后的子库存的库存量为3000。
在本公开的实施例中,在所查询的同属于用户所在第三层级地区的所有其他第二层级地区中所有第一层级地区对应的库存量小于用户的秒杀数量时,需要查询存储相同第四层级地区内的其他不同第三层级地区中的第二层级地区中的第一层级地区库存量大于或等于所述秒杀数量的缓存服务器并响应秒杀请求。
如图6所示,该实施例的服务器响应秒杀请求还包括操作S610~操作S620。
在操作S610,确定所述用户所处第三层级地区所属的第四层级地区;依次查询所属第四层级地区中的所有其他第三层级地区中的所有第二层级地区中的所有第一层级地区所对应的地区编号信息。
例如,用户所属的第三层级为A省,则第四层级地区为某国,依次查询某国内除A省的所有其他第三层级地区的第二层级地区中的第一层级地区的地区编号信息。
在操作S620,响应于所查询的第p个第三层级地区中第y个第二层级地区中的第x个第一层级地区的地区编号信息,匹配存储于第ip_y_x个分布式缓存服务器中的一个子库存信息的键,比较秒杀信息中的秒杀数量和存储于第ip_y_x个分布式缓存服务器中的一个子库存信息中的库存量,其中,p为2到k3的整数,y为1到k2的整数所述第ip_y_x个分布式缓存服务器为所述N个分布式缓存服务器中的一个。
例如,第2此查询到的第三级层级地区为H市,H市作为1个单独的第二层级地区,H市内第1个第一层级地区为K区,对应的地区编号为0211,则查找存储有子库存信息中键(key)为0211的第i211个服务器,该服务器为存储有子库存信息的N个分布式缓存服务器中的一个,根据该子库存信息中的键(key)确定值(value),即库存量,并将子库存中的库存量与用户秒杀请求中所包含的秒杀数量相比较。
在操作S630,存储于所述第ip_y_x个分布式缓存服务器中的一个子库存信息中的库存量大于或等于所述秒杀数量时,结束所述查询并响应于所述秒杀数量,对存储于第ip_y_x个分布式缓存服务器中的一个子库存信息中的库存量进行扣减。
例如,第i211个服务器中的所存储的库存量为12000,大于用户秒杀请求中所包含的秒杀数量8000时,对该子库存中的库存量进行扣减,并更新得到扣减后的子库存的库存量为4000。
在本公开的实施例中,若查询完毕,仍未匹配到库存量大于秒杀数量的服务器,则说明现有库存量无法用于扣减用户秒杀数量,用户的秒杀请求暂时无法满足。
在本公开的实施例中,在本地区库存量不足时,逐级向外层级地区进行秒杀库存,避免了库存剩余的情况,达到库存的充分使用。
基于上述秒杀请求的处理方法,本公开的实施例还提供了一种秒杀请求的处理装置。以下将结合图7对该装置进行详细描述。
图7示意性示出了根据本公开实施例的秒杀请求的处理装置的结构框图。
如图7所示,该实施例的秒杀请求的处理装置700包括缓存模块710、获取模块720和扣减模块730。
缓存模块710用于将M个子库存信息分别存储至N个分布式缓存服务器中,其中,所述M个子库存信息中的每一个以键值存储数据库的形式存储于所述分布式缓存服务器中,每一个所述子库存信息的键表示该子库存信息中的库存被分配的地区,每一个所述子库存信息的值表示该子库存信息中的库存量,M和N均为大于等于2的正整数。在一实施例中,缓存模块710可以用于执行前文描述的操作S210,在此不再赘述。
在本公开的实施例中,缓存模块710还用于将全量库存按照地区进行拆分;将拆分后的全量库存存储于关系型数据库中,其中,所述关系型数据库中的每一条记录包括地区号和库存量,所述地区号表示对应的库存量被分配的地区的编号;以及将存储于所述关系型数据库中的拆分后的全量库存转换为M个子库存信息。所述将全量库存按照地区进行拆分具体包括:根据各个地区使用所述秒杀请求的应用系统的用户数,对所述全量库存的库存量进行拆分。
获取模块720用于获取用户的秒杀请求,其中,所述秒杀请求包括用户的位置信息和用户的秒杀信息。在一实施例中,获取模块720可以用于执行前文描述的操作S220,在此不再赘述。
在本公开的实施例中,获取模块720还用于获取地区层级关系,所述地区层级关系包括第一层级地区、第二层级地区、第三层级地区和第四层级地区,所述第一层级地区、所述第二层级地区、所述第三层级地区和所述第四层级地区在层级上依次扩大,所述第二层级地区包括k1个第一层级地区,所述第三层级地区包括k2个第二层级地区,所述第四层级地区包括k3个第三层级地区,其中,k1、k2和k3均为大于等于2的正整数。
扣减模块730用于根据所述用户的位置信息和所述M个子库存信息的键表示的地区,调配存储于所述N个分布式缓存服务器中的一个缓存服务器响应所述秒杀请求,其中,所述调配存储于所述N个分布式缓存服务器中的一个缓存服务器中响应所述秒杀请求包括:根据所述秒杀信息,对存储于所述N个分布式缓存服务器中的一个缓存服务器中的一个子库存信息中的库存量进行扣减。在一实施例中,扣减模块730可以用于执行前文描述的操作S230,在此不再赘述。
在本公开的实施例中,扣减模块730还用于根据用户所处的第一层级地区,确定用户所处的第一层级地区对应的地区编号信息;响应于所述地区编号信息,匹配存储于第i1个分布式缓存服务器中的一个子库存信息的键,比较所述秒杀信息中的秒杀数量和存储于所述第i1个分布式缓存服务器中的一个子库存信息中的库存量,其中,所述第i1个分布式缓存服务器为所述N个分布式缓存服务器中的一个;响应于所述秒杀数量,存储于所述第i1个分布式缓存服务器中的一个子库存信息中的库存量大于或等于所述秒杀数量时,对存储于第i1个分布式缓存服务器中的一个子库存信息中的库存量进行扣减。
在本公开的实施例中,扣减模块730还用于响应于存储于所述第i1个分布式缓存服务器中的一个子库存信息中的库存量小于所述秒杀数量,确定所述用户所处第一层级地区所属的第二层级地区;依次查询所述所属的第二层级地区中的所有其他第一层级地区所对应的地区编号信息;响应于所述查询的第n个第一层级地区所对应的地区编号信息,匹配存储于第in个分布式缓存服务器中的一个子库存信息的键,比较所述秒杀信息中的秒杀数量和存储于所述第in个分布式缓存服务器中的一个子库存信息中的库存量,其中,所述第in个分布式缓存服务器为所述N个分布式缓存服务器中的一个,n为2到k1的整数;直至所述存储于所述第in个分布式缓存服务器中的一个子库存信息中的库存量大于或等于所述秒杀数量时,结束所述查询;以及响应于所述秒杀数量,对存储于第in个分布式缓存服务器中的一个子库存信息中的库存量进行扣减。
在本公开的实施例中,扣减模块730还用于在所述用户所属的第二层级地区中的所有其他第一层级地区所对应的库存量小于所述秒杀数量时,确定所述用户所处的第二层级地区的所属第三层级地区;依次查询所述用户所属的第三层级地区中的所有其他第二层级地区中的所有第一层级地区所对应的地区编号信息;响应于所查询的第m个第二层级地区中第x个第一层级地区的地区编号信息,匹配存储于第im_x个分布式缓存服务器中的一个子库存信息的键,比较所述秒杀信息中的秒杀数量和存储于所述第im_x个分布式缓存服务器中的一个子库存信息中的库存量,其中,所述第im_x个分布式缓存服务器为所述N个分布式缓存服务器中的一个,m为2到k2的整数,x为1到k1的整数;直至所述存储于所述第im_n个分布式缓存服务器中的一个子库存信息中的库存量大于或等于所述秒杀数量时,结束所述查询;以及响应于所述秒杀数量,对存储于第im_n个分布式缓存服务器中的一个子库存信息中的库存量进行扣减。
在本公开的实施例中,扣减模块730还用在所述用户所属的第三层级地区中的所有其他第二层级地区中的所有第一层级地区所对应的库存量小于所述秒杀数量时,确定所述用户所处的第三层级地区的所属第四层级地区;依次查询所述用户所属的第四层级地区中的所有其他第三层级地区中的所有第二层级中的所有第一层级地区;响应于所查询的第p个第三层级地区中的第y个第二层级地区中第x个第一层级地区的地区编号信息,匹配存储于第ip_y_x个分布式缓存服务器中的一个子库存信息的键,比较所述秒杀信息中的秒杀数量和存储于所述第ip_y_x个分布式缓存服务器中的一个子库存信息中的库存量,其中,所述第ip_y_x个分布式缓存服务器为所述N个分布式缓存服务器中的一个,p为2到k3的整数,y为1到k2的整数;直至所述存储于所述第ip_y_x个分布式缓存服务器中的一个子库存信息中的库存量大于或等于所述秒杀数量时,结束所述查询;以及响应于所述秒杀数量,对存储于第ip_y_x个分布式缓存服务器中的一个子库存信息中的库存量进行扣减。
根据本公开的实施例,缓存模块710、获取模块720和扣减模块730中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,缓存模块710、获取模块720和扣减模块730。中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,缓存模块710、获取模块720和扣减模块730。中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图8示意性示出了根据本公开实施例的适于实现秒杀请求的处理方法的电子设备的方框图。
如图8所示,根据本公开实施例的电子设备800包括处理器801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。处理器801例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC))等等。处理器801还可以包括用于缓存用途的板载存储器。处理器801可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 803中,存储有电子设备800操作所需的各种程序和数据。处理器801、ROM802以及RAM 803通过总线804彼此相连。处理器801通过执行ROM 802和/或RAM 803中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 802和RAM 803以外的一个或多个存储器中。处理器801也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备800还可以包括输入/输出(I/O)接口805,输入/输出(I/O)接口805也连接至总线804。电子设备800还可以包括连接至I/O接口805的以下部件中的一项或多项:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器8]0上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 802和/或RAM 803和/或ROM 802和RAM 803以外的一个或多个存储器。
本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。当计算机程序产品在计算机系统中运行时,该程序代码用于使计算机系统实现本公开实施例所提供的秒杀请求的处理方法。
在该计算机程序被处理器801执行时执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分809被下载和安装,和/或从可拆卸介质811被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被处理器801执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (12)
1.一种秒杀请求的处理方法,其特征在于,所述方法包括:
将M个子库存信息分别存储至N个分布式缓存服务器中,其中,所述M个子库存信息中的每一个以键值存储数据库的形式存储于所述分布式缓存服务器中,每一个所述子库存信息的键表示该子库存信息中的库存被分配的地区,每一个所述子库存信息的值表示该子库存信息中的库存量,M和N均为大于等于2的正整数;
获取用户的秒杀请求,其中,所述秒杀请求包括用户的位置信息和用户的秒杀信息;以及
根据所述用户的位置信息和所述M个子库存信息的键表示的地区,调配存储于所述N个分布式缓存服务器中的一个缓存服务器中的一个子库存信息响应所述秒杀请求,
其中,所述调配存储于所述N个分布式缓存服务器中的一个缓存服务器中的一个子库存信息响应所述秒杀请求包括:
根据所述秒杀信息,对存储于所述N个分布式缓存服务器中的一个缓存服务器中的一个子库存信息中的库存量进行扣减。
2.根据权利要求1所述的处理方法,其特征在于,所述方法还包括:
将全量库存按照地区进行拆分;
将拆分后的全量库存存储于关系型数据库中,其中,所述关系型数据库中的每一条记录包括地区号和库存量,所述地区号表示对应的库存量被分配的地区的编号;以及
将存储于所述关系型数据库中的拆分后的全量库存转换为M个子库存信息。
3.根据权利要求2所述的处理方法,其特征在于,所述将全量库存按照地区进行拆分具体包括:
根据各个地区使用所述秒杀请求的应用系统的用户数,对所述全量库存的库存量进行拆分。
4.根据权利要求1所述的处理方法,其特征在于,所述方法还包括:
获取地区层级关系,所述地区层级关系包括第一层级地区、第二层级地区、第三层级地区和第四层级地区,所述第一层级地区、所述第二层级地区、所述第三层级地区和所述第四层级地区在层级上依次扩大,所述第二层级地区包括k1个第一层级地区,所述第三层级地区包括k2个第二层级地区,所述第四层级地区包括k3个第三层级地区,其中,k1、k2和k3均为大于等于2的正整数。
5.根据权利要求1或4所述的处理方法,其特征在于,所述用户的位置信息包括用户所处的第一层级地区;
所述根据所述用户的位置信息和所述M个子库存信息的键表示的地区,调配存储于所述N个分布式缓存服务器中的一个缓存服务器中的一个子库存信息响应所述秒杀请求,具体包括:
根据用户所处的第一层级地区,确定用户所处的第一层级地区对应的地区编号信息;
响应于所述地区编号信息,匹配存储于第i1个分布式缓存服务器中的一个子库存信息的键,比较所述秒杀信息中的秒杀数量和存储于所述第i1个分布式缓存服务器中的一个子库存信息中的库存量,其中,所述第i1个分布式缓存服务器为所述N个分布式缓存服务器中的一个;
响应于所述秒杀数量,存储于所述第i1个分布式缓存服务器中的一个子库存信息中的库存量大于或等于所述秒杀数量时,对存储于第i1个分布式缓存服务器中的一个子库存信息中的库存量进行扣减。
6.根据权利要求1或5所述的处理方法,其特征在于,所述根据所述用户的位置信息和所述M个子库存信息的键表示的地区,调配存储于所述N个分布式缓存服务器中的一个缓存服务器响应所述秒杀请求,还具体包括:
响应于存储于所述第i1个分布式缓存服务器中的一个子库存信息中的库存量小于所述秒杀数量,确定所述用户所处第一层级地区所属的第二层级地区;
依次查询所述所属的第二层级地区中的所有其他第一层级地区所对应的地区编号信息;
响应于所述查询的第n个第一层级地区所对应的地区编号信息,匹配存储于第in个分布式缓存服务器中的一个子库存信息的键,比较所述秒杀信息中的秒杀数量和存储于所述第in个分布式缓存服务器中的一个子库存信息中的库存量,其中,所述第in个分布式缓存服务器为所述N个分布式缓存服务器中的一个,n为2到k1的整数;直至所述存储于所述第in个分布式缓存服务器中的一个子库存信息中的库存量大于或等于所述秒杀数量时,结束所述查询;以及
响应于所述秒杀数量,对存储于第in个分布式缓存服务器中的一个子库存信息中的库存量进行扣减。
7.根据权利要求1或6所述的处理方法,其特征在于,所述根据所述用户的位置信息和所述M个子库存信息的键表示的地区,调配存储于所述N个分布式缓存服务器中的一个缓存服务器中响应所述秒杀请求,还具体包括:
在所述用户所属的第二层级地区中的所有其他第一层级地区所对应的库存量小于所述秒杀数量时,确定所述用户所处的第二层级地区的所属第三层级地区;
依次查询所述用户所属的第三层级地区中的所有其他第二层级地区中的所有第一层级地区所对应的地区编号信息;
响应于所查询的第m个第二层级地区中第x个第一层级地区的地区编号信息,匹配存储于第im_x个分布式缓存服务器中的一个子库存信息的键,比较所述秒杀信息中的秒杀数量和存储于所述第im_x个分布式缓存服务器中的一个子库存信息中的库存量,其中,所述第im_x个分布式缓存服务器为所述N个分布式缓存服务器中的一个,m为2到k2的整数,x为1到k1的整数;
直至所述存储于所述第im_x个分布式缓存服务器中的一个子库存信息中的库存量大于或等于所述秒杀数量时,结束所述查询;以及
响应于所述秒杀数量,对存储于第im_x个分布式缓存服务器中的一个子库存信息中的库存量进行扣减。
8.根据权利要求1或7所述的处理方法,其特征在于,所述根据所述用户的位置信息和所述M个子库存信息的键表示的地区,调配存储于所述N个分布式缓存服务器中的一个缓存服务器响应所述秒杀请求,还具体包括:
在所述用户所属的第三层级地区中的所有其他第二层级地区中的所有第一层级地区所对应的库存量小于所述秒杀数量时,确定所述用户所处的第三层级地区的所属第四层级地区;
依次查询所述用户所属的第四层级地区中的所有其他第三层级地区中的所有第二层级中的所有第一层级地区;
响应于所查询的第p个第三层级地区中的第y个第二层级地区中第x个第一层级地区的地区编号信息,匹配存储于第ip_y_x个分布式缓存服务器中的一个子库存信息的键,比较所述秒杀信息中的秒杀数量和存储于所述第ip_y_x个分布式缓存服务器中的一个子库存信息中的库存量,其中,所述第ip_y_x个分布式缓存服务器为所述N个分布式缓存服务器中的一个,p为2到k3的整数,y为1到k2的整数;
直至所述存储于所述第ip_y_x个分布式缓存服务器中的一个子库存信息中的库存量大于或等于所述秒杀数量时,结束所述查询;以及
响应于所述秒杀数量,对存储于第ip_y_x个分布式缓存服务器中的一个子库存信息中的库存量进行扣减。
9.一种秒杀请求的处理装置,其特征在于,所述装置包括:
缓存模块,用于将M个子库存信息分别存储至N个分布式缓存服务器中,其中,所述M个子库存信息中的每一个以键值存储数据库的形式存储于所述分布式缓存服务器中,每一个所述子库存信息的键表示该子库存信息中的库存被分配的地区,每一个所述子库存信息的值表示该子库存信息中的库存量,M和N均为大于等于2的正整数;
获取模块,用于获取用户的秒杀请求,其中,所述秒杀请求包括用户的位置信息和用户的秒杀信息;以及
扣减模块,根据所述用户的位置信息和所述M个子库存信息的键表示的地区,调配存储于所述N个分布式缓存服务器中的一个缓存服务器响应所述秒杀请求,其中,所述调配存储于所述N个分布式缓存服务器中的一个缓存服务器中响应所述秒杀请求包括:
根据所述秒杀信息,对存储于所述N个分布式缓存服务器中的一个缓存服务器中的一个子库存信息中的库存量进行扣减。
10.一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行根据权利要求1~8中任一项所述的方法。
11.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行根据权利要求1~8中任一项所述的方法。
12.一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现根据权利要求1~8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311667933.1A CN117575741A (zh) | 2023-12-06 | 2023-12-06 | 秒杀请求的处理方法、装置、设备、介质和程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311667933.1A CN117575741A (zh) | 2023-12-06 | 2023-12-06 | 秒杀请求的处理方法、装置、设备、介质和程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117575741A true CN117575741A (zh) | 2024-02-20 |
Family
ID=89886233
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311667933.1A Pending CN117575741A (zh) | 2023-12-06 | 2023-12-06 | 秒杀请求的处理方法、装置、设备、介质和程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117575741A (zh) |
-
2023
- 2023-12-06 CN CN202311667933.1A patent/CN117575741A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10521404B2 (en) | Data transformations with metadata | |
US10372723B2 (en) | Efficient query processing using histograms in a columnar database | |
US9697273B2 (en) | Unique value calculation in partitioned table | |
CN112269792B (zh) | 数据查询方法、装置、设备及计算机可读存储介质 | |
US11921750B2 (en) | Database systems and applications for assigning records to chunks of a partition in a non-relational database system with auto-balancing | |
CN102214208B (zh) | 一种基于非结构化文本生成结构化信息实体的方法与设备 | |
CN109033113B (zh) | 数据仓库和数据集市的管理方法及装置 | |
US10114846B1 (en) | Balanced distribution of sort order values for a multi-column sort order of a relational database | |
US10902023B2 (en) | Database-management system comprising virtual dynamic representations of taxonomic groups | |
US10360394B2 (en) | System and method for creating, tracking, and maintaining big data use cases | |
US20090164486A1 (en) | Business intelligence data extraction on demand | |
US20190362016A1 (en) | Frequent pattern analysis for distributed systems | |
KR102153259B1 (ko) | 데이터 도메인 추천 방법 및 추천된 도메인을 이용하여 통합 데이터 저장소 관리 시스템을 구축하는 방법 | |
US10885157B2 (en) | Determining a database signature | |
Mazurova et al. | Research of ACID transaction implementation methods for distributed databases using replication technology | |
Chereja et al. | Operationalizing analytics with NewSQL | |
CN117575741A (zh) | 秒杀请求的处理方法、装置、设备、介质和程序产品 | |
Mohanty et al. | Extracting value from big data: in-memory solutions, real time analytics, and recommendation systems | |
Aivalis | Big data technologies | |
CN113297139A (zh) | 元数据查询方法、系统及电子设备 | |
CN113761102A (zh) | 数据处理方法、装置、服务器、系统和存储介质 | |
Whang et al. | Building social networking services systems using the relational shared-nothing parallel DBMS | |
Siddesh et al. | Driving big data with hadoop technologies | |
Kaushik et al. | Big Data Analytics: A Research Paper | |
Kumar et al. | Basics of analytics and big data |
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 |