分布式系统讲义(一、什么是分布式系统?)

同学们大家好,今天由我来同大家一起,通过大白话的方式,聊一聊分布式系统的那些事儿。

到今天为止,分布式系统已经是一种非常基础或者说非常通用的一种技术了。在互联网应用的后端服务中,分布式技术几乎无所不在,那么到底什么是分布式系统?我们为什么要用分布式系统?它到底有哪些优势?以及我们今后工作中面临的一些问题,如何通过设计分布式系统,解决这些问题呢。围绕着这些问题,我们在这门课中展开来讨论。

回到这门课的最开始的一个问题,什么是分布式系统?在给出这个定义之前,我们先来看一下一个后端服务的演化过程,拿一个外部网站来举例,最早的时候,它只部署在一台机器上,这一台机器承受的用户的数量是很有限的,一台服务器大概只能承受住300个人同时进行访问,但是用户量会慢慢的变大,从最开始的300到后来的1000人,在到后来的几万人。中国现在大概有接近10个亿的网民,这么1个数量级的用户数,我们这么一台服务器绝对是承受不住的,这个时候应该怎么办?

一般想到的它有两种方法,我们说的第一种方法升级我们的服务器,把我们的服务器从一个性能比较差的变成一个性能比较好的,它数据的存储本来是比如说只有几百g然后把它变成几个t这么一个容量的磁盘放到这个服务器里边去,这样子也能解决问题,但是它只解决了比如说用户数从300到1000这么一个问题,但是我们的用户数如果是几个亿,那个时候怎么办?

我们会有一个第二种方法,就是用几千台机器,然后让几千台机器,然后相互协作,去满足几亿用户的这么一个数量的这么一个访问,所以这个方法基本上已经给出了一个分布式系统的一个雏形了,由此我们其实是可以引出来,那么分布式系统到底是一个什么样的定义。然后出自分布式的概念与设计这么一本书,就是国外的一个经典的用来用来介绍分布式的这么一本经典巨著。

他说分布式系统是指位于联网计算机上的组件,仅通过传递信心进行通信和协调行动的系统。同时他又给了这么一句话叫分布式系统,它是一个即便是已经崩溃了部分机器,但是它仍然能够完成工作这么一个系统。除此听到这么几个定义,大家可能还是感觉比较细。

我来给大家举一个例子,我所在的智能平台部,我所负责的系统就是一个服分布式系统效果广告的预估服务,那么这个预估服务现在有多少台机器,这个事情我给大家说一下,大概是就是说大概是有3000台左右的机器,那么我们的小广告服务大概有3000台机器这么一个数量级的,而且这3000台机器各有分工,相互协作,然后能够满足我们现在广告这么一个业务。

同时它也满足这么一个定义。如果只有一部分机器宕机,那么它仍然能够满足效果广告,预估的工作,而不至于整个服务都不可用。

今天的例子,介绍什么是分布式系统,我们就是到此为止,下节课我们会去探索分布式系统它面临哪些技术挑战。谢谢大家。