集群
什么是集群
集群,就是把一组相同或者相似的事物组合在一个集合中,从计算机的角度来讲,就是把一个系统,在不同的服务器中多次重复部署。集群中的单体所进行的操作或者功能具有相同或者相似性。举个生活中的例子,楼下早餐店的是两口子在卖,买早餐的时候,不管是向老板还是老板娘都可以买,他们也各自收钱,拿东西,包装,给客人,做的工作都是一样的,这个叫集群。
集群的特点
- 数量上 :集群在数量上必须是多个体的,一台服务器不能叫集群;
- 功能上:集群在功能上具有相同或者相似性,完全没有相同点的服务器组合不能叫集群;
为什么要有集群
还是以楼下早餐店为例,为什么要有两个人卖?因为第一,怕忙不过来,第二,怕其中一个人有事的时候,没有人来代替。简单来说,就是以下两点:
1、分流:分散流量,提供系统的吞吐量
2、防止单点故障:鸡蛋放在一个篮子里,摔了是什么后果不用多说吧。
分布式
什么是分布式
分布式,简单来说来,就将一个完整的事情,分成几个拆分的事情,将每个拆分后的事再交给不同人去处理,这就是分布式。
为什么要有分布式
还是以楼下早餐为例。有一天,楼下的早餐店扩展了,又请了两个人,这个时候,如果四个人全在前面卖,然后收钱,拿东西,包装,把早餐给客人,就会出现问题以下问题:
1、功能混乱:每个人都要负责所有的事情,事太多,忙起来容易乱头脑
2、不易扩展:如果有人离职,再要招聘人的话,又要把所有的事情都学一遍,学习成本高,也不利于控制成本,比如店里拿早餐打包的工作比较费时,所以忙不过来,想请个人,却的请一个会做早餐的人,成本显然会高一些。而且如果某个环节出了问题,比如少收了钱,要排查所有人,管理也不容易。
所以,可以采用分布式的方式,一个专门做早餐,一个拿早餐打包,一个收钱,一个将早餐送给客人,这样无论哪个环节太忙,只要招聘一个人学习这个环节的事就行,同时哪个环节出了问题,也很容易定位到人。
注意:分布式也能提高系统吞吐量,因为单个应用的处理的事情流程变短了,相应速度自然也快了。
总结
集群和分布式部署是一个中大型系统的基本架构,是应用开发中必须要考虑和处理的问题,在数据存储中,集群引起的数据一致性问题,在缓存中,集群引起的数据持久化问题,都是分布式集群体系下的必须要考虑的问题。