当前位置: 首页 > 科技新闻 >

​一张图了解负载均衡常见方案

时间:2020-04-23 17:34来源:网络整理 浏览:
负载均衡是为了解决单一主机无法满足较大访问量的负载问题。将巨大的访问请求负载到不同的主机上面,以便使请求访问的响应速度不受主机效率的影响。每


​一张图了解负载均衡常见方案

负载均衡是为了解决单一主机无法满足较大访问量的负载问题。将巨大的访问请求负载到不同的主机上面,以便使请求访问的响应速度不受主机效率的影响。

每一个主机运行一个所需服务器程序的独立备份,例如Web服务器、FTP服务器、E-mail服务器等。对于这些服务器来说,可以将服务器运行在集群内的多个主机上,网络负载均衡措施将访问请求或者其他工作负载在这些主机进行分配。

由于网络的数据流量多集中在某台中心服务器上,所以现在所说的负载均衡多指的是对访问服务器的负载进行均衡或分担。负载均衡从结构上分为本地发在均衡和地域负载均衡。本地负载均衡是指本地的服务器集群做负载均衡,地域负载均衡是指分别放置在不同的地理位置、网络及服务器群集之间负载均衡。

1.利用HTTP重定向完成负载均衡

​一张图了解负载均衡常见方案

HTTP重定向负载均衡有一台重定向服务器,它也是一台普通的服务器,其唯一的功能就是根据用户的HTTP请求计算一台应用集群中服务器的地址,并将此地址写入HTTP重定向响应中返回给用户。

这种方案实现起来非常简单,但是需要浏览器请求两次服务器才能完成。并且重定向服务器很容易编程瓶颈,因为一次重定向返回的过程,也是一次标准HTTP请求,如果集群内有10台机器,那HTTP重定向服务器的流量将是应用服务器的10倍,如果有100台估计就要宕机了,所以伸缩性能受到了很大的限制。还有使用302响应码重定向,不利于网站的SEO。

2.利用DNS协议来完成负载均衡


​一张图了解负载均衡常见方案

最早的负载均衡技术是通过DNS来实现的,在DNS中为多个地址配置同一个名字,因而查询这个名字的客户机将得到其中一个地址,从而使的不同的客户访问不同的服务器,达到负载负载均衡的目的。

简单的说,比如访问某一个域名时,先由DNS来判断各个主机的负载情况,把这个请求负载最少的那台主机的ip地址。

DNS负载均衡是一种简单有效的方法,但是他不能区分服务器的差异,也不能反映服务器的当前运行状态。当使用DNS负载均衡的时候,必须尽量保证不同的客户计算机能军均匀获得不同的地址。由于DNS数据具备刷新时间标志,一旦超过这个时间限制,其他DNS服务器及就需要和这个服务器交互,以重新获得地址数据,就有可能获得不同的IP地址。

因此,为了使地址能随机分配,就应使刷新时间尽量短,不同的地方的DNS服务器能更新对应的地址,达到随机获得地址,然而将DNS有效期时间设置的过短,将使DNS流量大增,而造成额外的网络问题。DNS负载均衡的另一个问题是,一旦某个服务器出现故障,即使及时修改了DNS设置,还是要等待足够的时间(刷新时间)才能发挥时间,再次期间,保存了故障服务器地址的客户计算机将不能正常访问服务器。

尽管存在多种问题,但它是一种非常有效的做法。

3.利用代理服务器完成负载均衡

​一张图了解负载均衡常见方案

使用代理服务器可以请求发给你内部的服务器,使用这种加速器模式显然可以提升静态页面的访问速度。然而也可以考虑这样一种技术,使用代理服务器将请求均匀地转发给多台服务器,从而达到负载均衡的目的。

这种代理方式与普通的代理方式有所不同,标准代理方式是客户使用代理访问多个外部服务器,而这种代理方式是代理多个客户访问内部服务器,因此也被称为反向代理模式。虽然实现这个任务并不是特别复杂,然而由于要求特别高的效率,实现起来并不简单。

使用反向代理的好处是:可以将负载均衡和代理服务器的高速缓存技术结合在一起,提供有益的性能。然而它本身也存在一些问题,首先就是必须为每一种服务都专门开发一个反向代理服务器,这就不是一个轻松的任务了。

代理服务器本身虽然可以达到很高的效率,但是针对每一次代理,代理服务器就必须维护两个连接,一个对外的连接,一个对内的连接。因此对于特别高的连接请求,代理服务器的负载也就非常之大。反向代理方式下能应用优化的负载均衡策略,每次访问最空闲的内部服务器。但随着并发连接数量的增加,代理服务器本身的负载也变得非常大,最后反向代理服务器本身成为服务的瓶颈。

4.利用网关的地址转换功能

​一张图了解负载均衡常见方案

支持负载均衡的地址转换网关,可以将一个外部IP地址映射为多个内部IP地址。对每次TCP连接请求动态使用其中一个内部地址,达到负载均衡的目的。很多硬件厂商将这种技术集成在他们的交换机中,作为他们第四层交换的一种功能来实现,一般采用随机选择、根据服务器的连接数量或者响应时间进行选择的负载均衡策略来分配负载。由于地址转换相对来讲比较接近网络的底层,因此就有可能将它集成在硬件设备中,通常这样的硬件设备是局域网交换机。

当前局域网交换机所谓的第四层交换机技术,就是按照IP地址和TCP端口进行虚拟连接的交换,直接将数据包发送到目的计算机的相应端口。通过交换机就能将来自外部的初始连接请求分别于内部的多个地址相联系。

由于第四代交换机基于硬件芯片,因此其性能非常优秀,尤其是对于网络传输速度和交换速度远远超过普通的数据包转发。然而,正因为它是使用硬件实现的,所以也不够灵活,仅仅能够处理几种最标准的应用协议的负载均衡,如HTTP。当前负载均衡主要解决服务器的处理能力不足的问题,因此并不能充分发挥交换机带来的高网络带宽的优点。

5.数据链路层负载均衡

​一张图了解负载均衡常见方案

数据链路层主要处理 mac 地址,所以使用修改mac地址进行转发请求。负载均衡数据分发过程中不修改IP地址,只修改mac地址,通过配置真实物理服务器集群所有机器虚拟IP和负载均衡服务器IP地址一致,从而达到不修改数据包的源地址和目的地址就可以进行数据分发的目的。由于web服务器的服务器地址IP和数据请求目的IP地址一致,不需要通过负载均衡服务器进行地址转换,可将相应数据包直接返回用户。如果有足够的公有IP,其实web服务器也可以直接使用自己的IP响应请求,不过这样web服务器必须绑定负载均衡的虚拟IP地址(VIP),才能保证web服务器收到来自负载均衡发送的数据包。

这种方式称作三角传输模式,单臂模式,也叫做直接路由方式(DR)。使用DR方式的链路层负载均衡是目前大型网站使用最广的一种负载均衡手段。

现在使用的负载均衡无外乎这几种方式,或者几种方式的组合。我相信很多大厂能用这种模式解决高并发高性能的问题,很多其他服务也是没有问题的。

推荐内容