限购设计

news/2024/11/17 22:26:57/

我们的限购是耦合在商品,当作商品和sku属性,而不是单独的限购模块。
限购需要在结算页及提交订单时进行校验。购物车和商品详情不校验历史,只校验当前加购数。
所以重点及难点在于下单,就以下单为例说明限购设计。
下单时,在校验完参数及优惠券、活动有效性等校验之后,增改业务之前,调用限购校验服务。
限购校验服务的流程是,当前此次订单用户购买的sku,加上查询出的用户历史购买这些sku的购买数,在商品级别及sku级别有没有超过限购数。剔除已退款及已取消订单。
难点在于,怎样防并发超限,以及怎样在此基础上尽可能做到高性能。
方案一:分布式锁
朴素的情况看来,是可以通过分布式锁来保证超限的,因为我们的业务只针对用户ID限购,所以锁的粒度设置为用户ID即可。锁开始于限购服务查询历史订单前,终止于订单保存db后。
但是,我们的下单方法上加了事务,异常处理也依靠事务回滚。由此引发,事务未提交时的数据隔离性。如果用户以某些方式飞快下了多单,前一个请求还没有提交事务,后一个请求来捞历史订单,就产生了超限的情况。
所以如果只使用分布式锁,若事务等级是可重复读或以下,则必须在限购服务查询历史订单前加锁,在事务提交后释放锁。在我们项目里则是在下单的方法外部解锁。
我们需要考虑到下单的异常情况,则需要在下单方法外部进行try catch,在finally中解锁。
但我们不确定的是,在哪一步抛出的异常或返回,如果是在限购加锁之前,则会出现释放了别的线程的锁或不存在的锁的情况。
且这种方式入侵原有业务较多,不能当成独立的限购服务。


http://www.ppmy.cn/news/440010.html

相关文章

青岛

(我们将只与选中的候选人联系,恕不一一通知) 地 址:青岛保税区北京路29号邮政编码:266555联 系 人:江女士电 话:(0532)86769686电子邮箱:qdcmhk263.net

青岛...

坐了一天一夜的火车,终于到了这座城市。看着火车上形形色色的人们,感觉到自己见识的浅薄,果然是行千里路,读万卷书啊。火车上有一群人好像是藏民,很黑,我不知道是不是紫外线的长久照射所造成的,…

购房新政:减免住房交易税 放宽还迁房上市条件

10月17日,国务院常务会议提出“加大保障性住房建设规模,降低住房交易税费,支持居民购房”的要求。为促进本市房地产市场健康发展,根据财政部、国家税务总局、中国人民银行有关文件精神,结合本市实际,经市政府同意,市建委、市国土房管局、市财政局、人民银行天津分行等部门,制定…

【购房必备知识】成都落户政策调研(主要介绍——研究生落户)

文章目录 普通高校全日制本科及以上学历毕业生入户入户条件:入户材料:办理流程 参考 注:购房落户2018年后已取消(2018年前买房不受影响)! 普通高校全日制本科及以上学历毕业生入户 入户条件: 全日制普通大学本科及以…

外地人在成都买房被限购怎么办?看完就知道

从2016年开始,全国多个城市开始实行限购政策,一般对外地人购房的要求变得更为严格。那么如果外地人买房被限购怎么办? 一、按规定提供社保或者个税证明 在限购城市的购房要求中,一般会要求外地人满足一定的社保条件,因…

雄安周边各县区限购限贷政策一览2019(持续更新)

原文链接:http://bd.bendibao.com/live/2018530/3865.shtm 自2017年河北省印发《关于进一步促进全省房地产市场平稳健康发展的实施意见》以来,保定目前共有 主城区(莲池、竞秀、高新)、定兴县、满城区、高碑店、徐水区、清苑区…

成都二套房限购政策有哪些,看完就知道

伴随着成都房管局限购政策的出台,后续房管局也陆陆续续出台了相应的完善措施,如果你对这方面比较感兴趣,或者你最近正打算购房的话,可以跟着川信地产网小编一起来看看,希望下面的知识对你有所帮助。 《成都关于进一步加…

北京两限房政策出炉 限定北京户口未提绿卡

北京市两限房购买、管理等相关政策试行办法新鲜出台。 对于普遍关注的准入准出细则,规定两限房申请人须具有本市户口(此前有媒体报道持京绿卡市民也可购买,但在最新出台的管理办法中并未体现);单身家庭提出申请的&…