设计一个分布式锁系统

难度: medium

开发一个高可用、可靠且可扩展的分布式锁服务,使分布式应用能够在分布式系统中对共享资源进行获取、持有和释放锁。该服务应避免死锁,减少延迟,并确保在锁获取过程中的公平性。