实现负债均衡的方式与负债均衡算法

来源:互联网 发布:java 插件开发 demo 编辑:程序博客网 时间:2024/04/30 06:16

实现负债均衡方式

1.http重定向负载均衡

    http重定向服务器是通过通过一台普通的负债均衡服务器在在接受到浏览器的请求时,根据负债均衡算法,得到服务器集群中实际的服务器ip,构造一台实际服务器的ip地址的重定向响应返回给浏览器,浏览器自动访问实际物理服务器来完成访问,http重定向负债均衡的好处是,浏览器可以直接与物理服务器交互,以达到最大网络吞吐量,可以做到不受限制带宽与真实服务器交互, 缺点是访问到系统的时候需要两次请求,性能较差,重定向服务器自身的处理能力可能会成为一个瓶颈,整个集群的伸缩性规模有限,而且使用http302响应码重定向,有可能使搜索引擎判断为seo作弊,降低搜索排名,实际中使用重定向做负载均衡的案例并不多见。


2.反响代理负载均衡

    反向代理服务器管理着一组web服务器,当浏览器向负载均衡服务器发起请求的时候,负载均衡服务器通过负载均衡算法发到不同的web服务器上,web服务器处理完请求需要通过负载均衡服务器返回给浏览器,web服务器集群可以不与外网连接,只需要负载均衡服务器对外连接就行,因此对于安全性可以得到很大的控制。反向代理负载均衡优点在于反向代理服务器转发请求在http协议层面,因此也叫应用层的负载均衡,和反向代理服务器功能集成在一起,部署简单。缺点是在于所有的请求都要通过反向代理服务器,因此这也可能成为其瓶颈。


3.数据链路层负债均衡

    数据链路层负载均衡是指在通信协议的数据链路层修改mac地址进行负载均衡。服务器集群中所有的ip地址都一样的,包括负载均衡服务器,当浏览器对负载均衡服务器发起请求的时候,负载均衡服务器通过负载均衡算法得到真实服务器的mac地址,把请求数据的目的mac地址改成计算得到的,从而达到了不修改数据包的目标地址,由于微博服务器集群所有服务器的虚拟ip地址都和负载均衡服务器的ip地址相同,因此数据可以正常传输到达通过算法计算得到的mac地址对应的服务器,该服务器处理完请求之后发送响应数据到网站的网关服务器网管服务器直接将数据包发送到浏览器,相应数据不需要通过负载均衡服务器。

    这种数据传输模式也称为三角传输模式,首先所有服务器包括负载均衡服务器都用同一个虚拟ip,浏览器到负载均衡服务器,负债均衡服务器通过算法得到mac地址,将请求数据包的mac地址修改掉,并不需要修改IP地址,然后通过mac地址请求到实际服务器,再由实际服务器返回给网关在到达浏览器。使用三角传输模式的链路层负载均衡是目前大型网站系统使用最广的一种负载均衡手段。在Linux平台上最好的链路层负债均衡开源产品是LVS(Linux Virtual Server).


负债均衡算法

    负债均衡服务器实现可以分为两个部分

    1.根据负载均衡算饭和web服务器列表计算得到集群中一台web服务器的地址。

    2.将请求数据发送到该地址对应的web服务器上

具体的负载均衡算法

    1.轮询(Round Robin, RR)

        所有请求一次被分发到每台应用服务器上,即每台服务器需要处理的请求数目都相同,适合于所有服务器硬件都相同的场景。

    2.加强轮询(Weighted Round Robin, WRR)

        根据应用服务器硬件性能情况,在轮询的基础上,按照配置上的权重将请求分发到每个服务器上,高性能的服务器能分配更多请求。

    3.随机(Random)

        请求随机分配到各个应用服务器,在许多场合下,这种方案简单使用,因为好的随机数本身就很均衡。即使应用服务器配置不同,也可以使用加权随机算法。

    4.最少连接(Least Connections)

        记录每个应用服务器正在处理的连接数(请求书),的将新到的请求分发到最少连接的服务器上,应该说,这是最符合负载均衡定义的算法,同样最少连接算法也可以实现加权最少连接。

    5.原地址散列(Source Hashing)

        根据来源的ip地址进行hash计算,得到应用服务器,这样来之同一个ip地址的请求总在同一个服务器上处理,该请求上下文信息可以存储到这台服务器上,在一个会话周期内重复使用,从而实现会话粘滞。

原创粉丝点击