分布式锁应用场景
秒杀环境下:订单服务从库存中心拿到库存数,如果库存总数大于0,则进行库存扣减,并创建订单
订单服务负责创建订单
库存服务负责扣减库存
模拟用户访问库存
多线程并发访问,出现超卖问题,线程不安全。没有保证原子性
单体锁的分类
单体应用锁指的是只能在 一个JVM 进程内有效的锁。我们把这种锁叫做单体应用锁
- synchronized锁
- ReentrantLock锁
一个 Tomcat 可以看作是一个JVM进程,当大量请求并发到系统时,所有的请求都落在这唯一的一个Tomcat上,如果某些请求方法是需要加锁的,比如:秒杀扣减库存,是可以满足需求的,但是随着访问量的增加,导致一个tomcat 难以支撑,这时我们必然就是集群部署Tomcat ,使用多个