分布式锁可以让多个分布式应用依照先后顺序保持一致性操作,因此在很多方面都有广泛的应用,比如我们在2.1.7计算中的故障处理也谈到2个工头通过竞争一个分布式锁去做任务调度。
LockDemo是利用Fourinone进行分布式锁的实现,设计思路如下:
1)可以启动多个LockDemo实例,每个实例在Fourinone上建立一个自己的node,node的domain为lock,node的值为node(为方便演示,将node的名称和值设为一样)。
2)然后再轮循判断domain lock的第一个元素是否是自己的node,如果是,就执行,这里模拟线程执行8秒,执行完将自己的node删除,代表释放锁;如果不是,就继续等待。