ZooKeeper实现分布式锁-库存超卖
我们在购物平台后买书籍,有时候会遇到秒杀活动。
由于库存有限,在活动开始时,用户会大量点击抢购按钮进行下单,在外界条件允许下,大量的请求被提交到系统的接口进行处理。
第一步:查询并判断用户是否抢购过该书籍
第二步:查询并判断当前书籍是否库存充足
第三步:更新书籍的库存并插入用户抢购记录(共享资源)
书籍查询模块:
包含两个核心流程,一个是根据用户账户得到id与书籍编号查询抢购记录,另一个是根据书籍编号查询库存是否充足
书籍库存更新模块:
一个是当用户抢购成功时需要及时更新书籍的库存,另一个是在成功更新库存的同时需要插入用户抢购记录。