一.分布式锁介绍
由于传统的锁是基于Tomcat服务器内部的,搭建了集群之后,导致锁失效,应该使用分布式锁来处理。
我们要想实现分布式锁,可以使用两种方案:
- 1.基于Zookeeper;
- 2.基于Redis。
下面我分别就两种方案进行代码实现讲解。
先展示一段未加锁时的秒杀需求创建SpringBoot项目,编写抢购的业务。
@RestController
public class SecondKillController {
//1. 准备商品的库存
public static Map itemStock = new HashMap();
//2. 准备商品的订单
public static Map itemOrder = new HashMap();
static{
itemStock.put("牙刷",10000);
itemOrder.put("牙刷",0);
}
@GetMapping("/kill")
public String kill(String item) throws InterruptedException {
//1. 减库存
Integer stock = itemStock.get(item);
if(stock
关注
打赏
热门博文
- 异常解决及问题分析博客系列汇总
- SpringBoot2.x系列教程汇总-从入门到精通
- 跟一一哥学Java系列之从入门到精通教程汇总
- 高薪程序员&面试题精讲系列156之你还有什么要问的吗?你平时怎么学习?
- 高薪程序员&面试题精讲系列155之项目介绍,说说你最熟悉的项目,遇到了哪些困难?
- 高薪程序员&面试题精讲系列154之电商专题(下)-你做过秒杀吗?怎么设计秒杀?订单详情页有哪些要求?
- 高薪程序员&面试题精讲系列153之电商专题(中)-你的电商项目订单是如何设计的?支付流程你熟悉吗?金额是怎么设计的?
- 高薪程序员&面试题精讲系列152之电商专题(中)-SPU是怎么回事?SPU如何设计?SKU又是什么呢?SN你知道吗?
- 高薪程序员&面试题精讲系列151之电商专题(中)-你做过电商项目吗?说说购物车的实现流程吧
- 高薪程序员&面试题精讲系列150之电商专题(上)-你们的电商项目有什么特色?是B2B还是B2C、还是C2C的?直播电商你了解吗?