[发明专利]热点库存本地化扣减方法、系统、设备以及介质在审
申请号: | 201811394130.2 | 申请日: | 2018-11-21 |
公开(公告)号: | CN109544072A | 公开(公告)日: | 2019-03-29 |
发明(设计)人: | 张开涛;叶晶;姜楠;费程 | 申请(专利权)人: | 北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司 |
主分类号: | G06Q10/08 | 分类号: | G06Q10/08;G06Q30/06 |
代理公司: | 北京律智知识产权代理有限公司 11438 | 代理人: | 袁礼君;阚梓瑄 |
地址: | 100086 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 库存 预购 数据库 购买 系统交易 增量更新 集群 预存 应用 保证 | ||
本发明公开了一种热点库存本地化扣减方法、系统、设备以及介质,包括:于一本地数据库预存至少一种商品的预购件数;接收一订单,订单包括该商品的购买数量;判断本地数据库中的该商品的预购件数是否小于订单中的该商品的购买数量:若是,则对一集群数据库中的该商品的库存数扣减该商品的购买数量;若否,则对本地数据库的预购件数扣减该商品的购买数量,本发明通过将部分库存本地化,将分布式库存扣减逻辑本地化,实现了多级库存,将部分库存增量更新到应用本地,保证了任何瞬间都有库存可扣,从而提高了整个系统交易的可靠性。
技术领域
本发明涉及的是一种电子结算领域的技术,更具体的说,涉及一种热点库存本地化扣减方法、系统、设备以及介质。
背景技术
电商网站售卖商品时都会涉及到库存扣减问题,最简单的扣减策略是使用数据库乐观锁“update stocks set version=version+1,stock=stock-? where id=ID andversion=?”,但是这种方式的缺点是如果该有大量用户抢购该商品,那么会产生数据库行锁的竞争,而数据库本身的并发能力并不是特别强,从而导致无法承受很高的并发。
较流行的技术方案是在Redis数据库中扣减库存数并将库存流水写入到数据库,通过Redis数据库的事务机制可以实现Redis的乐观锁,但是缺点是因为竞争需要不断的重试,所以可以直接使用脚本完成库存剩余判断逻辑和库存扣减逻辑实现Redis数据库扣减的高性能。
现有的数据库乐观锁扣减方案存在热点数据库行锁竞争的问题,会因为乐观锁重试导致连锁反应最终可能导致数据库崩溃,而Redis数据库乐观锁会比数据库乐观锁性能好一些,但是也是同样的问题。Redis数据库扣减库存是较完美的解决方案,但是如果存在库存热点它也是没办法解决的,而且扣减库存的流水记录还是通过数据库记录也会成为瓶颈。
在热点库存解决方案有通过将Redis数据库中的库存进行分裂实现,首先对库存分裂为多份,分裂存储到Redis数据库,并将分裂后的KEY保存到库存路由组件汇总;接着扣减库存的应用服务会先查询库存路由组件获取分裂规则,然后轮询到这些分裂的key上进行获取库存,这种方式的缺点是引入了库存路由组件增加了时延,即每次扣减库存时先要查询库存路由组件,这样其实库存路由组件又变成了热点,并没有很好地解决去热点问题;其次需要分裂KEY,这个过程不是原子的,会导致分裂那一瞬间,因为还没有将分裂的KEY注册到库存路由组件上,导致扣减库存失败;另外扣减时需要轮询这些分裂的KEY,导致最坏的情况性能大幅下降。
发明内容
针对现有技术存在的问题,本发明的目的在于提供一种热点库存本地化扣减方法、系统、设备以及介质,通过将部分库存本地化,将分布式库存扣减逻辑本地化,实现了多级库存,将部分库存增量更新到应用本地,保证了任何瞬间都有库存可扣,从而提高了整个系统交易的可靠性。
根据本发明的一个方面,提供一种热点库存本地化扣减方法,应用于订单结算服务,包括以下步骤:
于一本地数据库预存至少一种商品的预购件数;
接收一订单,所述订单包括该商品的购买数量;
判断所述本地数据库中的该商品的所述预购件数是否小于所述订单中的该商品的所述购买数量:
若是,则对一集群数据库中的该商品的库存数扣减该商品的所述购买数量;
若否,则对所述本地数据库的所述预购件数扣减该商品的所述购买数量。
优选的,所述本地数据库与所述集群数据库分别形成于不同服务器。
优选的,所述对所述本地数据库的所述预购件数扣减该商品的所述购买数量之和,还包括:
生成一与所述订单对应的扣减流水信息,并将所述扣减流水信息存储于所述本地数据库。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司,未经北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811394130.2/2.html,转载请声明来源钻瓜专利网。
- 同类专利
- 专利分类
G06Q 专门适用于行政、商业、金融、管理、监督或预测目的的数据处理系统或方法;其他类目不包含的专门适用于行政、商业、金融、管理、监督或预测目的的处理系统或方法
G06Q10-00 行政;管理
G06Q10-02 .预定,例如用于门票、服务或事件的
G06Q10-04 .预测或优化,例如线性规划、“旅行商问题”或“下料问题”
G06Q10-06 .资源、工作流、人员或项目管理,例如组织、规划、调度或分配时间、人员或机器资源;企业规划;组织模型
G06Q10-08 .物流,例如仓储、装货、配送或运输;存货或库存管理,例如订货、采购或平衡订单
G06Q10-10 .办公自动化,例如电子邮件或群件的计算机辅助管理