在昨天的《事务管理入门》一文发布之后,有读者联系说根据文章尝试,加了@Transactional注解之后,事务并没有回滚。经过一顿沟通排查之后,找到了原因,在此记录一下,给后面如果碰到类似问题的童鞋一个参考。 问题原因 在前文的描述中,我漏了一个细节,其实在示例代码中,与之前拿的基础例子在配置中有一 ...
分类:
其他好文 时间:
2020-07-13 09:30:11
阅读次数:
63
一、事务简单介绍 事务指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功。 1.1 事务基本要素 原子性(Atomicity): 事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。也就 ...
分类:
编程语言 时间:
2020-07-12 19:16:06
阅读次数:
83
一 点睛 Spring Data JPA对所有默认方法都开启了事务支持,且查询类事务默认启用readOnly=true属性。 二 SimpleJpaRepository缩减版源码 @Repository @Transactional(readOnly = true) public class Sim ...
分类:
编程语言 时间:
2020-07-12 18:40:24
阅读次数:
76
本文介绍使用开源的repmgr组件配置PostgreSQL12的replication以及failover。1、环境信息2、安装PG软件包所有节点安装PostgreSQL12以及repmgr软件包。[root@hwd04~]#dnf-yinstallhttps://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-red
分类:
数据库 时间:
2020-07-09 17:58:16
阅读次数:
75
GTID 资料 MySQL 5.6 引入了global transaction identifiers (GTIDs,全局事务ID)的特性,这一特性是用来解决主从复制(replication)场景下的一些问题,GTID 只存在于 binlog 中,数据库中是没有的。 要了解 GTID 的话,官方文档 ...
分类:
数据库 时间:
2020-07-08 21:33:35
阅读次数:
95
@Transactional(propagation=PROPAGATION_REQUIRED) pubilc void methodA(){ doPreSomething; methodB(); doSufSomething; } @Transactional(propagation=PROPAG ...
分类:
编程语言 时间:
2020-07-04 18:51:18
阅读次数:
84
Spring中的@Transactional注解支持9个属性的设置,这里只讲解其中使用较多的三个属性:readOnly、propagation、isolation。其中propagation属性用来枚举事务的传播行为,isolation用来设置事务隔离级别,readOnly进行读写事务控制, 参数名 ...
分类:
编程语言 时间:
2020-07-02 19:46:37
阅读次数:
57
记录一次项目中遇到的事务不生效问题: SpringBoot事务配置: 1.启动类开启事务注解 @EnableTransactionManagement 2.service 方法加上事务注解 @Transactional只会监听RuntimeException, 加上rollbackFor = Exc ...
分类:
编程语言 时间:
2020-07-02 18:30:19
阅读次数:
52
处理事务回滚 参考文献:《极客时间-Java业务开发常见错误100例》https://time.geekbang.org/column/article/213295 大多数Spring Boot项目只需要在方法上标记@Transactional注解,即可一键开启方法的事务性配置。 保证事务生效 务必 ...
分类:
其他好文 时间:
2020-06-30 17:43:10
阅读次数:
66
Redis为什么需要集群? 首先Redis单实例主要有单点,容量有限,流量压力上限的问题。 Redis单点故障,可以通过主从复制replication,和自动故障转移sentinel哨兵机制。 但Redis单Master实例提供读写服务,仍然有容量和压力问题,因此需要数据分区,构建多个Master实 ...
分类:
其他好文 时间:
2020-06-26 18:08:20
阅读次数:
59