美文网首页
认识事务管理

认识事务管理

作者: 磊哥小伙子 | 来源:发表于2017-02-08 13:55 被阅读16次

什么是事务?

事务就是以可控的方式对数据资源进行访问的一组操作。

原子性(atomicity):事务所包含的操作是不可分割的整体。要么都做,要么都不做。

一致性(consistency):事务执行前和执行后数据都必须保持一致性。

隔离性(isolation):多个事务对同一数据进行并发访问,各个事务之间的影响程度。不同的隔离级别决定不同事务对同一数据访问的不同行为。

Read UnCommitted。最低的隔离级别,一个事务可以读取另一个事务没有提交的结果。可能导致脏读,不可重复读,幻读

Read Committed。大部分数据库的默认隔离级别,一个事务的更新操作只有在提交之后,别的事务才能读取。可以避免脏读,不能避免不可重复读,幻读。

RepeatTable Read。保证在整个事务过程中,对同一个数据的读取结果一样的。但是不可避免幻读。

Serializable。最高隔离级别。所有事务必须按照顺序执行,避免所有隔离级别带来的问题,但是性能最差,通常情况下,我们采用其他隔离级别和并发锁机制来控制对数据的访问。既保证性能又保证一致性。

持久性(Durability):事务一旦提交,对数据的操作不可逆转。

一个事务处理场景有几个参与者:

Resource Manager。简称RM,它负责存储并管理系统数据资源的状态,比如数据库服务器,JMS消息服务器等都是相应的Resource Manager。

Transaction Processing Monitor。简称TPM,它的职责是在分布式事务场景中协调包含多个RM的事务处理。TPM通常对应特定的软件中间件。

Transaction Manager。简称TM,它可以认为是TPM中的核心模块,直接负责多RM之间事务处理的协调工作,并且提供事务界定,事务上下文传播等功能接口。

Application。以独立存在的或者独立于容器中的应用程序,可以认为是事务边界的出发点。

全局事务。如果整个事务处理过程中有多个RM参与,那么就需要引入TPM来协调多个RM之间的事务处理。TPM将采用两阶段提交协议来保证整个事务的ACID属性。这种场景下的事务就成为全局事务或者分布式事务。

局部事务。如果当前事务只有一个RM参与其中,我们就可以称当前事务为局部事务。如在当前事务中只对一个数据库进行更新,或者只向一个消息队列中发送消息的情况。

全局事务和局部事务的主要区分在于事务中涉及多少RM,而不是系统中实际上有多少RM。

相关文章

  • 认识事务管理

    什么是事务? 事务就是以可控的方式对数据资源进行访问的一组操作。 原子性(atomicity):事务所包含的操作是...

  • Spring-事务机制

    一、Spring事务 事务管理概述 Spring事务管理分为编程式事务管理和声明式事务管理两种 编程式事务:允许用...

  • Spring事务管理方式

    编程式事务管理声明式事务管理

  • 事务管理

    编程式事务管理: 声明式事务管理:

  • 19、Spring-事务机制-使用

    一、简介 Spring事务管理分为编程式事务管理和声明式事务管理两种, 声明式事务管理:底层是建立在Spring ...

  • JPA和事务管理

    1 事务 1.1 事务管理方式 spring支持编程式事务管理和声明式事务管理两种方式。 编程式事务管理使用Tra...

  • Spring声明式事务管理之一:五大属性分析

    1.Spring事务管理概述 Spring事务管理分为编程式事务管理和声明式事务管理两种。编程式事务允许用户在实现...

  • Spring的事务管理

    一.Spring事务管理API介绍 1.事务管理器事务管理器是PlatformTransactionManager...

  • spring使用

    一、事务管理 PlatformTransactionManager事务管理器 TransactionDefinit...

  • J2EE进阶学习——Spring框架(八):事务管理

    Spring事务管理 1.spring事务管理的两种方式第一种 编程式事务管理(不用)第二种 声明式事务管理 基于...

网友评论

      本文标题:认识事务管理

      本文链接:https://www.haomeiwen.com/subject/mksvittx.html