綜合講講方案:
使用場景
需要保證一個(gè)方法在同一時(shí)間內(nèi)只能被同一個(gè)線程執(zhí)行
實(shí)現(xiàn)方式:
加鎖和解鎖
方案,考慮因素(性能,穩(wěn)定,實(shí)現(xiàn)難度,死鎖)
基于數(shù)據(jù)庫做分布式鎖--樂觀鎖(基于版本號(hào))和悲觀鎖(基于排它鎖)
基于 redis 做分布式鎖:setnx(key,當(dāng)前時(shí)間+過期時(shí)間)和Redlock機(jī)制
基于 zookeeper 做分布式鎖:臨時(shí)有序節(jié)點(diǎn)來實(shí)現(xiàn)的分布式鎖,Curator
基于 Consul 做分布式鎖