分布式锁
分布式锁实战
sunywz
这个作者很懒,什么都没留下…
展开
-
Redission介绍
原创 2021-04-22 11:08:45 · 715 阅读 · 0 评论 -
Java中锁的解决方案
原创 2021-04-22 11:07:33 · 80 阅读 · 0 评论 -
Java中单体应用锁的局限性&分布式锁
补充学习资料原创 2021-04-22 11:04:58 · 180 阅读 · 0 评论 -
什么是锁
补充学习资料原创 2021-04-22 11:02:18 · 96 阅读 · 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 · 1273 阅读 · 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 · 334 阅读 · 2 评论 -
基于Synchronized锁解决超卖问题(方法锁与块锁)
Synchronized锁主要有方法锁和块锁 方法锁 在方法前加入synchronized关键字,并在方法内使用手动事务,确保事务被提交后,其他线程才可以进入。 否则,若使用注解事务,则会导致第一个线程还未提交事务,此时第二个线程已经进来做库存校验等操作,会导致超卖现象。 块锁 块锁即是在方法中,对指定的操作进行加锁,确保该操作具有原子性。哪个线程抢占到对象就先执行。 在该锁中需要传入一个表达式。这个表达式只要有三种写法 this,表示该service实例,而该service是由spring实例化的,是一原创 2021-02-10 11:47:30 · 510 阅读 · 0 评论 -
基于ReentrantLock锁解决超卖问题
@Service @Slf4j public class OrderService { @Resource private OrderMapper orderMapper; @Resource private OrderItemMapper orderItemMapper; @Resource private ProductMapper productMapper; //购买商品id private int purchaseProductId原创 2021-02-10 11:26:37 · 563 阅读 · 0 评论 -
OA项目-6.6日
基本知识框架工具解决方案(经典应用)项目 12天==========================================OA项目, 12天BBS一、什么是OA? 辅助管理、提高办公效率的系统。 二、OA中有什么功能? …==========================================一、软件开发的步骤? 1,需求 2,设计原创 2016-06-06 00:57:03 · 5858 阅读 · 0 评论