![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
分布式系统
Fredok_915
微信公众号【技术架构公社】
展开
-
分布式系统的一致性协议之 CAP理论原理
在分布式系统领域,有一个理论,对于分布式系统的设计影响非常大,那就是 CAP 理论,即对于一个分布式系统而言,它是无法同时满足 Consistency(强一致性)、Availability(可用性) 和 Partition tolerance(分区容忍性) 这三个条件的,最多只能满足其中两个。但在实际中,由于网络环境是不可信的,所以分区容忍性几乎是必不可选的,设计者基本就是在一致性和可用性之间做选...转载 2019-02-15 15:08:11 · 991 阅读 · 0 评论 -
源码解读 - Tcc-Transaction框架(四)回归最新版本思路
前言这次我们直接回到主干分支master-1.2.x进行分析。正文大致浏览一下各个模块,主要模块没有增加。tcc-transaction-server目前还是先不看。 tcc-transaction-dubbo没变动。 tcc-transaction-unit-test增加了几个单元测试类。 tcc-transaction-tutorial-sample增加了很多集成例子。...原创 2019-05-05 22:57:29 · 240 阅读 · 0 评论 -
源码解读 - Tcc-Transaction框架(三)dubbo支持
前言回到master-1.2.x分支,继续浏览gitlog,这次选择update the version to 1.2.0这次提交,注意这个分支编译会报错,调整dubbo版本为2.5.3才行。正文项目整体结构:这个版本中,增加了tcc-transaction-dubbo模块。同时也调整了一些类所在模块、增加了更多的扩展。tcc-transaction-api迁移:将...原创 2019-05-05 22:49:55 · 451 阅读 · 0 评论 -
源码解读 - Tcc-Transaction框架(二)职责划分及功能调整
前言回到master-1.2.x分支,继续浏览gitlog,在1.0.3版本后,作者更新较为频繁,每个月都有提交,在2016/6/4日有一次版本变更1.1.0,但是不要急,根据这段时间文件变更内容看,东西修改了不少,但是1.1.0之后还有几次频繁修改,包括几个issue的修订。最后我确定从issue#22的修复为模板,拉取分支(afterv1.1.0-resolvesTheIssue...原创 2019-05-05 22:23:52 · 244 阅读 · 0 评论 -
分布式存储系统:缓存一致性问题之Lease机制
Lease机制 既然,Lease机制提出的时候是为了解决分布式存储系统中缓存一致性的问题,那么首先来看看Lease机制是怎么保证缓存的强一致性的。注意,为了方便后文描述,在本小节中,我们称元数据服务器为服务器,缓存服务器为客户端。 要点:服务器向所有客户端发送缓存数据的同时,颁发一个lease,lease包含一个有限期(即过期时间) lease的含义是:在这个有效期内,服务器保证...转载 2019-02-18 16:42:27 · 495 阅读 · 0 评论 -
分布式系统的一致性协议之 Zookeeper一致性协议ZAB简述
zookeeper是使用ZAB协议作为数据一致性的算法,ZAB全称:原子消息广播协议。ZAB可以说是在Paxos算法基础上进行了扩展改造:1、ZAB协议设计了支持崩溃恢复,可以保证在Leader进程崩溃的时候重新选举出Leader并且保证数据的完整性2、zookeeper使用单一主进程Leader用于处理客户端所有事物请求,写只能由Leader处理,写过程会阻塞读进程3、采用ZAB协议...原创 2019-02-18 15:06:15 · 467 阅读 · 0 评论 -
分布式系统的一致性协议之 一致性方案MS、MM、2PC 和 3PC
根据上一篇文章描述《分布式系统的一致性协议之 CAP理论原理》可知,目前分布式系统中通用的一致性方案,主要包括:冷备、Master/Slave、Master/Master、两阶段提交以及基于 Paxos 算法的各种实现。冷备所谓冷备,也就是做定时全量、增量的备份,在系统一致性、可用性出现问题时,能够通过备份数据还原系统到达某一点。这种方案操作难度小,但存在即时性低、丢失率高的问题。Ma...转载 2019-02-15 15:32:06 · 732 阅读 · 0 评论 -
源码解读 - Tcc-Transaction框架(一)初探实现思路
前言一个成熟的开源项目,其代码量还是较为客观的,拿到手通常不知如何下手。那么一套清洗的分析思路尤为重要,帮助自己快速理解作者思路。1、首要工作是fork一份源码,在这个基础上做一些诸如,添加注释、debug等操作比较方便。2、查看作者的提交历史,也就是通过git历史来查看这个项目的进化过程。第一步以及clone到本地,可自行百度如何操作。我们从第二步开始。正文1、找到感兴趣...原创 2019-04-30 15:31:23 · 627 阅读 · 0 评论