核心结论:优先选择成熟的分布式锁库而非盲目自研 Lua 脚本,但必须结合业务特性做定制化封装。
1. 针对网络抖动导致的锁提前释放问题,可引入 Redisson 的可重入锁机制并调整看门狗超时时间,同时增加业务层幂等校验。
2. 避免引入 Redlock 多节点方案,该方案在复杂网络拓扑下确实存在脑裂风险,单一 Redis 主节点加哨兵/集群模式在多数秒杀场景下已足够保障强一致性。
3. 性能损耗方面,Redisson 内部基于 Lua 脚本原子执行,性能与手写 Lua 无本质差异,但额外序列化开销需压测评估;运维成本上库的成熟监控指标和降级策略能显著降低排障难度。
4. 替代路径可考虑基于消息队列的最终一致性方案或数据库乐观锁作为兜底,非绝对禁止超卖的业务场景下可放宽锁粒度。注意:高并发核心链路务必设置锁获取失败熔断机制,防止线程堆积引发雪崩。