分布式系统,需要采用集群,多个服务之间可能需要用到共享数据(redis或者数据库),这时,JVM内的锁已经不能满足跨JVM的需求,因此需采用外部的锁机制
个人理解,不管是java提供的锁还是其他锁,就其思想,就是要有一个大家公用的媒介,作为标识,去控制对于共享资源的操作,因此,分布式系统中,共用媒介便可以作为分布式锁,例如:zookeeper,redis等等,甚至文件都可以
1.获取锁需要互斥
2.有自动失效的机制,防止因为持锁线程挂掉而导致死锁
3.锁的颗粒度
原文:http://my.oschina.net/zhenglingfei/blog/403442