Redisson分布式锁主从一致性问题

主从一致性问题是什么?

单机模式下,服务器宕机会造成严重的后果,因此企业实际开发中往往是多台服务器集群模式。集群模式下分为主节点和从节点,主节点负责写操作,如增删改,从节点负责读操作,从主节点中读取数据,因此数据主要存在主节点。

主从同步不可避免存在延迟,这就会导致当Java应用向主节点发送获取锁的请求,主节点接收请求后,锁的信息存储到主节点,此时主从之间还没来得及同步,主节点发生宕机,redis的哨兵发现主节点宕机后会在剩余的从节点选择一个作为新的主节点,但此时新的主节点没有之前的锁,即之前设置的锁已失效,当新的线程发来请求,又可以获取到锁,两个线程就可能发生并发的问题,这就是分布式锁主从一致性问题。

Redisson的multiLock原理

为了解决这个问题,redission提出来了MutiLock锁,使用这把锁咱们就不使用主从了,每个节点的地位都是一样的, 这把锁加锁的逻辑需要写入到每一个主丛节点上,只有所有的服务器都写入成功,此时才是加锁成功,假设现在某个节点挂了,那么它去获得锁的时候,只要有一个节点拿不到,都不能算是加锁成功,就保证了加锁的可靠性。

相关推荐
天天摸鱼的java工程师2 分钟前
RocketMQ 与 Kafka 对比:消息队列选型的核心考量因素
java·后端
uup4 分钟前
SpringBoot 集成 Redis 分布式锁实战:从手动实现到注解式优雅落地
java·redis
LDG_AGI5 分钟前
【推荐系统】深度学习训练框架(二十一):DistributedCheckPoint(DCP) — PyTorch分布式模型存储与加载
pytorch·分布式·深度学习
Java陈序员6 分钟前
数据同步神器!一款搞定多种数据源同步的开源中间件!
java·spring boot·mysql
大G的笔记本10 分钟前
redis相关概念解释
redis
liuhaikang20 分钟前
鸿蒙高性能动画库——lottie-turbo
java·开发语言·nginx
LDG_AGI23 分钟前
【推荐系统】深度学习训练框架(二十三):TorchRec端到端超大规模模型分布式训练+推理实战
人工智能·分布式·深度学习·机器学习·数据挖掘·推荐算法
面对疾风叭!哈撒给24 分钟前
Liunx之Docker 安装启动 influxdb2
java·spring cloud·docker
沛沛老爹26 分钟前
Web开发者快速上手AI Agent:基于Function Calling的提示词应用优化实战
java·人工智能·llm·agent·web·企业开发·function
麦兜*29 分钟前
Spring Boot 启动过程全解析:从main方法到Tomcat启动的魔法之旅
java·spring boot·后端·spring·tomcat·firefox