用小白都能看懂的大白话告诉你:什么是分布式计算系统?【石杉的架构笔记】


目录

一、从一个新闻门户网站案例引入前端

二、推算一下你须要分析多少条数据?android

三、完美组合:分布式存储+分布式计算并发

这篇文章聊一个话题:什么是分布式计算系统?框架


(1)从一个新闻门户网站案例引入


如今不少同窗常常会看到一些名词,好比分布式服务框架,分布式系统,分布式存储系统,分布式消息系统。分布式

可是有些经验尚浅的同窗,可能都很容易被这些名词给搞晕。因此这篇文章就对“分布式计算系统”这个概念作一个科普类的分析。微服务

若是你要理解啥是分布式计算,就必须先得理解啥是分布式存储,如今咱们从一个小例子来引入。高并发

好比说如今你有一个网站,我们假设是一个新闻门户网站好了。天天是否是会有可能上千万用户会涌入进来看你的新闻?oop

好的,那么他们会怎么看新闻呢?大数据

其实很简单,首先他们会点击一些板块,好比“体育板块”,“娱乐板块”。网站

而后,点击一些新闻标题,好比“20年来最刺激的一场比赛即将拉开帷幕”,接着还可能会发表一些评论,或者点击对某个好的新闻进行收藏。

那么你的这些用户干的这些事儿有一个专业的名词,叫作“用户行为”。

由于在你的网站或者APP上,用户必定会进行各类操做,点击各类按钮,发表一些信息,这些都是各类行为,统称为“用户行为”。

好了,如今假如说新闻门户网站的boss说想要作一个功能,在网站里天天作一个排行榜,统计出来天天每一个版块被点击的次数,包括最热门的一些新闻。

而后呢,在网站后台系统里须要有一些报表,要让他看到不一样的编辑产出的文章的点击量汇总,作一个编辑的绩效排名,还有不少相似的事情。

这些事情叫什么呢?你能够认为是基于用户行为数据进行分析和统计,产出各类各样的数据统计分析报表和结果,供网站的用户、管理人员来查看。

这也有一个专业的名词,叫作“用户行为分析”。


(2)推算一下你须要分析多少条数据?


好,我们继续。若是你要对用户行为进行分析,那你是否是首先须要收集这些用户行为的数据?

好比说有个哥儿们如今点了一下“体育”板块,你须要在网页前端或者是APP上立马发送一条日志到后台,记录清楚“id为117的用户点击了一下id位003的板块”。

一样,这个东西也有一个专业的名词,叫作“用户行为日志”。

那你能够来计算一下,这些用户行为若是采用日志的方式收集,天天大概会产生多少条数据?

假设天天1000万人访问你的新闻网站,平均每一个人作出30个点击、评论以及收藏等行为,那么就是3亿条用户行为日志。

假设每条用户行为日志的大小是100个字节,由于可能包含了不少不少的字段,好比他是在网页点击的,仍是在手机APP上点击的,手机APP是用的什么操做系统,android仍是IOS,相似这样的字段是不少的。

那么你就有天天大概28GB左右的数据,这里一共包含3亿条。

假如对这3亿条数据,你就本身写个Java程序,从一个超大的28GB的大日志文件里,一条一条读取日志来统计分析和计算,一直到把3亿条数据都计算完毕,你以为会花费多少时间?

不可想象,根据你的计算逻辑复杂度来讲,搞很差要花费几十个小时的时间。

因此你以为这种大数据场景下的分析,这么玩儿靠谱么?不靠谱。


(3)完美组合:分布式存储+分布式计算


因此这个时候,你就能够首先采用分布式存储的方式,把那3亿条数据分散存放在好比30台机器上,每台机器大概就放1000万条数据,大概就1GB的数据量。

你们看看下面的图:

接着你就能够上分布式计算了,你能够把统计分析数据的计算任务,拆分红30个计算任务,每一个计算任务都分发到一台机器上去运行。

也就是说,就专门针对机器本地的1GB数据,那1000万条数据进行分析和计算。

这样的好处就是能够依托30台机器的资源并行的进行数据的统计和分析,这也就是所谓的分布式计算了。

每台机器的计算结果出来以后,就能够进行综合性的汇总,而后就能够拿到最终的一个分析结果,你们看下图。

假设以前你的3亿条数据都在一个30GB的大文件里,而后你一个Java程序一条一条慢慢读慢慢计算,须要耗费30小时。

那么如今把计算任务并行到了30台机器上去,就能够提高30倍的计算速度,是否是就只须要1小时就能够完成计算了?

因此这个就是所谓的分布式计算,他通常是针对超大数据集,也就是如今很流行的大数据进行计算的。

首先须要将超大数据集拆分红不少数据块分散在多台机器上,而后把计算任务分发到各个机器上去,利用多台机器的CPU、内存等计算资源来进行计算。

这种分布式计算的方式,对于超大数据集的计算能够提高几十倍甚至几百倍的效率,其实这个理论和概念,也是大数据技术的基础。

好比如今最流行的大数据技术栈里,Hadoop HDFS就是用作分布式存储的,他能够把一个超大文件拆分为不少小的数据块放在不少机器上。

而像Spark就是分布式计算系统,他能够把计算任务分发到各个机器上,对各个数据块进行并行计算。

以上就是用大白话+画图,给小白同窗们科普了一下分布式计算系统的相关知识,相信你们看了以后,对分布式计算系统,应该有一个初步的认识了。


END

一大波微服务、分布式、高并发、高可用的原创系列文章正在路上

相关文章
相关标签/搜索