前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >分布式事务初识

分布式事务初识

作者头像
日薪月亿
发布2019-05-14 14:28:17
3970
发布2019-05-14 14:28:17
举报
文章被收录于专栏:技术探索技术探索

1. 数据库事务认知

在开发中,我们常接触的及时数据库事务。但是一般人都知道数据库事务的几个特新ACID:

  • 原子性(Atomicity)
  • 一致性( Consistency
  • 隔离性或独立性(Isolation)
  • 持久性(Durabilily)

但是再往下,比如问到隔离性指的是什么的时候可能就不知道了,或者是知道隔离性是什么但是再问到数据库实现隔离的都有哪些级别,或者是每个级别他们有什么区别的时候可能就不知道了。

2. 分布式事务

在数据库正常运行情况下的事务我们很好理解。但是当数据库在执行事务的时候突然宕机了,比如断电、关机等等,这个时候怎么能保证事务呢? 网上有很多相关的资料,大家可以了解下。 什么是分布式事务 分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。简单的说,就是一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属于不同的应用,分布式事务需要保证这些小操作要么全部成功,要么全部失败。本质上来说,分布式事务就是为了保证不同数据库的数据一致性。 参考 https://mp.weixin.qq.com/s/W7XeNKIwB-JxnyStq0xD6g

分布式系统的核心就是处理各种异常情况。

这也是分布式系统复杂的地方,因为分布式的网络环境很复杂,这种“断电”故障要比单机多很多,所以我们在做分布式系统的时候,最先考虑的就是这种情况。这些异常可能有

  • 机器异常
  • 网络异常
  • 消息丢失、乱序
  • 数据错误
  • 不可靠的TCP
  • 存储数据丢失
  • 其他异常等等…

2.1 分布式理论

在分布式环境下,不可能做到满足事务的ACID特性。那么我们该怎么办呢? 现在常用的分布式事务方案是基于CAP定理的,何为CAP?

CAP定理是由加州大学伯克利分校Eric Brewer教授提出来的,他指出WEB服务无法同时满足一下3个属性:

  • 一致性(Consistency) : 客户端知道一系列的操作都会同时发生(生效)
  • 可用性(Availability) : 每个操作都必须以可预期的响应结束
  • 分区容错性(Partition tolerance) : 即使出现单个组件无法可用,操作依然可以完成 通俗的讲,在分布式环境下,最多只能满足CAP定理中的两个。但是任何策略都要依赖数据分区,一次最终我们要在一致性和可用性之间做出选择。

对于CP来说,放弃可用性,追求一致性和分区容错性,我们的zookeeper其实就是追求的强一致。 对于AP来说,放弃一致性(这里说的一致性是强一致性),追求分区容错性和可用性,这是很多分布式系统设计时的选择,后面的BASE也是根据AP来扩展。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-11-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 数据库事务认知
    • 2. 分布式事务
      • 2.1 分布式理论
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档