搜狐首页 科技 法医秦明

手机搜狐

SOHU.COM

前Google工程师谈分布式系统的特点以及设计理念

分布式系统并不是什么新鲜词,在上个世纪七八十年代就已经有各种分布式系统出现。只是在互联网时代,分布式系统才大放异彩,尤其是Google更是把分布式系统运用到了极致。

Google整个的软件构架都是基于各种各样的分布式系统,诸如Borg、MapReduce、BigTable等。正是这些分布式系统,使得Google可以处理高并发请求响应以及海量数据处理等。Apache旗下的Hadoop、Spark、Mesos等分布式系统,把大数据处理相关技术变得非常亲民,让更多企业客户体会到了分布式系统的便利。

一、分布式系统的特点

分布式系统最大的特点是可扩展性,它能够适应需求变化而扩展。企业级应用需求经常随时间而不断变化,这也对企业级应用平台提出了很高的要求。企业级应用平台必须要能适应需求的变化,即具有可扩展性。

比如移动互联网2C应用,随着互联网企业的业务规模不断增大,业务变得越来越复杂,并发用户请求越来越多,要处理的数据也越来越多,这个时候企业级应用平台必须能够适应这些变化,支持高并发访问和海量数据处理。分布式系统有良好的可扩展性,可以通过增加服务器数量来增强分布式系统整体的处理能力,以应对企业的业务增长带来的计算需求。

分布式系统的核心理念是让多台服务器协同工作,完成单台服务器无法处理的任务,尤其是高并发或者大数据量的任务。分布式系统由独立的服务器通过网络松散耦合组成的。每个服务器都是一台独立的PC机,服务器之间通过内部网络连接,内部网络速度一般比较快。因为分布式集群里的服务器是通过内部网络松散耦合,各节点之间的通讯有一定的网络开销,因此分布式系统在设计上尽可能减少节点间通讯。

此外,因为网络传输瓶颈,单个节点的性能高低对分布式系统整体性能影响不大。比如,对分布式应用来说,采用不同编程语言开发带来的单个应用服务的性能差异,跟网络开销比起来都可以忽略不计。因此,分布式系统每个节点一般不采用高性能的服务器,而是性能相对一般的普通PC服务器。提升分布式系统的整体性能是要通过横向扩展(增加更多的服务器),而不是纵向扩展(提升每个节点的服务器性能)。

分布式系统最大的特点是廉价高效:由成本低廉的PC服务器组成的集群,在性能方面能够达到或超越大型机的处理性能,在成本上远低于大型机。这也是分布式系统最吸引人之处。成本低廉的PC服务器在硬件可靠性方面比大型机相去甚远,于是分布式系统由软件来对硬件进行容错,通过软件来保证整体系统的高可靠性。

精选