(19)国家知识产权局
(12)发明 专利申请
(10)申请公布号
(43)申请公布日
(21)申请 号 202210632417.4
(22)申请日 2022.06.06
(71)申请人 南京邮电大 学
地址 210003 江苏省南京市 鼓楼区新模范
马路66号
(72)发明人 杨立君 袁志远 郭林
(74)专利代理 机构 南京经纬专利商标代理有限
公司 32200
专利代理师 姚建楠
(51)Int.Cl.
G06F 16/28(2019.01)
G06F 9/54(2006.01)
G06F 9/50(2006.01)
G06Q 10/08(2012.01)
G06Q 30/06(2012.01)
(54)发明名称
一种互联网秒杀抢购方法和系统
(57)摘要
本发明公开了一种互联网秒杀抢购方法和
系统, 从商品是否允许超卖、 商品库存数量两个
维度拆解问题。 在允许超卖的弱一致性场景下,
利用易失性内存 数据库进行库存扣减; 在不允许
超卖的强一致性场景下, 提出库存拆 分的方法避
免多线程并发更新同一条数据库记录引起的锁
竞争与上 下文切换, 进 而提高系统吞吐量。
权利要求书1页 说明书4页 附图4页
CN 115098598 A
2022.09.23
CN 115098598 A
1.一种互联网秒杀抢购方法, 其特 征在于, 包括以下步骤:
将用户请求 放入消息队列异步处 理;
根据商品是否允许超卖选择内存型数据库或关系型数据库进行库存扣减, 若商 品允许
超卖则选择内存型 数据库进行库存扣减, 反 之则选择关系型 数据库进行库存扣减;
当选择关系型数据库进行库存扣减时, 当库存总数超过一阈值时, 通过库存拆分的方
法来避免多线程并发更新同一条数据库 记录引起的锁竞争与上下文切换, 进而提高系统吞
吐量。
2.根据权利要求1所述互联网秒杀抢购方法, 其特征在于, 当使用库存拆分方法, 用户
等待时间的预估方法如下:
上式中, t为用户等待时间, c为参与抢购的用户总数, n为库存总数, m为库存拆分的份
数, x为每 个库存扣减平均TP S。
3.根据权利要求2所述互联网秒杀抢购方法, 其特征在于, 用户请求到来时, 选择合适
的负载均衡策略, 从m份库存中选择一个进 行扣减库存, 所述负载均衡策略根据业务场景需
要进行选择。
4.根据权利要求3所述互联网秒杀抢购方法, 其特征在于, 所述负载均衡策略包括但不
限于加权随机、 轮询和最小活跃 数。
5.根据权利要求1所述互联网秒杀抢购方法, 其特征在于, 通过数据订 阅的方式监 听数
据库库存, 库存为0时队列中排队等待的用户请求 直接返回秒杀失败。
6.一种互联网秒杀抢购系统, 其特征在于, 包括业务层, 所述业务层用于实现如权利要
求1‑5中任一项权利要求所述互联网秒杀抢购方法。
7.根据权利要求6所述互联网秒杀抢购系统, 其特征在于, 还包括接入层, 客户端发起
HTTP请求经过Nginx直接转发至网关, 然后将HTTP请求转变为一个基于长连接的远程过程
调用后端工程, 同时网关作为入口, 生成与当前请求对应的TraceId, 用于全链路日志系统
追踪一次请求从开始到结束的所有轨 迹。
8.根据权利要求7所述互联网秒杀抢购系统, 其特征在于, 针对突发流量与异常情况,
接口采用相关措施保证服务的高可用与稳定性, 所述相关措施包括但不限于限流、 降级、 熔
断和静态化。
9.根据权利要求6所述互联网秒杀抢购系统, 其特征在于, 还包括数据层, 对非结构化
数据进行对象存储, 并根据需要做CDN缓存, 将数据分发至距离用户最近的地方, 保证用户
访问速度。
10.根据权利要求9所述互联网秒杀抢购系统, 其特征在于, 结构化数据存储在数据库
中, 使用Memcac he做分布式缓存或者使用本地缓存来保护数据库。权 利 要 求 书 1/1 页
2
CN 115098598 A
2一种互联网 秒杀抢购方 法和系统
技术领域
[0001]本发明属于互联网应用领域, 具体涉及一种互联网秒杀抢购技 术。
背景技术
[0002]目前公知的秒杀抢购系统, 存储商品库 存的介质包括内存型数据库和关系型数据
库, 二者各自具有优势和缺 点:
[0003]1、 使用内存型数据库(比如Redis)扣减库存, 保证了系统的高可用, 但是存在商品
超卖的风险;
[0004]2、 使用关系型数据库(比如Mysql)扣减库存, 存在协调者单点、 同步阻塞、 数据不
一致、 执行效率低等问题。
发明内容
[0005]为了解决上述背景技术中提到的技术问题, 本发明提出一种互联 网秒杀抢购方法
和系统, 技 术方案如下:
[0006]一种互联网秒杀抢购方法, 包括以下步骤:
[0007]将用户请求 放入消息队列异步处 理;
[0008]根据商品是否允许超卖选择内存型数据库或关系型数据库进行库 存扣减, 若商品
允许超卖则选择内存型 数据库进行库存扣减, 反 之则选择关系型 数据库进行库存扣减;
[0009]当选择关系型数据库进行库存扣减时, 当库存总数超过一阈值时, 通过库存拆分
的方法来避免多线程并发更新同一条数据库 记录引起的锁竞争与上下文切换, 进而提高系
统吞吐量。
[0010]进一步地, 用户等待时间的预估方法如下:
[0011]
[0012]上式中, t为用户等待时间, c为参与抢购的用户总数, n为库存总数, m为库存拆分
的份数, x为每 个库存扣减平均TP S。
[0013]进一步地, 用户请求到来时, 选择合适的负载均衡策略, 从m份库存中选择一个进
行扣减库存, 所述负载均衡策略根据业 务场景需要 进行选择。
[0014]进一步地, 所述负载均衡策略包括但不限于加权随机、 轮询和最小活跃 数。
[0015]进一步地, 通过数据订阅的方式监听数据库库 存, 库存为0时队列中排队等待的用
户请求直接返回秒杀失败。
[0016]一种互联 网秒杀抢购系统, 包括业务层, 所述业务层用于 实现如权利要求1 ‑5中任
一项权利要求所述互联网秒杀抢购方法。
[0017]进一步地, 还包括接入层, 客户端发起HTTP请求经过Nginx直接转发至网关, 然后
将HTTP请求转变为一个基于长连接的远程过程调用后端工程, 同时网关作为入口, 生成与
当前请求对应的TraceId, 用于全链路日志系统追踪一次请求从开始到结束的所有轨 迹。说 明 书 1/4 页
3
CN 115098598 A
3
专利 一种互联网秒杀抢购方法和系统
文档预览
中文文档
10 页
50 下载
1000 浏览
0 评论
309 收藏
3.0分
温馨提示:本文档共10页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 人生无常 于 2024-03-18 13:25:56上传分享