1. 项目背景
随着科技的发展、生活质量的提高,人们开始通过手机在电商平台上进行购物,电商平台提供了更方便、更快捷、更丰富的购物体验。在这个复杂的电商平台系统中,我们简化了其核心构成,它主要包括电商系统、商品库存记录表和商品库存数据库,用户在电商平台上付款之前电商系统会先访问商品库存数据库,判断商品库存数量,确保库存足够了用户才会付款成功,同时,电商系统会同步更新商品库存记录表、更新数据库中商品数量,如图1-1所示。
图1-1 用户下单流程
假设当前商品库存数量为1,当用户A下单执行到第3步,且电商系统刚更新商品库存记录表中库存数量为0时,若用户B也下单该商品,但是电商系统判断该商品库存数量为1,则用户B也可以进行付款购买,而实际上此时该商品的库存已经为0,出现了超卖的情况。这个情况就属于资源没有得到协调。
ZooKeeper是一个分布式协调服务,可以用于实现分布式系统中的各种协作和同步机制,包括分布式锁。分布式锁,即分布式系统中的锁,分布式锁是控制分布式系统有序的对共享资源进行操作,在单体应用中可以通过锁实现共享资源访问,而分布式锁可以解决分布式系统中控制共享资源访问的问题。基于ZooKeeper,可以通过构建分布式锁实现商品抢购。
2. 项目目标
(1)客户端连接ZooKeeper。
(2)通过ZooKeeper Java API模拟实现商品抢购。
3.核心技术
(1)ZooKeeper分布式协调服务