2023-01-19Spring声明式事务管理属性一、隔离级别1、概念:一个事务与其他事务之间的隔离等级(1,2,4,8)。2、隔离级别:(1)读未提交(1):READUNCOMMTTED存在问题:脏读(读取到了未提交数据)(2)读已提交(2):READCOMMTTED存在问题:可能出现不可重复读(3)可重复读(4):REPEATABLEREAD存在问题:可能出现幻读(4)串行化(8):SERIALIZABLE二、事务超时1、设置事务超时时间,到达指定时间后会强制事务回滚2、类型:int,单位:秒3、默认值:-1(未设置强制回滚)三、事务只读(readonly)1、一般事务方法中只有查询操作时
2023-01-19Spring声明式事务管理属性一、隔离级别1、概念:一个事务与其他事务之间的隔离等级(1,2,4,8)。2、隔离级别:(1)读未提交(1):READUNCOMMTTED存在问题:脏读(读取到了未提交数据)(2)读已提交(2):READCOMMTTED存在问题:可能出现不可重复读(3)可重复读(4):REPEATABLEREAD存在问题:可能出现幻读(4)串行化(8):SERIALIZABLE二、事务超时1、设置事务超时时间,到达指定时间后会强制事务回滚2、类型:int,单位:秒3、默认值:-1(未设置强制回滚)三、事务只读(readonly)1、一般事务方法中只有查询操作时
@Transactional属于是Spring的常用事务处理注解了,最近在开发时偶然发现这个东西竟然不是100%生效的。问题重现:测试一个批处理方法,方法上加了@Transactional后执行,因为加了事务处理注解,没怎么关注SQL执行顺序(反正对事务来说都是原子性的),debug过程发现MongoDB连接有问题,有关Mongo的操作抛出了异常,因为数据库的某个字段是批处理的触发条件,并且在批处理过程中会更新这个字段。重新执行发现数据库(Postgresql)的数据被update了,没有触发。嗯,确实之前没关注这个注解会有不生效的问题,开始处理:首先为了方便测试批处理任务(定时调度的),我在
@Transactional属于是Spring的常用事务处理注解了,最近在开发时偶然发现这个东西竟然不是100%生效的。问题重现:测试一个批处理方法,方法上加了@Transactional后执行,因为加了事务处理注解,没怎么关注SQL执行顺序(反正对事务来说都是原子性的),debug过程发现MongoDB连接有问题,有关Mongo的操作抛出了异常,因为数据库的某个字段是批处理的触发条件,并且在批处理过程中会更新这个字段。重新执行发现数据库(Postgresql)的数据被update了,没有触发。嗯,确实之前没关注这个注解会有不生效的问题,开始处理:首先为了方便测试批处理任务(定时调度的),我在
一,实验分支develop分支,test分支二,实验步骤第一步:提交记录develop分支,提交ClassDevelop类 第二步:合并将develop分支合并到test分支 第三步:revert回滚登录gitlab后台,找到合并test分支的提交记录,点击revert即可达到回滚目的。 三,注意事项问题:revert操做会出现这个问题:如果你回滚后,想重新合并,你会发现,即使你将develop分支的代码重新合并到test分支,都合并不过去。解决方案:找到刚才revert的记录,点击revert即可达到恢复的目的。(无需再合并develop到test,如果develop有新的改动,可以合并
一,实验分支develop分支,test分支二,实验步骤第一步:提交记录develop分支,提交ClassDevelop类 第二步:合并将develop分支合并到test分支 第三步:revert回滚登录gitlab后台,找到合并test分支的提交记录,点击revert即可达到回滚目的。 三,注意事项问题:revert操做会出现这个问题:如果你回滚后,想重新合并,你会发现,即使你将develop分支的代码重新合并到test分支,都合并不过去。解决方案:找到刚才revert的记录,点击revert即可达到恢复的目的。(无需再合并develop到test,如果develop有新的改动,可以合并
该篇文章已经被专栏《从零开始学k8s》收录上一篇文章:k8s核心技术-Controller点击跳转Deployment控制器什么是Deployment控制器Deployment概述Deployment工作原理:如何管理rs和Pod?简单使用Deployment使用YAML创建Pod升级回滚和弹性伸缩应用升级和回滚查看升级状态查看历史版本应用回滚弹性伸缩写在最后什么是Deployment控制器Deployment控制器可以部署无状态应用管理Pod和ReplicaSet部署,滚动升级等功能应用场景:web服务,微服务Deployment表示用户对K8S集群的一次更新操作。Deployment是一个
该篇文章已经被专栏《从零开始学k8s》收录上一篇文章:k8s核心技术-Controller点击跳转Deployment控制器什么是Deployment控制器Deployment概述Deployment工作原理:如何管理rs和Pod?简单使用Deployment使用YAML创建Pod升级回滚和弹性伸缩应用升级和回滚查看升级状态查看历史版本应用回滚弹性伸缩写在最后什么是Deployment控制器Deployment控制器可以部署无状态应用管理Pod和ReplicaSet部署,滚动升级等功能应用场景:web服务,微服务Deployment表示用户对K8S集群的一次更新操作。Deployment是一个
一、假若你始终在一台电脑上提交上传代码,如果你需要回滚到指定commit, 1.直接Gitbash打开本地项目所在文件夹, 2.然后输入指令Gitlog会查看提交历史, 3.找到并复制你要的commithash值(图中蓝色线条所指) 4.输入指令gitreset--hard45c00a6924d2cd8781df1a2f21df17accaa442c3(commithash值) HEAD为指针,HEAD->dev当前分支为dev, 为何只显示四条commit记录?因为命令窗口太小,按ENTER键继续向下查看更早的提交记录,或者直接按END键查看最初的提交记录。 git里复制粘
一、假若你始终在一台电脑上提交上传代码,如果你需要回滚到指定commit, 1.直接Gitbash打开本地项目所在文件夹, 2.然后输入指令Gitlog会查看提交历史, 3.找到并复制你要的commithash值(图中蓝色线条所指) 4.输入指令gitreset--hard45c00a6924d2cd8781df1a2f21df17accaa442c3(commithash值) HEAD为指针,HEAD->dev当前分支为dev, 为何只显示四条commit记录?因为命令窗口太小,按ENTER键继续向下查看更早的提交记录,或者直接按END键查看最初的提交记录。 git里复制粘