首先了解什么是并发竞争key

  多个系统同时对同一个key进行操作,最终key的执行顺序跟我们的期望不同,也就导致了结果不同。

怎么解决?

  分布式锁

  zookeeper 和 Redis 都可以实现分布式锁(如果不存在 Redis 的并发竞争 Key 问题,不要使用分布式锁,这样会影响性能)

  基于zookper的临时有序节点能实现分布式锁。

    实现思想:客户端对某个方法加锁时,zookper在与该方法对应指定节点目录上生成一个唯一的瞬时有序节点。

    判断获取锁的方式:有序节点中序号最小的一个

    释放锁:删除瞬时节点

    同时,其可以避免服务宕机导致的锁无法释放,而产生的死锁问题。完成业务流程后,删除对应的子节点释放锁。

    在实践中,当然是从以可靠性为主。所以首推 Zookeeper。

    


发布评论
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

redis补充8之缓存雪崩和缓存穿透问题解决方案知识解答
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。