你真的需要分布式锁吗?
用到分布式锁说明遇到了多个进程共同访问同一个资源的问题。一般是在两个场景下会防止对同一个资源的重复访问:
-
**提高效率。**比如多个节点计算同一批任务,如果某个任务已经有节点在计算了,那其他节点就不用重复计算了,以免浪费计算资源。不过重复计算也没事,不会造成其他更大的损失。也就是允许偶尔的失败。
-
**保证正确性。**这种情况对锁的要求就很高了,如果重复计算,会对正确性造成影响。这种不允许失败。
引入分布式锁势必要引入一个第三方的基础设施,比如 MySQL,Redis,Zookeeper 等。这些实现分布式锁的基础设施出问题了,也会影响业务,所以在使用分布式锁前可以考虑下是否可以不用加锁的方式实现?不过这个不在本文的讨论范围内,本文假设加锁的需求是合理的,并且偏向于上面的第二种情况,为什么是偏向?因为不存在 100% 靠谱的分布式锁,看完下面的内容就明白了。
为什么学Java?Java能干什么?
每年转行想做程序员的人都不少,这个行业不像销售一样,你不必要懂那么多人情世故;也不像某些“安稳岗位”一样,工资较低。程序员靠技术恰饭,没有那么多职场周旋,工资也很可观,因此就成为了大多数转行人的第一选择。
Java作为世界上最主流的编程语言之一,也是应用最广泛的编程语言,属于编程语言中老大哥般的存在,是绝大多数人的第一选择。Java广泛的应用市场也直接决定了Java的高就业率,Java程序员最高平均21280元。