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

主从一致性问题是什么?

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

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

Redisson的multiLock原理

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

相关推荐
wdfk_prog12 小时前
lely-canopen-rtt:为什么推荐在 RT-Thread 上使用 Lely CANopen 构建主站
java·运维·缓存·docker·容器
Token掘金室12 小时前
JSON模式结构化输出报错
java·服务器·json
秋饼12 小时前
Spring AI 2.0 接入 DeepSeek V4.1 Flash 生产级实战
java·ai·技术分享·后端开发
IT枫斗者枫哥12 小时前
Java 分批导出仍然 OOM?用 32 MiB 堆复现三种 CSV 写法
java
shehuiyuelaiyuehao12 小时前
算法43,外观数列,模拟算法+双指针
java·算法
lhldsg13 小时前
多商户团购系统源码:技术架构选型与二次开发实战指南
java·小程序·架构
亦暖筑序13 小时前
AgentScope Java 实战:@Tool 方法里到底该不该写业务逻辑?
java·agent·ai编程
莫得感情 o13 小时前
Redis 12 · 缓存一致性:数据库与缓存双写怎么不乱
redis·缓存
脉动数据行情113 小时前
Java SpringBoot 国际期货批量采集实践 美原油 / 黄金 / 指数期货定时落库
java·开发语言·spring boot
Zane199413 小时前
写Stream时踩过的坑:中间操作不会真正执行,直到你调用这一个方法
java·后端