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

主从一致性问题是什么?

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

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

Redisson的multiLock原理

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

相关推荐
程序媛徐师姐17 小时前
Java基于SSM的社会救助信息管理系统,附源码+文档说明
java·社会救助信息管理系统·java社会救助信息管理系统·ssm社会救助信息管理系统·社会救助·java社会救助信息管理·java社会救助管理系统
爱笑的眼睛1117 小时前
深度解析现代OCR系统:从算法原理到高可用工程实践
java·人工智能·python·ai
武子康17 小时前
Java-207 RabbitMQ Direct 交换器路由:RoutingKey 精确匹配、队列多绑定与日志分流实战
java·消息队列·rabbitmq·erlang·ruby·java-rabbitmq
2501_9167665417 小时前
idea多模块项目运行设置
java·intellij-idea
Knight_AL17 小时前
CMS vs G1 GC 写屏障:拦截时机与漏标的根本原因
java·jvm·算法
陈震_18 小时前
《字节外包二面凉经》
java·字节外包
共享家952718 小时前
从 Redis 到分布式架构
redis·分布式·架构
2301_7973122618 小时前
学习Java29天
java·算法
苹果醋318 小时前
java设计模式之责任链模式
java·运维·spring boot·mysql·nginx
爱笑的眼睛1118 小时前
深入 Django 表单 API:从数据流到高级定制
java·人工智能·python·ai