浅谈分布式系统的学习

1、引言

关于分布式系统的知识,可以从大学教科书上找到很多,比如许多人都知道的AndrewS.Tanenbaum等人在年出版的《分布式系统原理与范型》(DistributedSystems:PrinciplesandParadigms)这本书。其实,分布式系统的理论出现于上个世纪70年代,“SymposiumonPrinciplesofDistributedComputing(PODC)”和“InternationalSymposiumonDistributedComputing(DISC)”这两个分布式领域的学术会议分别创立于年和年。然而,分布式系统的广泛大规模应用却是最近几年的事情,其中的一个原因就是大数据的出现,这个方面我们前面已经讲过多次了,这里就不再累赘。

另外一个原因,其实也是一个可悲的事实,那就是分布式环境下的编程十分困难。与单机环境下的编程相比,分布式环境下的编程有两个明显的不同:首先,分布式环境下会出现一部分计算机工作正常,另一部分计算机工作不正常的情况,程序需要在这种情况下尽可能地正常工作,这个挑战非常大。其次,单机环境下的函数调用常常可以在微秒级内返回,所以除了少数访问外部设备(例如磁盘、网卡等)的函数采用异步方式调用外,大部分函数采用同步调用的方式,编译器和操作系统在调用前后自动保存与恢复程序的上下文;在分布式环境下,计算机之间的函数调用(远程调用,即RPC)的返回时间通常是毫秒或亚毫秒(0.1~1.0毫秒)级,差不多是单机环境的倍,使用同步方式远远不能发挥现代CPU处理器的性能,所以分布式环境下的RPC通常采用异步调用方式,程序需要自己保存和恢复调用前后的上下文,并需要处理更多的异常。

实际上,最近这些年是互联网公司在推动着(大规模)分布式核心技术的演变。

随着社交网络、移动互联网、电子商务等技术的不断发展,互联网的使用者贡献了越来越多的内容。为了处理这些内容,每个互联网公司在后端都有一套成熟的分布式系统用于数据的存储、计算以及价值提取。Google是全球最大的互联网公司,也是在分布式技术上相对成熟的公司,其公布的Google分布式文件系统GFS、分布式计算系统MapReduce、分布式表格系统Bigtable都成为业界竞相模仿的对象,此外,Google的全球数据库Spanner更是能够支持分布在世界各地上百个数据中心的上百万台服务器。Google的核心技术正是后端这些处理海量数据的分布式系统。和Google类似,国外的亚马逊、微软以及国内互联网三巨头阿里巴巴、百度和腾讯的核心技术也是其后端的海量数据处理系统。

大数据存储技术的演变最初源于互联网公司的大规模分布式存储系统。与传统的高端服务器、高端存储器和高端处理器不同的是,互联网公司的分布式存储系统由数量众多的、低成本和高性价比的普通PC服务器通过网络连接而成。互联网的业务发展很快,而且注重成本,这就使得存储系统不能依靠传统的纵向扩展的方式,即先买小型机,不够时再买中型机,甚至大型机。互联网后端的分布式系统要求支持横向扩展,即通过增加普通PC服务器来提高系统的整体处理能力。普通PC服务器性价比高,故障率也高,需要在软件层面实现自动容错,保证数据的一致性。另外,随着服务器的不断加入,需要能够在软件层面实现自动负载均衡,使得系统的处理能力得到线性扩展。

分布式存储和当今同样备受







































白殿疯早期图片
看白癜风的医院哪家好



转载请注明:http://www.xcqg58.com/xxzl/3331.html

  • 上一篇文章:
  •   
  • 下一篇文章: