如大家所了解的,对于分布式架构通常会有一个 Master 角色负责调度资源,管理并在节点间去调度资源用 sourcer 表示,保证资源的均衡。manager 是管理 sourcer 的逻辑载体。因为涉及到数据一致性,无论是 Master 之间的分布式锁实现 HA ,还是不同的 manager 对 sourcer 的访问控制,这里对于分布式锁的需求就是绝对互斥性是第一位的。
无论是 Master 选主,还是 manager 的 sourcer 互斥,均需要常驻分布式锁,这里的一个技术选型是自研的 Paxos 协议,还是依赖三方的分布式一致性系统。
我们看到,上层模块本身再做一遍数据一致性的必要性就有限了,况且自身去实现一个 paxos 是复杂度以及可靠性要求很高的事情。
追求效率的场景:
追求“效率提升”的分布式锁在业界被广泛需求,通常也会基于异步复制的分布式系统来提供分布式锁服务,根据业务系统的基本成本,对系统可靠性的要求以及分布式锁性能等诸多方面考量。
在电商平台上,一方面用户侧的订单行为本身会直接操作商品的库存,另一方面后台任务也会定期更新库存。大多数情况下都希望这两类操作在同一时间段最多只有一个,从而保证库存数据不会错乱,这是个典型的追求“效率提升”的分布式锁应用场景。