在互联网系统发展之初,消耗资源比较小,用户量也比较小,我们只部署一个tomcat应用就可以满足需求。但是随着访问量的增加,一个tomcat难以支撑,这时候我们就需要集群部署tomcat,使用多个tomcat支撑起系统。当大量的请求并发访问的时候,两个tomcat共同承担所有的访问量。从而扣减库存的问题依旧存在。那么什么是分布式锁呢,在说分布式锁之前我们看到单体应用锁的特点就是在一个jvm进行有效,但是无法跨越jvm以及进程。设计思路由于tomcat是java启动的,所以每个tomcat可以看成一个jvm,jvm内部的锁无法跨越多个进程。上图两个tomcat通过第三方的组件实现跨jvm,跨进程的分布式锁。

mysql居然还能实现分布式锁的方法

mysql居然还能实现分布式锁的方法

mysql居然还能实现分布式锁的方法

mysql居然还能实现分布式锁的方法

mysql居然还能实现分布式锁的方法