配置,需要设置setEnableTransactionSupport,开启事务 实现理念 使用 setnx(set if not exist)实现分布式锁 setnx性质:如果不存在那么返回 0 ,不存在返回 1 。 ...
分类:
其他好文 时间:
2020-05-11 00:43:56
阅读次数:
57
系统中的业务异常搭建系统框架时,关于异常,我们一般要考虑这样几件事情。系统中有哪些异常这个问题其实很简单:一类是业务异常,例如“用户输入的证件号不合法”、“银行卡四要素鉴权失败”、“余额不足”等业务逻辑上的问题;除此之外的全都是系统异常,例如网络超时、数据库锁超时、甚至堆栈溢出内存溢出等等。业务异常中,有几种特殊的异常。当我们是通过类似乐观锁的方式来检测幂等时,在流程中任何一点上都有可能发现当前
分类:
其他好文 时间:
2020-05-09 10:40:03
阅读次数:
114
在Java并发场景中,会涉及到各种各样的锁,比如:高并发编程系列:4种常用Java线程锁的特点,性能比较、使用场景,这些锁有对应的种类:公平锁,乐观锁,悲观锁等等,这篇文章来详细介绍各种锁的分类: 公平锁/非公平锁 可重入锁 独享锁/共享锁 乐观锁/悲观锁 分段锁 自旋锁 乐观锁 VS 悲观锁 乐观 ...
分类:
编程语言 时间:
2020-05-08 10:15:54
阅读次数:
79
需求:系统中有一个自增的合同编号,在满足并发情况下,生成的合同编号是自增的。 测试工具:Apache Jmeter 实现方法: 创建一个数据库表。编号最大值记录表 表结构类似 CREATE TABLE `project_number_record` ( `id` varchar(64) NOT NU ...
分类:
编程语言 时间:
2020-05-07 20:02:49
阅读次数:
466
支付宝高级Java一面 JVM中的老年代在什么情况下会触发GC? CMS的垃圾回收步骤,G1和CMS的区别? CMS哪个阶段是并发的,哪个阶段是串行的? 谈谈Java线程池,线程池中几个参数含义 谈谈你了解的J.U.C包的JDK源码(CAS、AQS、ConcurrentHashMap、ThreadL ...
分类:
编程语言 时间:
2020-05-07 15:41:53
阅读次数:
100
前言 乐观锁和悲观锁 与 数据库的隔离级别的关系 或者两者使用的场景是什么? 我在网上所能找到的答案,帮助个人的理解。 答案一:事务隔离级别是并发控制的整体解决方案,其实际上是综合利用各种类型的锁和行版本控制,来解决并发问题。锁是数据库并发控制的内部机制,是基础。对用户来说,只有当事务隔离级别无法解 ...
分类:
数据库 时间:
2020-05-06 01:16:09
阅读次数:
70
悲观锁与乐观锁是人们定义出来的概念,你可以理解为一种思想,是处理并发资源的常用手段。其与mysql中提供的锁机制(表锁,行锁,排他锁,共享锁)并不同,后者可以成为前者的实现手段。 悲观锁 顾名思义,就是对于数据的处理持悲观态度,总认为会发生并发冲突,获取和修改数据时,别人会修改数据。所以在整个数据处 ...
分类:
其他好文 时间:
2020-05-02 11:45:58
阅读次数:
70
概要 Elasticsearch在文档更新时默认使用的是乐观锁方案,而Elasticsearch利用文档的一些create限制条件,也能达到悲观锁的效果,我们一起来看一看。 乐观锁与悲观锁 乐观锁 ES默认实现乐观锁,所有的数据更新默认使用乐观锁机制。document更新时,必须要带上currenc ...
分类:
其他好文 时间:
2020-04-30 09:14:02
阅读次数:
61
synchronzied是一个重量级锁 概念:什么叫重量级锁? 就是申请资源必须经过kernel(内核也叫操作系统),调用。 (里面涉及到了用户态(用户空间)和内核态(os)的交互) 轻量级锁:是不经过操作系统。 cas:乐观锁(compare and swap)比较与交换(可以翻看Atomic原子 ...
分类:
其他好文 时间:
2020-04-27 22:51:17
阅读次数:
170
像之前我们说的 synchronized 这种独占锁属于悲观锁。什么是悲观锁呢?简单来说,它是在悲观的认为加锁的这个地方一定会发生冲突。除了悲观锁之后,还有乐观锁,乐观锁的含义就是我乐观的认为这个的地方不会发生冲突,如果没有发生冲突我就正常执行,如果发生了冲突,我就重试。 CAS(compare a ...
分类:
编程语言 时间:
2020-04-27 09:43:15
阅读次数:
65