SpringBoot实现分布式锁解决秒杀或者抢单问题

一,分布式锁诞生的原因

      为什么分布式锁会诞生?类似于淘宝双11的秒杀活动,同一件商品怎么才能只被一个用户抢到,其他用户抢不到?分布式锁就能巧妙地解决类似秒杀和抢单的问题。技术源于生活,更高于生活。对于阿里的那种的大型秒杀活动,分布式锁只是其中的一环,单单靠分布式锁不足以支撑那种大并发的情景,后续解决方案会陆续更新。本期只讲解分布式锁。

 

二,常见的分布式锁

     1,基于数据库实现的分布式锁

          基于表实现的分布式锁,如果有多个请求同时提交到数据库的话,数据库会保证只有一个操作可以成功,那么我们就可以认为操作成功的那个线程获得了该方法的锁

     2,Redis分布式锁

     主要通过redis的存值取值进行判断的,根据返回的参数判断是否能拿到锁

     3,Zookeeper分布式锁

     利用Zookeeper的顺序临时节点,来实现分布式锁和等待队列。Zookeeper设计的初衷,就是为了实现分布式锁服务的。

 

三,SpringBoot项目中的Redis分布式锁

 

      1,引入相关的依赖

              首先你的springboot项目是需要正常的能够跑通的,然后在你的主pom文件引入redis的相关依赖

   <!--springboot 集成reids-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-redis</artifactId>
                <version>2.1.3.RELEASE</version>
            </dependency>

      2,redis的分布锁的原理

     一般情况像这种经常用到的代码,单独抽一个Redis工具类出来,方

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值