场景的变化场景特点变化点老复杂的业务逻辑新大量用户高并发访问软件开发方法,过程管理,组织架构变化垂直伸缩提高服务器的硬件配置来支撑;两个问题:物理服务器的硬件性能上限;投入的成本跟性能提升不成线性关系;水平伸缩使用更多的服务器形成集群来支撑分布式架构的演进缓存背景分布式架构中,使用缓存可以优化绝大部分的性能。分类按照谁来操作数据源可以分为两类缓存;通路缓存缓存组件直接连接数据源并更新缓存使用场景:
分类:
其他好文 时间:
2020-03-01 23:25:55
阅读次数:
132
1.为什么使用锁: 解决并发操作数据引起脏读,数据不一致的情况; 锁对象:java中任何非null对象; 2.实现方法: 有两种方式:synchronized关键字和并发包中的锁类 // (1):加静态方法上面,表示会监视这个类对象 public static synchronized void s ...
分类:
其他好文 时间:
2020-02-18 20:16:19
阅读次数:
84
引言 之前在深入了解数据库理论的时候,了解到事务的不同隔离级别可能存在的问题。为了更好的理解所以在MySQL数据库中测试复现这些问题。关于脏读和不可重复读在相应的隔离级别下都很容易的复现了。 但是对于幻读,我发现在可重复读的隔离级别下没有出现,当时想到难道是MySQL对幻读做了什么处理? 测试: 创 ...
分类:
数据库 时间:
2020-02-08 11:48:54
阅读次数:
96
Timestamp就是时间戳,主要用于数据库中,该类在java.sql下。如果在数据库中用Date类,只能到某一天,而时间戳可以到秒,比Date要精确,通常用于防止数据脏读现象。 代码: package TimeAndStamp; import java.util.Arrays; import ja ...
分类:
编程语言 时间:
2020-02-08 10:14:12
阅读次数:
82
"SpringBoot 系列教程之事务隔离级别知识点小结" 上一篇博文介绍了声明式事务 的简单使用姿势,最文章的最后给出了这个注解的多个属性,本文将着重放在事务隔离级别的知识点上,并通过实例演示不同的事务隔离级别下,脏读、不可重复读、幻读的具体场景 I. 基础知识 在进入正文之前,先介绍一下事务隔离 ...
分类:
编程语言 时间:
2020-02-03 11:31:43
阅读次数:
84
1 import java.util.concurrent.TimeUnit; 2 3 /** 4 * 对写业务加锁 5 * 对读业务不加锁 6 * 脏读 7 */ 8 public class Account { 9 10 String name; 11 double balance; 12 13 ...
分类:
编程语言 时间:
2020-01-31 20:53:53
阅读次数:
104
事务隔离级别 | 隔离级别 | 脏读 | 不可重复读 | 幻读 | | : | : | : | : | | 读未提交 | 可以出现 | 可以出现 | 可以出现 | | 读提交 | 不允许出现 | 可以出现 | 可以出现 | | 可重复读 | 不允许出现 | 不允许出现 | 可以出现 | | 序列化 ...
分类:
数据库 时间:
2020-01-23 15:18:47
阅读次数:
98
脏读 读取未提交数据 。脏读即事务A读取到事务B未提交的数据,如果此时事务B数据回滚,事务A仍然是使用旧的数据即是脏的数据。 |顺序|事务A|事务B| |: |: |: | |1||开始事务| |2|开始事务|| |3||查询余额2000元| |4||取出1000元剩余1000元| |5|查询余额剩 ...
分类:
数据库 时间:
2020-01-21 10:55:43
阅读次数:
138
数据库事务的隔离级别有4种,由低到高分别为Read uncommitted 、Read committed 、Repeatable read 、Serializable 。而且,在事务的并发操作中可能会出现脏读,不可重复读,幻读。下面通过事例一一阐述它们的概念与联系。 Read uncommitte ...
分类:
其他好文 时间:
2020-01-14 23:58:25
阅读次数:
130
了解事务隔离级别之前先要了解数据库在高并发环境下会遇到的几个问题: 1. 脏读: 事务 A 读取了事务 B 更新的数据,然后 B 执行回滚操作,那么 A 读到的就是脏数据。 2. 不可重复读: 事务 A 多次读取同一个数据,事务 B 在事务 A 多次读取的过程中,对数据做了更新并提交,导致事务 A ...
分类:
数据库 时间:
2020-01-13 22:17:01
阅读次数:
126