先来扯淡,几天是14年12月31日了,茫茫然,2014就剩最后一天了。这两天国大都放假,我给自己安排了四篇博客欠账,这就是其中的第一篇,简单介绍一些分布式系统的一些概念和设计思想吧。后面三篇分别是Network File System(NFS)Andrew File System(AFS)以及The design of naming schemes。废话不多说了,开始吧。

1. 本文讲什么

前面也提到了,本文会简单介绍一下分布式系统的一些概念和设计思想。

2. 分布式系统是什么

分布式系统,听起来好像很玄乎,跟自己没啥关系,但其实你每天都在用,每次你用百度谷歌,都是在使用分布式系统。
分布式系统,说白了就是将很多机器组织在一起,然后获得一些需要的性能,如存储能力、计算能力等等。

3. 设计时的考虑

首先来看的话,那么多机器,经常性的会有一两个(甚至更多)机器的磁盘损坏啊、网络故障啊、软件故障甚至就是机器断电了!!总之,林子大了,什么事儿都会碰到。此外还有安全性、系统性能啊等等吧。

设计的目标是给用户的感觉是这个系统一直没问题,但是事实上可能系统中的很多机器已经损坏了!
设计的所有问题在于如何在不可信机器部件上建立可靠的分布式系统。话说回来,这跟计算机网络是不是很像!我们在设计网络协议的时候首要的考虑不就是认为网络数据传输不可信么。下面就以通讯为例子看看是怎么设计。

4. 通讯

分布式系统各个机器之间主要依靠网络通信,而数据传输本身的可靠性已经被各种网络协议解决了,所以我们不用考虑网络数据传输问题。集中注意力在建立怎样的通讯抽象来管理各个部件之间的通讯。

5. 参考文献

1.http://pages.cs.wisc.edu/~remzi/OSTEP/dist-intro.pdf