一.集群出现的原因
集群的出现是为了解决高并发的需求,传统的单体架构一般应用于业务量级别低,用户数量没有到达高并发。
单体架构:即所有的系统业务和模块基于mvc的设计模式耦合到一个单体服务器中,基于mvc设计模式,单体应用基于前后端分离的原则,通过Model,Control,View等业务模块共同完成一个请求的过程。但是这种单体架构无法满足互联网行业对高并发的需求。于是集群的架构模式就出现了
集群:简单来说就是,请求通过负载均衡(nginx服务器)分发到不同服务器上。把一份工程代码部署到多台服务器中,每台服务器独立部署运行。
如下图:
二. 集群的特性
高可用,高性能,可伸缩性
1.可伸缩性--可扩展的特性
集群的可伸缩特性就是可以通过扩展的方式增加节点或优化硬件来提高集群的可用性
集群扩展的目的:集群系统中中的节点数目可以增加到几十到几千几万不等,其伸缩性远超过单台超级计算机,所以当服务器负载压力增长的时候,可以通过扩展的方式减少单台服务器的压力,系统可以通过扩展来满足高并发需求,也不会降低服务质量
扩展的分类:
1.1 scale on 向上扩展:就是将服务器的内存容量调大或cpu数量增加(简单说就是升级服务器硬件)
1.2 scale out 向外扩展:就是增加节点服务器,分发服务器请求压力
2.高可用
集群中的一个节点失效,它的任务可传递给其他节点。可以有效防止单节点失效
一般来说我们集群中工作在前端(分发器)的服务器都会对我们的后端服务器做一个健康检查,如果发现我们服务器当机就不会对其在做转发
3.高性能
一些需要很强的运算处理能力比如天气预报,核试验等。这就不是几台计算机能够搞定的。这需要上千台一起来完成这个工作的。
访问量增加时,能够轻松扩展。提高性能
三. 集群的种类
集群分为:负载均衡集群,高可用集群,高性能集群
三种集群的区别:负载均衡着重在于提供服务并发处理能力的集群,高可用以提升服务在线的能力的集群。高性能着重用于处理一个海量任务。
1.Load Balancing:负载均衡集群
负载均衡集群中有一个分发器或叫调度器,称它为Director,Director处于多台服务器的上面,Director根据内部锁定义的规则或调度方式从下面的服务器群中选择一个用来响应客户端发送的请求。
2.High Availability 高可用集群
高可用集群的可用性比较高,当我们集群中的某个节点服务器出现故障时不会造成我们的整体集群服务器不可用。
其工作模式就是把一个出现故障的服务转发到另一个正常工作的服务器,从而达到服务不会中断。
一般来说集群中工作在前端的(分发器)服务器会对我们后端服务器做一个健康校验,如果发现某个服务器宕机就不会对其进行转发请求
3.Hight Performance 高性能集群
高性能的集群是当任务量极大的时候,我们做一个集群来共同完成这一个任务,这种处理方式我们称之为并行处理集群,并行处理集群是将大任务处理为小任务,分别进行处理的机制。
一般这样的集群用来研究与大数据和科学研究运算等方面的工作,现在比较火的Hadoop就是使用的并行处理集群。