Java集群:单体架构升级到集群架构(四)使用REDIS分布式锁
创始人
2025-06-01 15:08:49

我们还是从这张图开始:

这张图是《Java集群:单体架构升级到集群架构(一)使用NGINX建立集群》里面使用的。如果你的代码中使用了synchronized和lock,它们在单体应用中跑得很好,但是在集群环境中就不好用了,因为它们只能锁住自己的tomcat,锁不了其他tomcat。这时候要把synchronized和lock改成分布式锁。常见的分布式锁有数据库的乐观锁悲观锁,zookeeper分布式锁,etcd分布式锁,redis分布式锁等等。我们前面已经使用redis来保存session了,所以今天我们就再使用redis分布式锁。

GitHub:  GitHub - Dengxd/JavaCluster  所有源码都在这里,GitHub经常连不上,要多刷新几次

首先在pom.xml中引入redisson:

org.redissonredisson3.20.0

然后建立一个bean:

@Configuration
public class Configure {@Beanpublic RedissonClient redissonClient() {Config config = new Config();// use "rediss://" for SSL connectionconfig.useSingleServer().setAddress("redis://127.0.0.1:6379");RedissonClient redisson = Redisson.create(config);return redisson;}
}

这样就可以使用redissonClient进行加锁操作

主要的加锁代码也很简单:

RLock lock = redissonClient.getLock("TicketLock");//建立锁
try {lock.lock();//锁住资源//在这里写您要做的工作} catch (Exception e) {e.printStackTrace();return e.getMessage();
}finally {lock.unlock();//释放锁
}

是不是很简单?

要安装redis,可以参考《Java集群:单体架构升级到集群架构(二)实现session共享》

想了解redisson的朋友可以看这篇文章:

最强分布式锁工具:Redisson

网络上介绍redis和redisson的文章太多了,大家可以自己去找一找

相关内容

热门资讯

宁波精达(603088.SH)... 格隆汇12月18日丨宁波精达(603088.SH)公布,公司于2025年12月18日收到股东郑功出具...
传壁仞科技拟圣诞节前启动港股I... 观点网讯:12月18日,国产GPU企业壁仞科技计划于圣诞节前启动港股IPO程序,拟集资5亿至6亿美元...
黑牡丹(600510.SH)子... 黑牡丹(600510.SH)发布公告,近日,公司全资子公司常州黑牡丹置业有限公司以总价 6.77亿元...
豆包大模型联合润欣科技、老凤祥...   炒股就看金麒麟分析师研报,权威,专业,及时,全面,助您挖掘潜力主题机会! (来源:IT之家)I...
万物云回购24万股 总金额46... 万物云(02602)发布公告,2025年12月18日,公司回购股份24万股,回购金额为461万港元。...