推荐 -- 《分布式系统的工程化开发方法》

自打google将它的MapReduce,GFS等等发布之后,分布式系统这个概念这几年是越发的红火了。当然,这也和大量的海量数据处理的需求息息相关。于是乎,越来越多的分布式专家也如雨后春笋般冒了出来。我曾经也以非常仰慕的心情去拜读某些专家写出来的文章,结果发现这帮家伙无非是做过一些机器间的服务调用(比如SOAP),要么就是配置过load balancer,做过负载均衡,高级些的就拿distributed hash table这样的东西做过多台机器的key-value store或者分布式cache。久而久之,我就对所谓的“分布式专家”嗤之以鼻了。

 

前两天CSDN的头条是这么一篇“分布式系统的工程化开发方法 ”,原以为又是一个江湖郎中。可浏览一遍后,我发现这哥们才算得上是真正做过分布式系统开发的。其实在做分布式系统的时候,难点不在于data partition,或者是跨机器的协作,真正的难点在于怎样处理各种的failure,或者说,怎样做fault tolerance。 分布式系统有着各种各样你开发前意想不到的,而且在单机版上不可能碰到的错误。而怎样去检测这些错误,避免这些错误,或者是当错误来临时不影响到整个系统的运行,这是分布式系统开发中最有技术含量的地方。

在这篇“分布式系统的工程化开发方法”中,其实贯穿通篇的就是如何处理各种failure(如果将blocking也算作failure的话)。有时间的我比较推荐直接看他的视频,应该会有不小的收获。

 

另外,视频中作者提到的那篇sun公司的paper在这里: A Note on Distributed Computing 。看过之后你会发现,paper中的观点正是作者在他的视频中所表达的。另外,俺看了作者的工作背景后,感叹一句:还是有钱的地方牛人多啊....

 

 

你可能感兴趣的:(mapreduce,cache,负载均衡,Google,table,SOAP)