首先先确认方案 方案1:下单后减库存;用户下单,然后库存加锁,判断库存是否充足,用户下单完成,减库存,最后释放库存锁。 方案2:支付才减库存;用户支付,然后库存加锁,判断库存是否充足,用户支付完成,减库存,最后释放库存锁。 当然还有其他方案,这里只阐述我的思考。 (库存加锁的过程有个小细节请看附1) ...
分类:
其他好文 时间:
2020-04-19 13:19:51
阅读次数:
369
答案是先下单再减库存 以 MySQL 作为 DB 为例,下订单就是 insert,在使用索引的情况下,insert 插入是行级锁,支持每秒 4W 的并发。减库存就是 update 操作,命中索引时也是行级锁,但是这是个独占锁,所有的操作都要等待前一个释放锁后才能继续 update。 问题就在这里,根 ...
分类:
其他好文 时间:
2020-04-19 01:01:34
阅读次数:
249
文章转自:http://www.tools138.com/create/article/20150929/020009847.html 单利模式的优缺点和使用场景 首先介绍一下单例模式: 单例模式(Singleton),也叫单子模式,是一种常用的软件设计模式。在应用这个模式时,单例对象的类必须保证只 ...
分类:
其他好文 时间:
2020-04-17 16:03:39
阅读次数:
66
单片机个人觉得先掌握其中一种,其它的都可以触类旁通,快速上手了。如果你这些条件都没有,我建议你学习51 单片机。 为什么要学习51单片机: 虽然现在单片机种类和型号非常多,每个型号都有一定的市场份额,但是哪个型号也没有早期 51单片机那般风光和火爆,虽然现在地位不是那么高了,但是因为 51 单片机积 ...
分类:
其他好文 时间:
2020-04-17 15:44:34
阅读次数:
61
很多人觉得自己写的是业务代码,按照逻辑写下去,再把公用的方法抽出来复用就可以了,设计模式根本就没必要用,更没必要学。 一开始的时候,我也是这么想,直到我遇到。。。 举个例子 我们先看一个普通的下单拦截接口。 基本逻辑,参数安全拦截,次数拦截,规则拦截,都通过,返回允许下单,任意一个失败,返回对应的失 ...
分类:
其他好文 时间:
2020-04-17 09:30:44
阅读次数:
55
1、消息队列的消息重复消费 消息重复消费是使用消息队列之后,必须考虑的一个问题,也是比较严重和常见的问题,但凡用到了消息队列,第一时间考虑的就是重复消费的问题。 就比如有这样的一个场景,用户下单成功后我需要去一个活动页面给他加GMV(销售总额),最后根据他的GMV去给他发奖励,这是电商活动很常见的玩 ...
分类:
其他好文 时间:
2020-04-16 00:33:51
阅读次数:
228
转:https://www.cnblogs.com/mayundalao/p/11798502.html 简述 分布式事务指事务的操作位于不同的节点上,需要保证事务的 AICD 特性。 例如在下单场景下,库存和订单如果不在同一个节点上,就涉及分布式事务。 解决方案 在分布式系统中,要实现分布式事务, ...
分类:
其他好文 时间:
2020-04-13 21:08:07
阅读次数:
79
添加新的HMSR 以后, 会有以前的老线索. 它会存历史的老线索.放着不管.重新下单之后去取那些参数. 来匹配 ...
分类:
其他好文 时间:
2020-04-13 13:53:03
阅读次数:
41
题目 解题过程 试了一下单引号,发现存在注入,数据库类型是MariaDB 第一反应是工具跑一下>_<,跑出数据库名称:supersqli 继续跑表名,没跑出来,尝试了下执行sql,也木有任何返回。。。 看了一下当前用户是root,但不是dba,难道是木有权限。。。 再回到页面试了下,发现有过滤关键字 ...
分类:
数据库 时间:
2020-04-07 17:03:41
阅读次数:
475
简介最近项目里有个类似微信朋友圈的九图控件的需求,Github找了一下,发现都不太满足需求,我需要单张图片的时候可以按照图片宽高比列在一定范围内自适应,而大多开源项目单张图片也是一个小正方形,所以,干脆自己动手写一个项目源码具体自定义NineImageLayout过程,可以查看NineImageLayout。效果图如下:主要功能如下:1:单张图片的时候支持按照图片宽高比列在设定区域内自适应2:Ad
分类:
微信 时间:
2020-04-02 10:32:09
阅读次数:
141