![](https://img-blog.csdnimg.cn/20190908120440260.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
分布式
文章平均质量分 67
分布式
swadian2008
不积跬步,无以至千里;不积小流,无以成江海
展开
-
Redisson实现分布式锁
1、Redisson简介Redis 是最流行的 NoSQL 数据库解决方案之一,而 Java 是世界上最流行(注意,没有说“最好”)的编程语言之一。虽然两者看起来很自然地在一起“工作”,但是要知道,Redis 其实并没有对 Java 提供原生支持。相反,作为 Java 开发人员,我们若想在程序中集成 Redis,必须使用 Redis 的第三方库。而 Redisson 就是用于在 Java 程序中操作 Redis 的库,它使得我们可以在程序中轻松地使用 Redis。Redisson 在 java.ut原创 2022-03-07 22:27:21 · 19388 阅读 · 8 评论 -
redis实现分布式锁(案例)
目录1、业务场景引入2、基础环境准备3、Redis实现分布式锁4、分布式锁测试1、业务场景引入模拟一个电商系统,服务器分布式部署,系统中有一个用户下订单的接口,用户下订单之前需要获取分布式锁,然后去检查一下库存,确保库存足够了才会给用户下单,然后释放锁。由于系统有一定的并发,所以会预先将商品的库存保存在redis中,用户下单的时候会更新redis的库存。2、基础环境准备2.1.1.准备库存数据库-- ------------------------------ Ta原创 2022-03-06 21:42:32 · 2002 阅读 · 2 评论 -
分布式锁实现原理(redis实现)
首先,为了确保分布式锁可用,我们至少要确保锁的实现同时满足以下四个条件:互斥性。在任意时刻,只有一个客户端能持有锁。 不会发生死锁。即使有一个客户端在持有锁的期间崩溃而没有主动解锁,也能保证后续其他客户端能加锁。 具有容错性。只要大部分的Redis节点正常运行,客户端就可以加锁和解锁。 解铃还须系铃人。加锁和解锁必须是同一个客户端,客户端自己不能把别人加的锁给解了。下边是代码实现,首先我们要通过Maven引入Jedis开源组件,在pom.xml文件加入下面的代码:<dependenc原创 2022-03-06 16:59:34 · 748 阅读 · 0 评论 -
分布式锁概述
一、引入业务场景业务场景一商品下单如果是分布式部署的,多个用户同时购买同一个商品时,就可能导致商品出现库存超卖 (数据不一致) 现象。业务场景二小T在压测时,发现个小问题,因为在终端设备上跟鹅厂有紧密合作,调用他们的接口时需要获取到access_token,但是这个access_token过期时间是2小时,过期后需要重新获取。压测时发现当到达过期时间时,日志看刷出来好几个不一样的access_token,因为这个服务也是分布式部署的,多个节点同时发起了第三方接口请求导致。虽然以最后一原创 2022-03-06 16:31:20 · 389 阅读 · 0 评论