版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章集群基础知识1.1集群简介1.2
集群的分类1.3
负载均衡1.4服务器健康检查熟悉集群的核心概念熟悉集群的分类及常用软件熟悉四层和七层负载均衡的技术原理熟悉负载均衡的主要方式了解服务器健康检测引言说到集群,讲一个例子帮助读者理解其概念。原先的饭店只有一个厨师,负责洗菜、切菜、备料、炒菜,饭店正常运行,后来客人多了,一个厨师满足不了上菜需求,于是老板又招了厨师,两个厨师可以炒出同样的菜,两个厨师就是集群。随着饭店规模和客流量的增多,还可以继续招厨师,这些厨师就是一个集群。1.1集群简介集群的核心概念集群的特点1.1集群简介1.1.1集群的核心概念单机结构是指所有应用或服务部署到一台服务器上。可想而知,当业务不断扩大,而单机的处理能力有限,这时单机的硬件资源无法满足业务需求。集群(Cluster)是指部署相同应用或服务的一组(多台)服务器组成一个并行或者分布式系统,作为一个整体向用户提供网络资源。组成集群的单个服务器为一个节点(Node),这些节点可以相互通信,协同为用户提供相同的资源,一个节点的宕机并不影响其他节点的运行和用户使用。每个节点就像是单机的“分身术”,其处理能力随之成倍提升。1.1集群简介1.1.1集群的核心概念负载均衡(LoadBalance,LB)是指将负载(工作任务)分摊给到多个服务器上进行执行,如Web服务器、企业核心应用服务器、FTP服务器等,协同处理工作任务。当大量用户请求集群系统时,通过负载均衡器使得每个节点的负载情况比较平均,从而达到集群节点分担流量的作用。高可用(HighAvailability,HA)是指保持服务的高可用性,即保证一个系统不会因一台服务器发生故障或宕机而导致服务停止。如果某个节点服务器故障,负载均衡器则会将请求转移到其他节点上,实现冗余接管,这就是系统的高可用。对于商用网站,这也就要求即使是访问量小的服务或应用,也需要部署两台服务器做集群。1.1集群简介1.1.1集群的核心概念集群结构常常与分布式结构协同合作,相辅相成。前言中讲到,两个厨师一起洗菜、切菜、备料、炒菜,做着同样的工作,构成集群。老板为了使厨师专心炒菜,又招了2名配菜师,负责洗菜、切菜和备料,两名配菜师又构成一个集群,而配菜师与厨师的关系则为分布式结构。由此理解分布式结构是指将同一业务模块分为多个(两个以上)子任务,部署到多个服务器上,即不同的业务模块部署到不同的服务器上。1.1集群简介1.1.1集群的核心概念分布式与集群的区别如下。(1)集群指的是将几台服务器集中在一起,实现同一业务。分布式是指将不同的业务模块部署到在不同的服务器。(2)集群并不一定就是分布式的,而分布式的每一个节点,都可以做集群。集群具有一定组织性,一台服务器宕了,其他的服务器继续提供服务。分布式的每一个节点完成不同的业务,一个节点宕了,这个业务就不可访问了。1.1集群简介1.1.2集群的特点1.高可用性和容错性集群架构中的某台服务器因故障宕机,系统通过进程迁移到其他可用的节点继续提供服务,大大提高了系统的可用性和可靠性,有效地减少业务的损失,极大地满足了互联网企业7*24小时提供服务的要求。1.1集群简介1.1.2集群的特点2.高性能到目前为止,即使是大型计算机,计算能力也是有限的,比如计算高分子材料分析、天气预报、飞行器数字模拟等密集型应用,其计算时间可能会很长。大家所熟悉的百度、淘宝、谷歌等大型网站,一天的访问量达上百亿,也绝不是一台或几台大型机就可以构建的。集群便可以很好地处理这些复杂的业务,将上万台服务器构成高性能集群,在并发或总请求量很高时,集群就显示出超强的运算处理能力。1.1集群简介1.1.2集群的特点3.可扩展性例如,银行处理业务的柜台一般都有多个,如果只设置2个柜台,当客户达到上百人时,那么办理业务的柜台压力增长,满足不了客户的需求。这时就需要多加几个柜台,从而提高处理业务的效率。在集群系统中,当服务负载和压力增长时,只需要将新的服务器加入现有集群架构中,就可以实现系统的扩展和升级。而在用户访问角度,几乎不会感觉到变化。1.1集群简介1.1.2集群的特点4.成本相对较低一台超级计算机的价格在上百美元,而一套较好的集群设备,包括软硬件的开销超过10万美元,相对便宜不少。在获得同样性能的情况下,集群系统具有更高的性价比。5.负载均衡负载均衡可以把工作任务比较均匀的分摊给集群环境下的各个节点,有效地提高数据的吞吐量。1.2集群的分类负载均衡集群高可用集群高性能计算集群1.2集群的分类1.2.1负载均衡集群负载均衡集群是指在使用一组应用程序为大量客户提供服务时,通过若干前端负载均衡器将客户请求分发到后端应用集群服务器的技术,各个节点的访问请求被动态分配,达到整个系统的高可用和高性能。在企业中,负载均衡集群以提高服务的并发处理能力为重点,在系统架构中表现得更为实用、性价比更高。客户访问请求一般包括网络流量负载和应用程序负载。例如,网站初期仅支持100个用户同时在线,网站规模小,浏览量仅个位数,这时单台服务器比多个服务集群要快,用户体验感更好,不会感受到网站的卡顿。1.2集群的分类1.2.1负载均衡集群随着网站规模增大,浏览量人数增多,当并发请求或总请求数量大于单台服务器的负载能力时,用户的体验感随着浏览量的增加直线下降。这时可以增加几台服务器同时运行这个网站,在服务器前搭建一个转发器用来分发用户的请求,使每个服务器接收的请求和负载压力尽可能均匀,这样每个用户的请求都能很快被处理,用户的体验感得到提升。这个用来分发用户请求的转发器便是负载均衡,负载均衡以一种便捷、成本低廉的方式提高了网络处理数据的能力。1.2集群的分类1.2.1负载均衡集群负载均衡集群的架构示意图当客户端的请求发送到服务端时,首先会到达目录服务器,经过目录服务器的分配,这些请求才会传递到真实服务器进行处理。所谓的目录服务器就是负载均衡服务器,专门用于将用户的请求分发到不同的后端服务器,负载均衡服务器本身并不会对请求做任何处理。负载均衡集群的主要作用就是分担访问流量以及保持业务的连续性,实现负载均衡典型的开源软件有LVS、Nginx、HAProxy等。1.2集群的分类1.2.2高可用集群高可用集群是指以尽量减少服务中断时间为目的的集群技术,在任意一个节点失效时,该节点所分配的所有工作任务将会自动分配给其他可用节点,保证集群正常运行并提供服务,保持业务的正常运行。保证集群服务100%时间不中断是不可能的,还要考虑计算机软硬件的容错性。例如重量级高配置的淘宝网,当“双十一”活动开始时,一下涌入大量用户,也会出现订单无法支付的情况,因此只能保证集群服务尽可能的可用,不能保证100%时间可用。1.2集群的分类1.2.2高可用集群互联网中,通常使用网站在线时间/(在线时间+故障处理时间)来衡量服务的可用性。可用性宕机时间99%一年有3天不在线99.9%一年有0.3天不在线99.99%一年有0.03天不在线99.999%一年有0.003天不在线1.2集群的分类1.2.2高可用集群高可用集群主要实现自动侦测(Auto-Detect)故障、自动切换/故障转移(FailOver)和自动恢复(FailBack)。1.2集群的分类1.2.2高可用集群负载均衡高可用的架构示意图设置两台目录服务器,其中一台正常工作,对外提供服务。另一台当作备用,当正常工作的目录服务器宕机,该服务器立刻顶替失效的目录服务器进行工作。高可用集群主要是为了保证服务的高度可用性,常用的开源软件包括Keepalived、Heartbeat等。1.2集群的分类1.2.3高性能计算集群高性能计算集群,又称科学计算集群,是指用于计算海量数据,解决复杂问题的技术。人们平时所说的超级计算机就是高性能计算集群,其内部由十至上万个独立处理器组成,将大任务切割为小任务分别进行处理,拥有极大的数据存储容量和极快的数据处理速度。高性能计算集群主要由大数据工程师进行维护,故在此不做过多介绍。1.3负载均衡负载均衡的分类四层和七层负载均衡的区别负载均衡的主要方式负载均衡的算法1.3负载均衡1.3.1负载均衡的分类负载均衡按软硬件分类,软件有Nginx、LVS、Amoeba、HAProxy等,硬件有ROSE、安瑞科技、F5、Citrix等。软件类的负载均衡是指在服务器相应的操作系统上安装软件来实现负载均衡,配置简单,使用灵活;硬件类的负载均衡是指在服务器和外部网络之间安装的负载均衡设备,整体性能高。1.3负载均衡1.3.1负载均衡的分类OSI七层模型应用层表示层会话层传输层网络层数据链路层物理层①②③④⑤⑥⑦1.3负载均衡1.3.1负载均衡的分类负载均衡器按OSI七层模型可以分为二层、三层、四层、七层。负载均衡OSI七层模型位置技术原理典型代表二层负载均衡数据链路层通过一个虚拟MAC地址接收请求,然后再分配到后端真实的MAC地址F5、LVSDR模式三层负载均衡网络层通过一个虚拟IP地址接收请求,然后再分配到后端真实的IP地址LVSTUNNEL模式(IP隧道)四层负载均衡传输层通过虚拟IP+端口接收请求,然后再转发到后端真实的服务器F5、LVSNAT、HAProxy、Nginx、SLB七层负载均衡应用层通过虚拟的URL、IP或主机名接收请求,然后再转发到后端真实的服务器F5、LVSNAT、HAProxy、Nginx、SLBDNS
一个域名有多个A解析、智能解析万网、DNSPod1.3负载均衡1.3.1负载均衡的分类表中还有除OSI七层模型外的DNS模式,在实际应用中使用DNS做负载均衡是常用的方式。负载均衡器通常被称为四层交换机或七层交换机。四到七层负载均衡就是依据四层或七层信息向后端服务器集群转发流量,起到负载均衡的作用。1.3负载均衡1.3.1负载均衡的分类1.四层负载均衡四层负载均衡是基于IP和端口的负载均衡,即通过发布三层的IP地址(虚拟IP)和四层的端口号,来对流量做负载均衡和分发处理,转发到后端服务器,并且记录该TCP或UDP协议的流量到达的服务器,下次仍由此台服务器处理。基于四层的负载均衡可达到每秒几十万的处理量,效率更高。1.3负载均衡1.3.1负载均衡的分类2.七层负载均衡七层负载均衡是根据用户请求的内容等应用层信息为其分配相对应的后端服务器,在这种模式下可以在同一端口下同时运行多个Web服务器。例如,同一个Web服务器的负载均衡,在根据VIP(虚拟IP)和80端口判断应处理得流量的同时,还能够根据七层的浏览器类别、语言、URL来决定是否进行负载均衡,如果用户的语言为中文,则转发至中文服务器进行处理。四层负载均衡不理解如HTTP、FTP等应用协议,而七层负载均衡能理解应用协议。基于七层的负载均衡需要完成两次TCP连接,第一次是客户端与负载均衡器,第二次是负载均衡器与真实服务器。1.3负载均衡1.3.1负载均衡的分类2.七层负载均衡七层负载均衡,又被称为“内容交换”,主要面向来自客户端的应用层内容,在负载均衡器设定的调度算法的基础上进行流量分发,即按需分发。1.3负载均衡1.3.1负载均衡的分类2.七层负载均衡例如一个网站,将对图片类的请求转发到特定的图片服务器并可以使用缓存技术;将对文字类的请求转发到特定的文字服务器并可以使用压缩技术。当用户访问网站图片时,反向代理将请求发送给图片服务器,当用户访问网站文字类内容时,反向代理便将请求发送给储存文字类内容的服务器。从技术原理的方面讲,这种方式可以对客户端的请求和服务器的响应进行任何意义上的修改,极大地提升了应用系统在网络层的灵活性。很多在后台服务器(例如Nginx、Apache等)上部署的功能可以前移到负载均衡设备上,例如客户请求中的Header重写,服务器响应中的关键字过滤或者内容插入等功能。1.3负载均衡1.3.1负载均衡的分类2.七层负载均衡负载均衡设备如果要根据真正的应用层请求内容选择服务器,需要先代理最终处理请求的服务器与客户端建立TCP连接(三次握手),才可以接收到客户端发送的包含应用层内容的报文,然后再根据该报文中的特定字段以及负载均衡的调度算法,选择处理请求的服务器。负载均衡设备在这种情况下,类似于一个代理服务器,负载均衡会与客户端、处理请求的服务器分别建立TCP连接。所以从技术原理上来看,七层负载均衡明显对负载均衡设备的要求更高,处理七层请求的速度也必然会低于四层。1.3负载均衡1.3.1负载均衡的分类七层负载均衡的优势。通过对HTTP报头的检查,可以检测出HTTP4xx、5xx和6xx系列的错误信息,之后便可以将请求重新发送到另一台服务器,能够有效避免应用层故障。可以对请求的数据类型(如判断数据包是图像文件、压缩文件或多媒体文件格式等)进行判断,把请求分发给相应的服务器来处理,增加系统性能。能根据连接请求的类型进行流量分发。能够判断来自客户端的请求类型是普通文本、图像等静态文档请求,还是asp、cgi等动态文档请求,把相应的请求转发给相应的服务器来处理,提高系统的性能及安全性。1.3负载均衡1.3.1负载均衡的分类七层负载均衡的劣势。七层负载均衡受到其所支持的协议(例如HTTP协议)限制的同时,也限制了它应用的广泛性,并且检查HTTP报头会占用大量的系统资源,势必会影响到系统的性能,在高并发时,负载均衡设备自身很容易成为网络整体性能的瓶颈。1.3负载均衡1.3.2四层和七层
负载均衡的区别1.技术原理的区别四层负载均衡主要通过客户端请求报文中的目标地址和端口,再根据负载均衡器选择的转方式,决定最终的真实服务器。1.3负载均衡1.3.2四层和七层
负载均衡的区别1.技术原理的区别七层负载均衡主要通过报文中的应用层信息,再根据负载均衡器选择的转发方式,决定最终的真实服务器。1.3负载均衡1.3.2四层和七层
负载均衡的区别2.应用场景的需求四层负载均衡适用于TCP应用,比如基于C/S开发的ERP等系统。四层负载均衡比七层处理效率高,更适用于网络吞吐量和并发量高的集群,可作为多种软件的负载均衡器。七层负载均衡使得整个网络更加“智能化”,功能多,控制灵活,可根据用户访问内容,将访问请求转发到相应服务器,例如访问图片,负载均衡器会转发到图片服务器,极大地提高了应用系统在网络层的灵活性。1.3负载均衡1.3.2四层和七层
负载均衡的区别3.安全性均衡网络中常见的黑客攻击,即黑客控制的众多源客户端,也叫作SYNFlood攻击。黑客会通过虚假IP向一个目标发送SYN攻击,发送大量报文,不断消耗服务器的相关资源,以致于服务器拒绝服务。四层负载均衡不能够拦截SYN攻击,会将攻击转发到后端服务器上,而七层负载均衡可以拦截SYN攻击,不会影响后端服务器。七层负载均衡还可以设定安全策略,以过滤不安全报文,进一步提高系统的安全性。由此可见,七层负载均衡比四层负载均衡安全性更高。1.3负载均衡1.3.3负载均衡的主要方式HTTP重定向DNS负载均衡反向代理负载均衡IP负载均衡数据链路层负载均衡F5硬件负载均衡1.3负载均衡1.3.3负载均衡的主要方式1.HTTP重定向HTTP重定向会根据客户端应用层的报文计算出一个真实的Web服务器IP地址,并将该IP地址写入HTTP重定向响应中返回给客户端,客户端收到重定向响应之后再去访问真实服务器。1.3负载均衡1.3.3负载均衡的主要方式1.HTTP重定向用户访问例如的域名,经DNS域名解析获得的IP地址为00,即HTTP重定向服务器的IP地址。HTTP重定向服务器通过负载均衡算法,向客户端响应重定向至集群中实际服务器的地址03,用户浏览器再向真实地址发出访问请求,完成访问。1.3负载均衡1.3.3负载均衡的主要方式1.HTTP重定向这种工作方式虽然比较简单,但客户端需要发送多次请求才能完成一次成功的访问,所以重定向方式实现的负载均衡性能较差。从另一方面讲,HTTP重定向服务器自身的处理能力可能会成为瓶颈。使用HTTP302响应重定向之后,有可能被搜索引擎判断为SEO作弊,从而降低搜索排名。1.3负载均衡1.3.3负载均衡的主要方式2.DNS方式DNS负责提供域名到IP解析的过程,这时DNS服务器也就充当了负载均衡,很多域名运营商提供的智能DNS以及多线解析都是利用了DNS负载均衡的技术,开源的Bind软件就可提供电信联通多线解析等强大的技术。1.3负载均衡1.3.3负载均衡的主要方式2.DNS方式解析百度的域名[root@qfedu~]#dig
;<<>>DiG9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.7<<>>;;globaloptions:+cmd;;Gotanswer:;;->>HEADER<<-opcode:QUERY,status:NOERROR,id:62441;;flags:qrrdra;QUERY:1,ANSWER:2,AUTHORITY:0,ADDITIONAL:1
;;OPTPSEUDOSECTION:;EDNS:version:0,flags:;MBZ:0x0005,udp:4096;;QUESTIONSECTION:;.INA
;;ANSWERSECTION:.5INA51.5INA48
;;Querytime:3msec;;SERVER:#53();;WHEN:五11月2600:28:47EST2021;;MSGSIZErcvd:701.3负载均衡1.3.3负载均衡的主要方式2.DNS方式解析百度的域名百度的域名解析其实是一对多的形式。例如一个域名对应一组web服务器IP地址,域名解析时经过DNS服务器的算法将一个域名请求分配到合适的真实服务器上。1.3负载均衡1.3.3负载均衡的主要方式2.DNS方式DNS服务器写入多条A记录:INA01、INA02、INA03。用户请求域名解析,DNS服务器根据A记录采用负载均衡算法向用户返回真实物理服务器IP地址,用户浏览器重新请求该IP地址。
DNS域名解析常作为第一级负载均衡器。1.3负载均衡1.3.3负载均衡的主要方式2.DNS方式DNS负载均衡的控制权在于域名服务商,网站管理者可能无法做出过多的改善和管理,且不能够按照服务器的处理能力来分配负载。DNS负载均衡采用的是简单的轮询算法,不能区分服务器之间的差异,不能反映服务器当前运行状态,所以实现负载均衡的效果并不是很好。1.3负载均衡1.3.3负载均衡的主要方式DNS实现负载均衡的方式的优缺点如下。优点:将负载均衡的工作交给了DNS,省却了网站管理维护负载均衡服务器的麻烦,同时许多DNS还支持基于地理位置的域名解析,将域名解析成距离用户地理最近的一个服务器地址,加快访问速度,改善性能。缺点:目前的DNS解析是多级解析,每一级DNS都可能对A记录进行缓存,当某一服务器下线后,该服务器对应的DNS记录A可能仍然存在,导致分配到该服务器的用户访问失败。为了使本DNS服务器和其他DNS服务器及时交互,保证DNS数据及时更新,使地址能随机分配,一般都要将DNS的刷新时间设置得较小,但太小将会使DNS流量大增造成额外的网络问题。1.3负载均衡1.3.3负载均衡的主要方式3.反向代理方式反向代理部署在Web服务器前面,提供负载均衡的功能,同时管理着一组Web服务器,根据负载均衡算法将访问请求转发给不同的Web服务器,处理结果经过反向代理返回给浏览器。1.3负载均衡1.3.3负载均衡的主要方式3.反向代理方式客户端请求的地址是反向代理服务器的地址0,反向代理服务器收到请求后,经过负载均衡算法计算得到一个真实物理地址(Web服务器地址),并将请求转发给真实服务器,真实服务器处理完成后通过反向代理服务器返回给客户端。因为反向代理服务器转发请求是在HTTP协议层面的,所以又叫做应用层负载均衡。1.3负载均衡1.3.3负载均衡的主要方式4.IP负载方式IP负载均衡是在网络层和传输层(IP和端口)通过修改目标地址进行负载均衡。1.3负载均衡1.3.3负载均衡的主要方式4.IP负载方式客户端的请求到达负载均衡服务器时,负载均衡服务器在读取报文之后根据算法得到一台真实服务器地址,然后将用户请求的目标地址修改成该真实服务器地址,由真实服务器处理请求,请求处理完后返回给负载均衡服务器,负载均衡服务器收到响应后将响应报文的目标地址修改为客户端地址后再将数据返回给客户端。1.3负载均衡1.3.3负载均衡的主要方式4.IP负载方式该方法比起反向代理方式响应请求的速度要更快,处理性能更好。由于集群最大相应数据吞吐量受制于负载均衡服务器的网卡带宽,难以满足提供下载服务或视频服务等需要大量数据传输的网站。1.3负载均衡1.3.3负载均衡的主要方式5.链路层负载方式网络中的每台设备都有一个唯一的网络标识,这个地址叫MAC地址或网卡地址。数据链路层负载均衡是在数据链路层修改MAC地址进行负载均衡。1.3负载均衡1.3.3负载均衡的主要方式5.链路层负载方式负载均衡服务器的IP和它所管理的web服务集群的虚拟IP一致;负载均衡数据分发过程中不修改访问地址的IP地址,而是修改MAC地址;通过这两点达到不修改数据包的原地址和目标地址就可以进行正常的访问。1.3负载均衡1.3.4负载均衡的算法医院的挂号机为看诊的患者进行排号,便于不同患者的需求尽快得到处理。挂号机内部设有一定的处理机制进行业务窗口的排序及分配,这种用系统的方法描述解决问题的策略机制就叫做算法。不管网站采取哪种模式做负载均衡,都需要设定算法指定调度策略。负载均衡算法主要分为静态和动态两类。静态负载均衡算法以固定的顺序分配任务,不考虑服务器的实时状态,如轮询法、加权轮询法等;动态负载均衡算法以服务器的实时负载状态信息分配任务,如最小连接法、加权最小连接法等。1.3负载均衡1.3.4负载均衡的算法1.静态负载均衡算法轮询法加权轮询法目标地址哈希法源地址哈希法1.3负载均衡1.3.4负载均衡的算法1.静态负载均衡算法轮询法轮询调度算法(RoundRobinScheduling,RR),调度器采用这种算法时,会将用户请求无差别地按顺序轮流分配到集群中的真实服务器上,不关心每个服务器上实际的连接数和当前系统负载信息。假设现在后端有4台真实服务器,前端负载均衡器收到9个用户请求,暂时将这9个请求依次用1、2、3、4、5、6、7、8、9表示。若负载均衡器采用轮询法进行任务的分配,这9个请求是什么分配结果呢?1.3负载均衡1.3.4负载均衡的算法1.静态负载均衡算法第一个用户请求将被分配给真实服务器1号机进行处理,第二个用户请求将被分配给真实服务器2号机进行处理,依此类推。当4台服务器分配完毕时,第5个请求又将被分配给1号机进行处理。只要真实服务器的数量固定,每台机器处理的请求序号也是固定的。轮询法1.3负载均衡1.3.4负载均衡的算法1.静态负载均衡算法加权轮询法加权轮询调度算法(WeightedRoundRobinScheduling,WRR),调度器采用这种算法时,会将用户请求按照真实服务器不同的处理能力进行分配。给配置高、负载低的机器配置更高的权重,让其处理更多的请求;而配置低、负载高的机器,给其分配较低的权重,降低其系统负载。按照权重进行任务的调度,可以保证请求分配的合理性。1.3负载均衡1.3.4负载均衡的算法1.静态负载均衡算法加权轮询法若负载均衡器采用加权轮询法进行任务的分配,首先会在内部生成一个服务器序列。每当收到请求时,就依次从该序列中取出一个服务器用于处理用户请求。比如现在有三台真实服务器A、B、C,它们的处理能力分别为2,1,3,加权轮询算法会生成序列{A,A,B,C,C,C}。这样,每收到6个客户端的请求,服务器会把其中的1个请求转发给后端的B,把其中的2个请求转发给后端的A,把其中的3个请求转发给后端C。收到的第7个请求,重新从该序列的头部开始轮询。1.3负载均衡1.3.4负载均衡的算法1.静态负载均衡算法加权轮询法总的来说,加权轮询算法要生成一个服务器序列,该序列含N个服务器。N是所有真实服务器的权重之和。在这个序列中,将服务器的处理能力以一定的维度进行衡量,每个服务器的能力用数字量化为其权重值。同时在生成的序列中,服务器的分配应该尽可能地均匀。比如序列{A,A,B,C,C,C}中,前2个请求都会分配给服务器A,这是一种不均匀的分配方法,更好的序列应该是:{C,A,B,C,A,C}。1.3负载均衡1.3.4负载均衡的算法1.静态负载均衡算法目标地址哈希法目标地址哈希法(DestinationHashingScheduling,DH)是一种静态映射算法,通过一个散列(Hash)函数将一个目标IP地址映射到一台服务器。服务器首先将用户请求的目标IP地址作为散列键(HashKey),再从静态分配的散列表找出对应的服务器,如果该服务器是可用的且未超载,就将请求发送到该服务器,否则返回空。1.3负载均衡1.3.4负载均衡的算法1.静态负载均衡算法源地址哈希法源地址哈希法(SourceHashingScheduling,SH)也是一种静态映射算法,通过一个散列(Hash)函数将一个源地址IP地址映射到一台服务器。服务器首先将用户请求的源IP地址(即客户端地址)作为散列键(HashKey),再从静态分配的散列表找出对应的服务器,如果该服务器是可用的且未超载,就将请求发送到该服务器,否则返回空。采用源地址哈希法进行负载均衡,源地址一样的请求都会被分配到同一台服务器进行处理,可以实现会话的粘滞性。1.3负载均衡1.3.4负载均衡的算法1.静态负载均衡算法源地址哈希法假设现在有A、B、C、D四台真实服务器,随机抽取之前处理过的9个请求,以序号1~9表示,查看实际对这9个请求进行处理的服务器。服务器A:1、7服务器B:2、3、4、5服务器C:9服务器D:6、8若该服务器采用的是源地址哈希法进行负载均衡,那么再次收到这9个请求源客户端的请求时,实际处理请求的服务器是怎样分配的呢?1.3负载均衡1.3.4负载均衡的算法1.静态负载均衡算法采用源地址哈希法进行负载均衡,源地址一样的请求都会被分配到同一台服务器进行处理。但如果某个服务器出现故障,会导致这个服务器上的客户端无法使用,无法保证高可用。当某一用户成为热点用户,将会有巨大的流量涌向这个服务器,导致负载分布不均衡,无法有效利用集群的性能。源地址哈希法1.3负载均衡1.3.4负载均衡的算法1.静态负载均衡算法—优缺点对比算法优点缺点轮询法简单高效,易于水平扩展,每个服务器任务分配均衡无法保证任务分配的合理性,无法根据服务器承受能力来分配任务加权轮询法可以将不同机器的性能问题纳入考量范围,集群性能最优最大化服务器抗压能力无法精确估量,静态算法导致无法实时动态调整节点权重,只能粗糙优化目标地址哈希法根据用户访问的URL的哈希结果,使每个URL定向到同一个后端服务器上,假如某一个目标服务器不可以,或者负载过高,那么会影响发往该目标服务器的请求无法得到响应。源地址哈希法源地址一样的请求都会被分配到同一台服务器进行处理,可以解决session会话共享的问题,实现会话粘滞1.由于用户的活跃度不同,可能会有大量的活跃用户被哈希到相同的服务器上,造成该服务器特别繁忙,大量的非活跃用户被哈希到相同的服务器上,造成该服务器几乎没有请求,造成请求不均衡;2.一旦某个服务器挂掉,那么哈希到该服务器的所有源请求都会失败,直到服务恢复或者服务器列表中去掉该服务器1.3负载均衡1.3.4负载均衡的算法2.动态负载均衡算法最小连接数法加权最小连接数法基于局部性的最少链接法带复制的基于局部性最少链接法1.3负载均衡1.3.4负载均衡的算法2.动态负载均衡算法最小连接法最小连接法(LeastConnectionScheduling,LC),采用这种算法做负载均衡时,调度器会根据每个真实服务器当前的连接情况,动态选取当前连接数最小的服务器来处理当前请求。最小连接法通过真实服务器当前活跃的连接数来判断真实服务器的情况,每当真实服务器有新的连接或断开连接时都需要进行计数,调度器根据各个真实服务器的连接数合理进行任务的分配。在实际应用中,同一集群的真实服务器具有相近的系统性能,对外提供的服务也一致,采用最小连接法可以较好地进行负载均衡。1.3负载均衡1.3.4负载均衡的算法2.动态负载均衡算法最小连接法假设现在真实服务器组中有A、B、C、D四台服务器,它们当前的连接数分别是2、4、1、2,负载均衡采用的算法是最小连接法。若此时来了一个新的用户请求,按照最小连接法的原则,该请求就会被分配至RS-C进行处理。1.3负载均衡1.3.4负载均衡的算法2.动态负载均衡算法加权最小连接法加权最小连接法(WeightedLeastConnectionScheduling,WLC)在实现时增加了权重的计算,在LC算法的计算标准上除以权重,计算结果数值小的将接受下次访问请求,是企业最常用的算法也是LVS的默认算法。采用这种算法时,调度器可以自动问询真实服务器的负载情况,并动态调整其权值。1.3负载均衡1.3.4负载均衡的算法2.动态负载均衡算法基于局部性的最少链接法基于局部性的最少链接法(Locality-BasedLeastConnectionsScheduling,LBLC)类似目标地址哈希法,是针对目标IP地址的负载均衡算法,调度器根据请求的目标IP地址找出最近为该目标IP地址服务的真实服务器,若该真实服务器是可用的且没有超载,则将请求发送给该真实服务器,否则调度器将使用“最小连接”原则选出一个可用的真实服务器并将请求发送到该服务器,这种算法主要用于Cache集群系统。1.3负载均衡1.3.4
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建筑工程审计合同
- 2025版实习生实习期间实习单位培训责任协议3篇
- 写字楼电梯管理协议
- 2025个人货车租赁合同书
- 建筑工程:车库雨棚施工合同范本
- 家政服务伸缩缝安装施工协议
- 2025版劳动合同补充协议范本汇编3篇
- 2024年教育培训机构广告合作合同范本3篇
- 自建房屋建筑设备租赁合同
- 证券投资联合体投标协议模板
- ktv营运总监岗位职责
- NB-T 10609-2021 水电工程拦漂排设计规范
- 澳大利亚HIH保险公司破产案例
- 三级配电箱巡检记录
- 《全国统一安装工程预算定额》工程量计算规则
- 试论plié的力量特征及其在芭蕾舞技术技巧中的运用
- 政府采购评审专家考试题库与答案(完整版)
- 国内省及地市级名称及邮编
- 2023年上海市旅行社责任保险统保保险方案
- 2023-2024学年山东省威海市小学数学三年级下册期末评估试卷
- GB/T 1096-2003普通型平键
评论
0/150
提交评论