微服务或分布式场景,如何设计和使用分布式锁

benjerry / 2023-07-16 / 原文

光谈论方式的话,太多了,数据库、jvm内存、redis、zookeeper都可以,最常用的是基于redis实现的redission框架

 

核心原理众多博客讲的很清楚,面试说个大概应该没问题了

第一点,用的reids的setex命令,因为这个命令是原子操作,不会在设置锁的过程中出现意外

第二点,锁过期问题,redission的解决方案是启用监控线程对锁进行续签

第三点,集群部署redis自身同步没来得及,或者宕机的情况,用redlock算法顺序加锁,超过半数可以加锁成功