什么是分布式协调技术?
分布式协调技术主要用来解决分布式环境当中多个进程之间的同步控制,让他们有序的去访问某种临界资源,防止造成"脏数据"的后果。
假设如图所示,有三台机器,每台机器各跑一个应用程序。
然后我们将这三台机器通过网络将其连接起来,构成一个系统。
该系统用来为用户提供服务,对于用户来说,这个系统的架构是透明的(也可以说是云里雾里,模糊不清的),他感觉不到我这个系统是一个什么样的架构。
so,我们就可以把这种系统称作一个分布式系统。
在这个分布式系统中如何对进程进行调度?
假设,第一台机器上挂载了一个资源,然后这三个物理分布的进程都要竞争这个资源
但是,我们并不希望他们同时进行访问,我们希望他们有序的访问,这时候我们就需要一个协调器,来让他们有序的来访问这个资源。
在多线程里面使用的就是锁,来进行控制的。
重点:协调器,即锁。
这个协调器就是我们经常提到的那个锁,比如说"进程1"在使用该资源的时候,会先去获得锁,"进程1"获得锁以后会对该资源保持独占,这样其他进程就无法访问该资源,"进程1"用完该资源以后就将锁释放掉,让其他进程来获得锁,那么通过这个锁机制,我们就能保证了分布式系统中多个进程能够有序的访问该临界资源。
那么我们把这个分布式环境下的这个锁叫作分布式锁。
这个分布式锁也就是我们分布式协调技术实现的核心内容。