GraphQL实战:写给全栈工程师们
上QQ阅读APP看书,第一时间看更新

1.2 分布式系统

在手机上打开Facebook或者Twitter的应用时,用户可能不太会去思考,其实每一次点击,都会牵动远在大洋彼岸的数据中心里数以万计的高性能服务器协同工作。这种多台计算机通过计算机网络协同在一起为客户服务的工作方式,称为分布式系统。

通俗地讲,分布式系统就是“一个篱笆三个桩,一个好汉三个帮”的理论在计算机领域的实现。可怎么帮呢?就像篱笆一样,需要把原本独立的计算机系统通过计算机网络联系在一起。三十多年前(20世纪80年代初),创建了还没两年的Sun公司就提出了“网络就是计算机[2]”这句响亮的口号,用以描述每台计算机都要进入网络,成为一个巨大分布式系统的一部分。这个现在看来司空见惯的想法,当时却因为过于超前而不被人理解,还常常被人耻笑。这也难怪,受限于当时网络传输条件和信息资源的匮乏程度,人们还不能想象计算机上网能干什么。可经过三十多年的发展,分布式系统也算是“旧时王谢堂前燕,飞入寻常百姓家”,成为普通人日常生活的一部分,如今这种“平民”化的分布式系统有一个新的名字,就是“云”。

读者可能会有疑问,这分布式系统有什么特点呢?其实分布式的特点有许多且并不局限于以下几点,本书挑选一些重要的、和GraphQL相关的特点来讨论一下。