有些人可能会混淆分布式锁和分布式事物这两个概念,所以在这里进行简单的区别介绍一下。
锁:在单进程的系统中,当存在多个线程可以同时改变某个变量(可变共享变量)时,就需要对变量或代码块做同步,使其在修改这种变量时能够线性执行消除并发修改变量。
锁是用来解决,线程安全问题的。
分布式锁:主要指集群的情况下,多个相同服务同时开启。
- 分布式与单机情况下最大的不同在于其不是多线程而是多进程。
- 多线程由于可以共享堆内存,因此可以简单的采取内存作为标记存储位置。而进程之间甚至可能都不在同一台物理机上,因此需要将标记存储在一个所有进程都能看到的地方。
事物:就是一个会话过程中,对上下文的影响是一致的,要么所有的更改都做了,要么所有的更变都撤销掉。就要么生,要么死。没有半死不死的中间不可预期状态。
在了解分布式事物之前我们先需要了解分布式服务,比如我们的经常买东西的淘宝和京东,在开发的时候,购物车是一个工程,商品是一个工程。在部署的时候讲购物车和商品模块分别部署到了两台服务器上。
那么这个时候,我们向购物车添加一个商品,那么有两个操作,一个是向购物车添加,一个是这个商品的库存减去1。但是这两个服务在两台服务器上面,我们怎么保证这个添加和减去一这两个动作同时更改啊。
分布式事物:就是用来解决上面的问题。分布式服务的情况下数据的一致性。
本篇博客只是简单的用来区分,分布式事物和分布式锁。
推荐一篇好的分布式锁的 博客:https://www.cnblogs.com/suolu/p/6588902.html