美文网首页
分布式事务框架

分布式事务框架

作者: 八步里 | 来源:发表于2020-07-04 22:19 被阅读0次

    1. 事务

    在计算机术语中,事务是指访问并可能更新数据库中各项数据项的一个程序执行单元,事务有高级数据库编程语言手写的用户程序的执行所引起。事务的执行需要包含事务开始到事务结束整个过程。

    1.1 事务的性质(ACID特性)

    • 原子性:事务的执行只有全部完成或全部未完成
    • 一致性:事务必须使数据库从一个一致性的状态到另一个一致性状态,原子性是一致性的基础
    • 隔离性:一个事务执行时其内部操作对并发的其他事务是隔离的,并发执行的多个事务之间不能互相干扰
    • 持久性:一个事务一旦提交就对数据库中的数据产生永久性影响,接下来的操作或者故障对其不应该用影响。

    1.2 分布式事务

    从单机的数据库事务变成分布式事务时,原有单机中相对可靠的方法调用以及进程间通信方式已经没有办法使用,同时由于网络通信经常是不稳定的,所以服务之间信息的传递会出现障碍。模块(或服务)之间通信方式的改变是造成分布式事务复杂的最主要原因,在同一个事务之间的执行多段代码会因为网络的不稳定造成各种奇怪的问题,当我们通过网络请求其他服务的接口时,往往会得到三种结果:正确、失败和超时,无论是成功还是失败,我们都能得到唯一确定的结果,超时代表请求的发起者不能确定接受者是否成功处理了请求,这也是造成诸多问题的诱因。

    无论是事务还是分布式事务实现原子性都无法避免对持久存储的依赖,事务使用磁盘上的日志记录执行的过程以及上下文,这样无论是需要回滚还是补偿都可以通过日志追溯,而分布式事务也会依赖数据库、Zookeeper 或者 ETCD 等服务追踪事务的执行过程,总而言之,各种形式的日志是保证事务几大特性的重要手段。

    相关文章

      网友评论

          本文标题:分布式事务框架

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