返回

Java事务编程的登峰造极之境——总结

后端

当我们将目光聚焦于事务编程的宏观时,我们需要考虑事务对数据库的性能以及扩展性的影响。2PL(Two-Phase Locking)虽然能够很好地保证事务的串行化,但是代价就是性能的下降和扩展性的不足。

而一些性能较好的弱隔离级别,如读未提交和读已提交,却很容易产生并发异常。

可重复读隔离级别虽然能够避免并发异常,但是却会降低性能,而且扩展性也不太好。串行化隔离级别能够保证事务的串行化,但是性能非常差,而且扩展性也极差。

为了解决这些问题,业界提出了各种各样的并发控制技术,比如乐观并发控制、悲观并发控制、时间戳并发控制和多版本并发控制等。

这些技术各有优缺点,需要根据实际情况进行选择。

事务隔离级别是数据库系统为保证事务并发执行的正确性而采取的一种机制。

它定义了在并发环境下事务之间相互影响的程度。

隔离级别越高,事务之间的相互影响就越小,但性能也越差。

事务传播行为定义了事务在跨方法调用时如何传播。

事务超时时间是指事务可以执行的最大时间,超过该时间,事务将被回滚。

事务回滚是指当事务无法正常执行时,将事务执行过程中所做的所有修改回退到事务开始前的状态。

事务补偿是指当事务无法正常执行时,通过执行另一个事务来恢复数据的一致性。

分布式事务是指跨越多个数据库的事务。

XA (X/Open XA) 是一个分布式事务处理的标准,它定义了分布式事务的接口和协议。

二阶段提交是分布式事务处理中的一种协议,它将分布式事务的提交过程分为两个阶段:准备阶段和提交阶段。

Saga 是分布式事务处理中的一种模式,它将分布式事务分解为一系列小的、独立的事务,这些事务可以独立地提交或回滚。

TCC (Try-Confirm-Cancel) 是分布式事务处理中的一种模式,它将分布式事务分解为三个阶段:尝试阶段、确认阶段和取消阶段。

本地事务是指只涉及单个数据库的事务。

全局事务是指跨越多个数据库的事务。

微服务是将一个大型的单体应用程序分解成多个小的、独立的、松耦合的服务。

分布式系统是指由多个独立的计算节点组成的系统,这些节点通过网络进行通信和协调,共同完成一个共同的任务。

高并发是指系统能够同时处理大量并发请求。

可扩展性是指系统能够随着业务量的增长而线性扩展。