一、分布式锁的原理
前言: 随着互联网的快速发展,尤其是电商项目等大型项目越来越火,传统的单机项目已经不能满足业务的需求,在这种情况下出现了分布式、集群以及微服务的概念,随着这些新生的概念的出现同时伴随了一系列开发中的问题,下面来看一下这其中之一的分布式锁。 一、什么是分布式锁: 在这里为了引出分布式锁先来看一个案例,例如在一个大型的电商项目中传统的单击项目会对服务器造成超负荷的压力,而在这时我们往往会采用集群的方式来分担服务器的压力,比如我们搭建了二十多台负责用户支付下订单,同时每一台服务器都存在一个定时任务用来从队列中获取订单进行操作,那么这个时候问题就出现了。 例如A服务器在操作一条订单数据,还没有操作完没来得及修改订单状态,这时B服务器同样查询到了相同的数据进行了操作,这样就会出现严重的脏数据,导致数据的不准确性,这是在支付系统中严重不允许出现的。 而为了保证多台服务器原子性的执行任务,而为每台服务器加一个锁,以确保在某个服务器操作其中一条订单数据时,其他服务器处于阻塞的状态,这样的锁我理解为分布式锁。 二、为什么需要分布式锁: 通过上面的例子我们可以知道,再从在多台服务器集群的情况下会出现例如多线程一样的问题,而在传统的单机服务器的时候,出现线程安全问题我们都是通过加锁来保证代码的原子性操作,避免线程安全问题。 但我们都知道传统我们解决多线程问题加锁