锁和事务解决的是两个问题。锁解决的是多线程对共享资源的访问,分布式锁就是说在集群环境下,如何控制不同机器上的多线程对共享资源的访问。事务解决的是ACID问题,如何使数据从一个一致性状态到另一个一致性的状态,分布式锁就是在集群环境下,如果使在不同机器上的数据执行操作使数据从一个一致性状态到另一个一致性状态。所以,没有分布式事务锁这个概念。 通常说的分布式锁,我们可以基于数据库for update实现、缓存redis实现、zookeeper实现;分布式事务通常通过2pc、3pc、基于消息的事务来实现。