阿里P9架构师终于把毕生心血而成的分布式高可用算法笔记开源了

简介: 说在前面的话分布式系统无处不在。一台计算机内部多个互联的处理器组成了一个分布式系统,它们通过“一致性缓存”算法使每个处理器核心看到相同的数据。近三十年来,随着互联网的发展,越来越多的互联网后台系统采用计算机集群的方式来应对海量请求和数据的需求,这个计算机集群也是分布式系统。为了简化分布式系统的开发,出现了很多为开发者提供分布式框架的开源项目,例如Apache基金会旗下的ZooKeeper项目就是一个应用广泛的分布式框架。同时,国内也有很多关于如何使用这些分布式框架来搭建应用的书籍,它们极大地推动了分布式系统在国内的应用。我们不仅要知道如何使用这些现成的分布式框架来搭建应用,而且应

说在前面的话

分布式系统无处不在。

一台计算机内部多个互联的处理器组成了一个分布式系统,它们通过“一致性缓存”算法使每个处理器核心看到相同的数据。近三十年来,随着互联网的发展,越来越多的互联网后台系统采用计算机集群的方式来应对海量请求和数据的需求,这个计算机集群也是分布式系统。

为了简化分布式系统的开发,出现了很多为开发者提供分布式框架的开源项目,例如Apache基金会旗下的ZooKeeper项目就是一个应用广泛的分布式框架。

同时,国内也有很多关于如何使用这些分布式框架来搭建应用的书籍,它们极大地推动了分布式系统在国内的应用。我们不仅要知道如何使用这些现成的分布式框架来搭建应用,而且应该知道这些分布式框架背后的设计原理,做到“知其然,亦知其所以然”。

主要内容

本文尝试以通俗易懂的方式从理论的角度系统性地介绍分布式系统和算法,使读者不仅从算法层面知道诸如共享内存、共识、信号量等分布式抽象背后的工作原理,还知道分布式系统是如何被建模的,进而知道这些算法是怎么来的、为什么是对的、适用场景是什么,为将来自行设计分布式算法打下基础。

本文总共分为10章的内容,因为包含的内容比较多,这里只做了简单的介绍,每章里面包含很多小点,小点里面也有更加细化的内容。

1初识分布式,介绍什么是分布式系统,分布式算法的用处,以及设计分布式算法面临的主要挑战,让读者对本文所介绍的分布式系统和算法的范围有初步认识


2算法模型,通过本章的学习,读者将意识到设计分布式算法就是在定义自动机与外界的交互行为,并且能够阅读分布式算法。



3系统模型,通过本章的学习,读者将掌握设计一个分布式系统主要的关注点。


4链路,通过本章的学习,读者不仅会更熟悉编程模型,而且将更深入地理解自动机和它的生命周期。


5.失败检测和选主,通过本章的学习,读者将知道如何进行失败检测和选主,什么系统能够进行失败检测和选主,什么系统无法进行失败检测和选主。



6可靠广播,从基础的尽力广播开始,依次介绍正则可靠广播、统一可靠广播、顽固广播、概率广播、先进先出广播和因果可靠广播。



7共享内存,


8.共识,共识是分布式系统得以实现高可用和一致性的关键技术。


9.介绍基于共识的应用,包括全序广播、复制状态机、信号量、原子提交(事务)、组成员关系等。最后还会介绍复制状态机的重配技术,实现进程动态地加入和离开系统。在ZooKeeper、etcd等开源分布式框架中的Reconfiguration功能的背后,其实就是复制状态机的重配技术。


10.基于时钟的算法,本章介绍如何利用时钟同步系统构造网络同步系统,以及如何利用网络同步系统构造时钟同步系统,从而证明了时钟同步与网络同步的等价性。基于这一等价性,读者可以利用现代计算机的本地时钟、时钟同步协议以及原子钟等技术弥补网络的不足,即使在网络异步的情况下,也可以实现同步系统。


