技术分析淘宝的超卖宝贝
超卖的定义?当宝贝库存接近0时,如果多个买家同时付款购买此宝贝,将会出现“超卖缺货”现象。
只是猜测,并没有淘宝内部认证。
超卖分析是分布式系统采用弱一致性同步技术的缘故。
包含A和B的分布式系统下订单的步骤:
A接受到订单购买宝贝,宝贝数量-1;
A通知B将宝贝数量-1;
B将宝贝数量-1及提交确认,并答复A;
A收到后提交确认,宝贝购买完成
如上的强同步一致性会导致较高的延时,A和B数据必须同步一致,从性能来看是极其低下的,大量时间花费在cpu和io以外的同步等待。
采用异步强一致性模型的分布式系统编程复杂。
折中的方案是弱一致性的异步同步模型。弱一致模型通常保证某一个时间点以后数据一致,比如1s后其他数据库同步,在商品接近售罄的1s内接到大量订单就会导致各个主机数据不一致,根据投票或者master-slave的原则决策生效的订单,其他主机的订单作为无效超卖订单。