
分布式锁
分布式锁实战
sunywz
这个作者很懒,什么都没留下…
展开
-
Redission介绍
原创 2021-04-22 11:08:45 · 759 阅读 · 0 评论 -
Java中锁的解决方案
原创 2021-04-22 11:07:33 · 106 阅读 · 0 评论 -
Java中单体应用锁的局限性&分布式锁
补充学习资料原创 2021-04-22 11:04:58 · 222 阅读 · 0 评论 -
什么是锁
补充学习资料原创 2021-04-22 11:02:18 · 126 阅读 · 0 评论 -
基于redis分布式锁解决定时任务重复问题
由于使用for update来实现分布式锁在高并发时,会造成数据库压力过大,所以可以使用redis的setNX特性来实现分布式锁。封装redis分布式锁package com.example.distributelock.lock;import lombok.extern.slf4j.Slf4j;import org.springframework.boot.autoconfigure.data.redis.RedisProperties;import org.springframework.原创 2021-02-16 08:57:13 · 1330 阅读 · 2 评论 -
基于数据库悲观锁的分布式锁
基于synchronized和ReentrantLock锁都只限于在单体架构中使用,当出现分布式跨JVM的情况,需要使用分布式锁来解决跨JVM的问题。解决方法通过select …for update 访问同一条数据for update 锁定数据,其他线程只能等待步骤1.select @@autocommit;查询若是1,则需要设置为0,否则会话会自动提交事务,将两个事务autocommit都设置为0。2.在第一个会话进行查询,再第二会话进行查询,发现无法查询出数据,这是由于第一个会话还未com原创 2021-02-15 16:07:58 · 368 阅读 · 2 评论 -
基于Synchronized锁解决超卖问题(方法锁与块锁)
Synchronized锁主要有方法锁和块锁方法锁在方法前加入synchronized关键字,并在方法内使用手动事务,确保事务被提交后,其他线程才可以进入。否则,若使用注解事务,则会导致第一个线程还未提交事务,此时第二个线程已经进来做库存校验等操作,会导致超卖现象。块锁块锁即是在方法中,对指定的操作进行加锁,确保该操作具有原子性。哪个线程抢占到对象就先执行。在该锁中需要传入一个表达式。这个表达式只要有三种写法this,表示该service实例,而该service是由spring实例化的,是一原创 2021-02-10 11:47:30 · 554 阅读 · 0 评论 -
基于ReentrantLock锁解决超卖问题
@Service@Slf4jpublic class OrderService { @Resource private OrderMapper orderMapper; @Resource private OrderItemMapper orderItemMapper; @Resource private ProductMapper productMapper; //购买商品id private int purchaseProductId原创 2021-02-10 11:26:37 · 602 阅读 · 0 评论 -
OA项目-6.6日
基本知识框架工具解决方案(经典应用)项目 12天==========================================OA项目, 12天BBS一、什么是OA? 辅助管理、提高办公效率的系统。 二、OA中有什么功能? …==========================================一、软件开发的步骤? 1,需求 2,设计原创 2016-06-06 00:57:03 · 5883 阅读 · 0 评论