说在前面的话

分布式系统无处不在。

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

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

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

主要内容

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

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

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

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

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

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

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

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

7共享内存,

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

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

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

由于包含的内容实在是太多了,这里就不给大家做过多的介绍了

本文总结

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

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

资源获取:
大家 点赞、收藏、关注、评论啦 、 查看

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

  1. 铁山靠!阿里P9架构师写的这份JDK源码笔记,竟直接带火了GitHub

    众所周知,阅读源码是一件很累的事情,但是同时也是一件能让我们收获很多东西的事情.比如,有些原理搞不懂,但是通过阅读源码就可以让我们恍然大悟. 同时当下的面试也是十分重视考察源码,所以现在去阅读源码已经 ...

  2. 阿里P9架构师分享:通俗易懂Redis原理,都是你没看过的

    前言 Redis 是如今互联网技术架构中,使用最广泛的缓存.支持复杂的数据结构,支持持久化,支持主从集群,支持高可用,支持较大的value存储... 同时, Redis 也是中高级后端工程师技术面试中 ...

  3. 阿里P9架构师讲解从单机至亿级流量大型网站系统架构的演进过程

    阶段一.单机构建网站 网站的初期,我们经常会在单机上跑我们所有的程序和软件.此时我们使用一个容器,如tomcat.jetty.jboos,然后直接使用JSP/servlet技术,或者使用一些开源的框架 ...

  4. 阿里P9架构师简述从单机至亿级流量大型网站系统架构的演进过程

    阶段一.单机构建网站 网站的初期,我们经常会在单机上跑我们所有的程序和软件.此时我们使用一个容器,如tomcat.jetty.jboos,然后直接使用JSP/servlet技术,或者使用一些开源的框架 ...

  5. 为防双11系统崩盘,阿里P9架构师苦熬3个月终成亿级并发编程手册

    并发编程有多重要? 能否熟练掌握并发编程已经成了判断一个程序员是否优秀的重要标准之一.这是因为并发编程中包含了操作系统.CPU.内编程语言等各个方面的基础知识,以至于并发编程成了整个Java体系里最为 ...

  6. 你值得拥有!-阿里P8架构师荣耀典藏:Java多线程与Socket实战微服务框架笔记

    先赞再看,谢谢关注 小编分享的这份<Java多线程与Socket:实战微服务框架>,综合运用Java多线程.Socket.动态代理等技术来构建微服务框架 内容结构 本书从实战角度出发,首先 ...

  7. java 反射获取属性名和值_阿里P8架构师核心知识点整理:Java基础+spring原理+微服务+算法...

    Java基础 5.1.1. JAVA 异常分类及处理 5.1.1.1. 概念 如果某个方法不能按照正常的途径完成任务,就可以通过另一种路径退出方法.在这种情况下 会抛出一个封装了错误信息的对象.此时, ...

  8. 膨胀!有了这份P9架构师推的2800页Java面试大礼包,金九银十稳了

    程序员一步入中年,不知不觉便会被铺天盖地的"危机感"上身,曾经的那个少年已经不在,时间就是这样公平.就算你能发明Java语言,随着时间的推移,你注定还是要成为慢慢变蔫的茄子,缓缓变 ...

  9. 2021普通Java程序员如何在行业中脱颖而出?阿里进阶架构师不传之秘终于开源!

    "倒挂"一词大家都不陌生,在程序员领域里更是屡见不鲜,尤其是在公司工作了一段时间后就会发现,后来的每个新人的工资都比自己高,你的工资是15k,新人的工资是30k,奈何人家能力强呢. ...

最新文章

  1. 挨踢项目求生法则-团队建设篇
  2. 手把手教你怎样免费注冊国际顶级域名
  3. 索尼大法要专门开始搞AI了,成立Sony AI,发力游戏、影像和美食
  4. linux ssh别的机器,Linux SSH 登录其他机器
  5. 【转载】split / break polylines at point intersections
  6. c 语言 模板函数,函数模板特化
  7. JVM(1)——JVM内存分区
  8. hadoop2.4.2集群搭建及hive与mysql集成文档记录
  9. Easyui 页面访问慢解决方案,GZIP网站压缩加速优化
  10. MySQL—常用指令总结
  11. ffmpeg sws_scale函数详解
  12. 回发后动态设置的标题丢失
  13. 天工软件在正射项目中的应用与常见问题解答
  14. vue基础知识点思维导图
  15. python求最大值函数_python实战: 获取最大值函数
  16. 阿里云服务器被攻击了怎么办?
  17. 阿帕网几台大型计算机网络,阿帕网-互联网的鼻祖(中) | 午夜猫
  18. 面试分享:一年经验初探阿里巴巴前端社招
  19. 一定要知道的简单配置Webpack操作
  20. HTML-文本格式化

热门文章

  1. 【碎碎念】今天服务器又down了……
  2. java 计算圆的面积
  3. TCGA数据下载方法简介
  4. 构筑立体世界,AR Engine助力B站会员购打造沉浸式营销
  5. 制造商零件编号(MPN)
  6. c语言程序设计 徐庆生,C语言中循环结构程序课的教学设计与探讨.doc
  7. 存款利率计算器V1.0
  8. CAN通信(一)——认识CAN总线
  9. java面试笔试资料 百度网盘
  10. EventBus如何使用及一些常见场景