文档章节

分布式系统事务一致性解决方案

xiongsheng
 xiongsheng
发布于 2018/03/13 14:44
字数 579
阅读 66
收藏 0

强一致

当更新操作完成之后,任何多个后续进程或者线程的访问都会返回最新的更新过的值。这种是对用户最友好的,就是用户上一次写什么,下一次就保证能读到什么。根据 CAP 理论,这种实现需要牺牲可用性。

弱一致性

系统并不保证续进程或者线程的访问都会返回最新的更新过的值。系统在数据写入成功之后,不承诺立即可以读到最新写入的值,也不会具体的承诺多久之后可以读到。

最终一致性

弱一致性的特定形式。系统保证在没有后续更新的前提下,系统最终返回上一次更新操作的值。在没有故障发生的前提下,不一致窗口的时间主要受通信延迟,系统负载和复制副本的个数影响。DNS 是一个典型的最终一致性系统。

 

在工程实践上,为了保障系统的可用性,互联网系统大多将强一致性需求转换成最终一致性的需求,并通过系统执行幂等性的保证,保证数据的最终一致性。

TCC是应用层的2PC(2 Phase Commit, 两阶段提交),如果你将应用看做资源管理器的话。       详细来说,TCC每项操作需要做的事情如下:

1、Try:尝试执行业务。

  • 完成所有业务检查(一致性)
  • 预留必须业务资源(准隔离性)

2、Confirm:确认执行业务。

  • 真正执行业务
  • 不做任何业务检查
  • 只使用Try阶段预留的业务资源

3、Cancel:取消执行业务

  • 释放Try阶段预留的业务资源

分布式领域CAP理论,
Consistency(一致性), 数据一致更新,所有数据变动都是同步的
Availability(可用性), 好的响应性能
Partition tolerance(分区容忍性) 可靠性

定理:任何分布式系统只可同时满足二点,没法三者兼顾。
忠告:架构师不要将精力浪费在如何设计能满足三者的完美分布式系统,而是应该进行取舍。

 

© 著作权归作者所有

上一篇: TCP协议图解
下一篇: mybatis
xiongsheng
粉丝 2
博文 68
码字总数 35128
作品 0
程序员
私信 提问
如何解决分布式系统数据事务一致性问题(HBase加Solr)

摘要:对于所有的分布式系统,我想事务一致性问题是极其非常重要的问题,因为它直接影响到系统的可用性。本文以下所述所要解决的问题是:对于入HBase和Solr的过程,如何保证HBase中写入的数据...

飞翼
2016/12/13
45
0
分布式事务数据库发展及特点

分布式数据库发展背景 “双十一”指数型的成交总额发展曲线,让世界看到了中国电商业务的火箭式发展势头。 而同时,对于背后的业务支撑系统来说,他们同样经历了火箭式的系统压力增长。 “双...

外陈内罗
2017/12/18
0
0
如何解决分布式系统数据事务一致性问题

一、关于分布式系统事务一致性问题 Java 中有三种可以的事务模型,分别称作本地事务模型(Local Transaction Model),编程式事务模型(Programmatic Transaction Model),和声明式事务模型...

hblt-j
2018/12/13
0
0
基于可靠消息方案的分布式事务:Lottor介绍

前言:笔者最近实现了基于可靠消息方案的分布式事务:Lottor。本文将会介绍Lottor的概况,在后续系列文章介绍具体的实现,欢迎关注。 分布式事务 分布式事务是指事务的参与者、支持事务的服务...

aoho
2018/05/04
0
0
编写自己的分布式框架—事务解决方案

前言 工欲善其事必先利其器,既然我们决定要做一个分布式事务框架,那首先需要了解一下,分布式事务是怎么回事,它跟传统的本地事务有什么区别,解决方案有哪些,每种解决方案的对比等等。 ...

架构师springboot
03/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

搭建tftp服务

前言: 最近整理一些以前的学习笔记。 过去都是存储在本地,此次传到网络留待备用。 TFTP服务: TFTP:Trivial File Transfer Protocol 不重要文件传输协议 主要用来传送小文件,不支持认证和...

迷失De挣扎
今天
3
0
rest 的理解

rest:表现层状态转移。 什么是restful协议?https://en.wikipedia.org/wiki/Representational_state_transfer 使用restful的好处。 Rest是一种体系结构样式,他定义了一组用于创建web服务的...

xiaoxiao_go
今天
5
0
聊聊spring cloud的CachingSpringLoadBalancerFactory

序 本文主要研究一下spring cloud的CachingSpringLoadBalancerFactory CachingSpringLoadBalancerFactory spring-cloud-openfeign-core-2.2.0.M1-sources.jar!/org/springframework/cloud/o......

go4it
昨天
4
0
一篇文章搞定——JDK8中新增的StampedLock

一、StampedLock类简介 StampedLock类,在JDK1.8时引入,是对读写锁ReentrantReadWriteLock的增强,该类提供了一些功能,优化了读锁、写锁的访问,同时使读写锁之间可以互相转换,更细粒度控...

须臾之余
昨天
5
0
Android Camera原理之CameraDeviceCallbacks回调模块

在讲解《Android Camera原理之openCamera模块(二)》一文的时候提到了CameraDeviceCallbacks回调,当时没有详细展开,本文我们详细展开讲解一下。 CameraDeviceCallbacks生成过程: 《Android...

天王盖地虎626
昨天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部