对话 | 大咖
本期参与交流的技术大咖是:胡志琳
胡志琳,资深系统研发,清华大学直博,曾系统设计并实现某重点军工项目的关键设备,曾就职于滴滴出行等知名互联网公司。
热衷于区块链系统的理论研究和工程实现,熟练掌握Bitcoin、Ethereum和EOS等区块链技术。
主要负责分布式系统共识算法的分析、设计与研发,以及密码学和零知识证明等在实际业务中应用落地。
了解分布式系统,读这一遍文章就足够了。
1、分布式系统概述
分布式系统是由一组通过网络进行通信、为了完成共同任务而协调工作的大量计算机节点组成的系统。单个节点的故障(进程crash、断电、磁盘损坏)是个小概率事件,但整个系统的故障率会随节点的增加而指数级增加,网络通信也可能出现断网、高延迟的情况。在这种一定会出现的“异常”情况下,分布式系统还是需要继续稳定的对外提供服务,即需要较强的容错性。
分布式系统需要大量机器协作,面临诸多的挑战:
第一,异构的机器与网络:分布式系统中的机器,配置不一样,其上运行的服务也可能由不同的语言、架构实现,因此处理能力也不一样;节点间通过网络连接,而不同网络运营商提供的网络的带宽、延时、丢包率又不一样。
第二,普遍的节点故障:虽然单个节点的故障概率较低,但节点数目达到一定规模,出故障的概率就变高了。分布式系统需要保证故障发生的时候,系统仍然是可用的,这就需要监控节点的状态,在节点故障的情况下将该节点负责的计算、存储任务转移到其他节点。
第三,不可靠的网络:节点间通过网络通信,而网络是不可靠的。可能的网络问题包括:网络分割、延时、丢包、乱序。
总而