集群其实就是一堆计算机的集合,给用户提供同一个服务的一组计算机,就称之为集群,对于用户而言好像就是一台计算机提供的服务,集群主要分为三大类,
LB 负载均衡集群
负载均衡集群主要是提升服务的响应能力的,好比说某服务器的并发响应能力是100个,这个时候常常有人反映说连不上服务器,这个时候解决方案通常有两种,一,升级硬件,升级硬件显然不是很好的解决方案,假如说升级硬件以后过了一段时间因为业务量的加大,服务器又负载不起了怎么办呢, 二,将现有空闲低配的设备组合起来作成一个具备高并发的负载均衡集群,多台计算机同时分摊负载用户的请求,这样一来服务器的压力也没有那么大了,那么这一类的集群具备很好的可伸缩性,可靠性,和成本低廉等好处,
HA 高可用性集群
高可用性集群主要是提供7*24小时不间断服务的,不能说由于一台或几台服务器的down机而致使没法提供服务的,若是某台down机了,会自动的切换到其余计算机上面工做,从而达到高可用的效果,
HP 高性能集群
高性能集群主要是用于须要大量CPU运算的场景中,好比说天气预报,国外3D大片的特效制做,等等一系列须要作大量运算的应用,
******************************************************************************************************
上面介绍了集群应用的三大类,下面来介绍下三大应用中各类实现的机制,
LB 负载均衡集群又分为硬件级与软件级的
硬件类的价格比较贵,
F5,等
软件级的比较常见的有以下两种
LVS
Haproxy前端
HA 高可用集群的解决方案常见的有如下几种
heartbeat
corosync+openais RHCS
ultramokey
keepalived
HP 高性能集群的解决方案常见的有如下
bowerfullinux
******************************************************************************************************算法
上面说了各类集群的解决方案,通常状况下负载均衡集群和高可用集群是结合起来使用的,下面来讲说负载均衡集群中比较经常使用的LVS
******************************************************************************************************后端
LVS (linux virtual server) linux 虚拟服务器
lvs是由国人章文嵩开发的一款自由软件,lvs具备很好的可伸缩性,可靠性,和可管理性,经过linux系统和lvs能够实现一个高可用,高性能,低成本的服务器集群,
lvs是三层架构的,也就是说lvs有三个部分组成的,:最前端的负载均衡器LB,中间的是应用服务器群组,后端的是共享存储,见下图服务器
lvs的三种工做模型
NAT模型
NAT模型显然根据名字均可以看出来,是经过网络地址转换来实现的,他的工做方式是,首先用户请求到达前端的负载均衡器(即Director Server),而后负载均衡器根据事先定义好的调度算法将用户请求的目标地址修改成后端的应用服务器(即Real Server) , 应用程序服务器处理好请求以后将结果返回给用户,期间必需要通过负载均衡器,负载均衡器将报文的源地址 改成用户请求的目标地址,再转发给用户,从而完成整个负载均衡的过程,
NAT模型的特色以下,
全部的节点必须在一个IP网络中
只需有一个公有地址便可
支持端口映射
后端的应用服务器不区分平台
进出数据包都须要通过负载均衡器,当负载过大的时候,负载均衡器将是整个集群的瓶颈
最多支持8个节点,
DR模型
DR模型是经过路由技术实现的负载均衡技术,而这种模型与NAT模型不一样的地方是,负载均衡器经过改写用户请求报文中的MAC地址,将请求发送到Real Server, 而Real Server直接响应用户,这样就大大的减小负载均衡器的压力,DR模型也是用的最多的一种,
DR模型的特色以下,
全部的集群节点都必须同一个物理网络中
RIP能够是公有IP也能够是私有IP
负载均衡器只响应进站请求,
不支持端口映射
TUN模型
TUN模型是经过IP隧道技术实现的,TUN模型跟DR模型有点相似,不一样的地方是负载均衡器(Director Server)跟应用服务器(Real Server)通讯的机制是经过IP隧道技术将用户的请求转发到某个Real Server,而Real Server 也是直接响应用户的,
TUN模型的特色,
全部的集群节点能够在任意地方
RIP必须是公网IP
负载均衡器只响应进站请求
不支持端口映射
******************************************************************************************************网络
上面介绍了LVS的工做模型,下面来讲说LVS支持的调度算法
调度算法也能够称为负载均衡的方法,上面说过前端的负载均衡器(Director Server)会将用户的请求分摊给后端的应用服务器(Real Server),那么负载均衡器(Director Server)怎么会知道将用户请求分摊到哪台应用服务器(Real Server)呢? 就是根据调度算法来实现将用户请求具体分摊到哪台应用服务器(Real Server)的,在LVS中支持多达10种调度算法,下面来讲说几个经常使用的调度算法,
轮询, 轮询调度是将用户请求平均分摊到Real Server 上去,
加权轮询, 加权轮询能够为Real Server 设置不一样的权值,对于性能好的Real Server能够较高的权值,而性能比较差的Real Server 的权值能够设置较低点,这样的话就充分利用了服务器的资源,
最少链接, 最少链接调度会动态的将用户请求分摊到已创建的链接最少的Real Server上去,
加权最少链接, 加权最少链接能够将性能好的服务器的全值设置高点,性能差的服务器权值设置低一些,
除了上面四个外还有目标地址hash算法调度, 源地址hash算法, 最少指望延迟调度, 基本地的最少链接调度, 带复制的最少链接调度,等, 架构
******************************************************************************************************并发
上面说了负载均衡集群LVS,其实LVS有一个致命的缺点,当有台负载均衡器(Director Server) 挂掉的时候,那么整个集群将瘫痪了,上面说过负载均衡集群通常要和高可用集群结合起来使用的,这样就能够避免某个Director Server 出现故障而致使整个集群系统瘫痪,
OK到此结束,
纠结,很差总结,蚂蚁总结的很差还望你们指点,谢谢!负载均衡