关于为什么使用redis锁,不使用zk锁的原因
实际项目中,redis一直是最为稳定、可靠的部分,你根本不用担心redis本身的问题。至于ap模型的问题,绝大多数分布式锁只是用于避免一些极端情况的,若单一数据会有那么高的并发量你还加锁,那就要考虑这个业务场景设置的合理不合理了。
至于zookeeper实现分布式锁,哪怕抛开一切不谈,仅仅为了一个分布式锁引入zookeeper,那无非会大大增加系统的复杂度。用redis实现分 布式的最大优势在于这年头是个项目就基本redis,但zookeeper国内现在用的越来越少了,甚至不少原本主动依赖zookeeper的中间件也在主动和zookeeper说拜拜了。 总结,redis实现的分布式锁虽然是ap模型,理论上锁竞争比较耗性能,但理论就是理论,实际上绝大多数分布式锁只用于避免一些极端情况。而zookeeper实现分布式锁的最大的问题在于国内项目使用zookeeper的概率并不高,引入zookeeper只为了分布式锁太浪费,还增加系统复杂度。