课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,越来越多的人都在学习软件编程开发技术,而今天我们就通过案例分析来了解一下,分布式事务的概念与应用场景。
事务是一组不可分组的操作集合,这些操作要么都成功执行,要么都取消执行。典型的需要事务的场景是银行账户间的转账:假如A账户要给B账户转账100元,那么A账户要扣减100元,B账户要增加100元,这两个账户的数据变更都成功才可算作转账成功。更严格来说,可以用ACID四个特性表述事务:
Atomicity:原子性,事务中的所有操作要么都成功执行,要么都取消执行,不能存在部分执行,部分不执行的状态。
Consistency:一致性,举个例子简单的理解就是,A、B两个账户各有100元,无论两个账户并发相互转账多少次,两个账户的资金总额依然是200元。
Isolation:隔离性,并发事务之间的相互影响程度,隔离性也是分级别的:读未提交、读已提交、可重复读等。
Durability:持久性,事务完成后对数据的更改不会丢失。
单体数据库不涉及网络交互,所以在多表之间实现事务是比较简单的,这种事务我们称之为本地事务。
但是单体数据库的性能达到瓶颈的时候,就需要分库(分物理实例),就会出现跨库(数据库实例)的事务需求;随着企业应用的规模越来越大,企业会进一步进行服务化改造,以满足业务增长的需求;当前微服务架构越来越流行,跨服务的事务场景也会越来越多。
这些都是分布式事务的需求。分布式事务是指是指事务的发起者、参与者、数据资源服务器以及事务管理器分别位于分布式系统的不同节点之上。
概括起来,分布式事务有三种场景:
跨数据库分布式事务
跨服务分布式事务
混合式分布式事务
分布式事务中涉及的参与者分布在异步网络中,参与者通过网络通信来达到分布式一致性,网络通信不可避免出现失败、超时的情况,因此分布式事务的实现比本地事务面临更多的困难。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请在707945861群中学习了解。