系統設計 進階

分散式鎖的設計與實作

AI 練習作答

請說明分散式鎖的設計方式。

問題背景

在分散式系統中,多個節點可能同時操作共享資源,需要互斥機制。

解答

基於 Redis 的實作

使用 SET key value NX PX ttl 原子操作加鎖,value 使用 UUID 避免誤刪,Lua Script 保證原子性解鎖。

基於 ZooKeeper 的實作

利用 ZooKeeper 臨時有序節點,搶到最小節點的客戶端持有鎖,節點消失自動釋放。

Redlock 算法

向多個 Redis 實例申請鎖,超過半數成功才算獲得鎖,提高容錯性。

注意事項

  • 鎖過期時間要大於業務執行時間
  • 需要 watchdog 機制自動續期
  • 避免鎖持有者崩潰導致死鎖

✦ AI 模擬面試

輸入你的答案,AI 即時分析精準度與改進空間

登入後即可使用 AI 評分