因为大数据有2个问题,存储和计算。
随着数据的不断增多,单个机器肯定总有一天会存不下所有的数据,所以需要多个机器存,这就演变成分布式了;
随着数据的不多增多,计算量逐渐增大,单个机器的计算速度肯定会越来越慢,所以要把计算的任务拆分成M份,然后给M台机器去运算,最后在把计算结果汇总,这也演变成了分布式。
所以无论是数据的存储,或是数据的计算,都会逐渐向分布式进行演化。
分布式系统是一个硬件或软件组件分布在不同的网络计算机上
彼此之间仅仅通过消息传递进行通信和协调的系统
一群互相独立计算机集合共同对外提供服务
对于系统的用户来说,就像是一台计算机在提供服务一样
-
分布式
一个系统在多台机器上,每台机器上部署不同的组件。作用是:一个系统可以调度更加多的资源,增加性能。
-
集群
一个系统部署在多套。作用是:相当于人多力量大。
-
分布式 + 集群
可以水平扩展,并且具有容灾的功能(某一套系统的某一个组件坏了;或者某一台机器坏了,其他套系统依然可以正常运行。如假如蓝色的原型组件坏了,那还有红色、橙色、紫色3套系统正常运行;假如第2台机器坏了,那红色、蓝色、橙色系统都不能正常运行,但还有紫色的系统还可以正常运行)
-
负载均衡
将工作压力平均分派到集群的所有系统上,让每一套的系统尽量工作量平均(比如一个部门有10个人,让每个人的工作量都适当,不要让某些人活很多干的累死系统过载,有些人工作量很少闲得发慌浪费系统资源)
常见的负载均衡策略有:根据IP进行hash取余;根据请求所在地就近分配; -
故障转移
当活动的服务或系统意外终止时,快速启动冗余或备用的服务器、系统、硬件或网络接替它们工作
故障转移系统也称之为容错系统,所谓容错指的是可以容忍错误的发生。
故障转移的核心时设置备份 出现故障时 主备切换(注意是继续干活,而不是重新干活)
主备切换的前提时数据状态保持一致
-
伸缩性
伸缩性也叫做弹性,可扩展性
指系统可以根据需求动态的扩容、缩容
比如双十一、春运业务高峰期间,增加服务器;业务低峰期,减少服务器。
比如双十一期间,公司的服务器不够,可以在阿里上购买服务器(1~3天使用时间)用来应对业务高峰。