由于包含的内容实在是太多了,这里就不给大家做过多的介绍了,需要完整版分布式高可用算法笔记的小伙伴点击此处即可



本文总结

本文从底层的I/O自动机模型开始,逐一深入,直到揭开共识的面纱,让读者能够系统地从底层原理了解分布式系统和算法在设计过程中的取舍与平衡。

同时,本文尽量避免使用过于复杂的数学记号,而是用自然语言的方式证明每个算法的正确性,相信用心的专业读者都能看懂。既把底层原理说清楚,又没有高深的数学符号,是本文的一大特色。


相关文章
|
3天前
|
消息中间件 Kafka Apache
Apache Flink 是一个开源的分布式流处理框架
Apache Flink 是一个开源的分布式流处理框架
20 5
|
1月前
|
安全 Java 应用服务中间件
阿里技术官架构使用总结:Spring+MyBatis源码+Tomcat架构解析等
分享Java技术文以及学习经验也有一段时间了,实际上作为程序员,我们都清楚学习的重要性,毕竟时代在发展,互联网之下,稍有一些落后可能就会被淘汰掉,因此我们需要不断去审视自己,通过学习来让自己得到相应的提升。
|
1月前
|
缓存 算法 NoSQL
【分布式详解】一致性算法、全局唯一ID、分布式锁、分布式事务、 分布式缓存、分布式任务、分布式会话
分布式系统通过副本控制协议,使得从系统外部读取系统内部各个副本的数据在一定的约束条件下相同,称之为副本一致性(consistency)。副本一致性是针对分布式系统而言的,不是针对某一个副本而言。强一致性(strong consistency):任何时刻任何用户或节点都可以读到最近一次成功更新的副本数据。强一致性是程度最高的一致性要求,也是实践中最难以实现的一致性。单调一致性(monotonic consistency):任何时刻,任何用户一旦读到某个数据在某次更新后的值,这个用户不会再读到比这个值更旧的值。
244 0
|
2天前
|
存储 分布式计算 负载均衡
浅谈分布式共识算法概念与演进
浅谈分布式共识算法概念与演进
9 0
|
2天前
|
分布式计算 算法
分布式系统设计之共识算法—2PC、3PC、 Paxos
分布式系统设计之共识算法—2PC、3PC、 Paxos
7 1
|
19天前
|
存储 监控 安全
阿里云云通信短信服务安全之安全架构
阿里云云通信长期致力于通过多种渠道向客户透明服务相关情况。客户一般可通过阿里云官网提出对阿里云云通信相关资质、服务使用情况、产品说明等信息,我们将7*24小时不间断处理您的建议与咨询。对于客户合理的要求,阿里云云通信服务团队均会及时响应客户的需求。同时,阿里云云通信也在探索更多增加透明度的方式,如对公邮箱、线上查询接口、钉钉服务客户群等。
|
23天前
|
存储 算法 Java
数据结构与算法笔记(一)
数据结构与算法笔记(一)
98 0
|
25天前
|
存储 算法 NoSQL
分布式一致性与共识算法(一)
分布式一致性与共识算法(一)
41 0
|
26天前
|
算法 搜索推荐 Java
太实用了!阿里内部强推的超全Java算法学习指南,已被彻底征服
算法和数据结构一直以来都是程序员的基本内功。 数据结构可以看作是算法实现的容器,通过一系列特殊结构的数据集合,能够将算法更为高效而可靠地执行起来。
|
29天前
|
存储 消息中间件 分布式计算
重磅开源!阿里巴巴分布式核心原理,成功登顶GitHub周榜!
分布式系统架构是当今互联网企业的重要基础设施,它能够支撑海量用户并发访问和亿级数据量的超大规模业务系统。阿里巴巴作为互联网巨头,在分布式架构方面有着丰富的经验与成果(文末有免费领取方式!)

热门文章

最新文章

相关产品