1.使用場景redis
須要保證一個方法在同一時間內只能被同一個線程執行數據庫
2.實現方式:加鎖和解鎖分佈式
3.方案,考慮因素(性能,穩定,實現難度,死鎖)性能
基於數據庫作分佈式鎖--樂觀鎖(基於版本號)和悲觀鎖(基於排它鎖)線程
基於 redis 作分佈式鎖:setnx(key,當前時間+過時時間)和Redlock機制zookeeper
基於 zookeeper 作分佈式鎖:臨時有序節點來實現的分佈式鎖,Curator方法
基於 Consul 作分佈式鎖數據