知识总结4:负载均衡面试题大全(四层/七层负载均衡对比详解+nginx/lvs/haproxy区别+LVS原理+三种模式详解)

 

目录

负载均衡介绍

1.什么是负载均衡

2.常见的负载均衡器

3.负载均衡分类

1)二层负载均衡(mac)

2)三层负载均衡(ip)

3)四层负载均衡(tcp)

4)七层负载均衡(http)

4.四层和七层负载均衡之间的区别

1) 从技术原理上分析

2)总体对比

5.如何解决负载均衡器成为瓶颈的问题?

6.nginx、haproxy、lvs、apache区别

Nginx

LVS

HAProxy

LVS基础

1.什么是LVS

2.LVS的基本工作原理

3.LVS的组成

4.LVS相关术语

LVS/DR原理与特点

1.工作原理

2.LVS/DR模式的要求与优缺点

LVS/NAT原理和特点

1.工作原理

2.LVS/NAT模式的要求与优缺点

LVS/Tun(隧道模式)原理和特点

1.工作原理

2.LVS/Tun模式的要求与优缺点

三种模式对比

LVS八种调度算法

1、轮叫调度(Round-Robin Scheduling )

2、加权轮叫调度(Weighted Round-Robin Scheduling )

3、最小连接调度(Least-Connection Scheduling )

4、加权最小连接调度(Weighted Least-Connection Scheduling)

5、基于局部性的最少链接(Locality-Based Least Connections Scheduling )

6、带复制的基于局部性最少链接(Locality-Based Least Connections with Replication Scheduling)

7、目标地址散列调度(Destination Hashing Scheduling )

8、源地址散列调度(Source Hashing Scheduling)


负载均衡介绍

1.什么是负载均衡

负载均衡是由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。
通过某种负载分担技术,将外部发送来的请求均匀分配到对称结构中的某一台服务器上,而接收到请求的服务器独立地回应客户的请求。均衡负载能够平均分配客户请求到服务器列阵,借此提供快速获取重要数据,解决大量并发访问服务问题。

 

2.常见的负载均衡器

根据工作的协议层可划分为:
四层负载均衡(位于内核层):根据请求报文中的目标地址和端口进行调度
七层负载均衡(位于应用层):根据请求报文的内容进行调度,这种调度属于“代理“的方式,如varnish

根据软硬件划分为:
硬件负载均衡:
F5 的 BIG-IP;Citrix 的 NetScaler
软件负载均衡:
a.TCP 层:LVS,HaProxy,Nginx;
b.基于 HTTP协议:Haproxy,Nginx,ATS(Apache Traffic Server),squid,varnish;
c.基于 MySQL 协议:mysql-proxy

 

 

3.负载均衡分类

1)二层负载均衡(mac)

      根据OSI模型分的二层负载,一般是用虚拟mac地址方式,外部对虚拟MAC地址请求,负载均衡接收后分配后端实际的MAC地址响应.

2)三层负载均衡(ip)

      一般采用虚拟IP地址方式,外部对虚拟的ip地址请求,负载均衡接收后分配后端实际的IP地址响应. (即一个ip对一个ip的转发, 端口全放开)

3)四层负载均衡(tcp)

     在三次负载均衡的基础上,即从第四层"传输层"开始, 使用"虚拟ip+port"接收请求,再转发到对应的机器。四层通过虚拟IP+端口接收请求,然后再分配到真实的服务器;

4)七层负载均衡(http)

     从第七层"应用层"开始, 根据虚拟的url或IP,主机名接收请求,再转向相应的处理服务器。七层通过虚拟的URL或主机名接收请求,然后再分配到真实的服务器。

我们运维中最常见的四层和七层负载均衡,这里重点说下这两种负载均衡。

 

4.四层和七层负载均衡之间的区别

1) 从技术原理上分析

      所谓四层负载均衡,也就是主要通过报文中的目标地址和端口,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。

      以常见的TCP为例,负载均衡设备在接收到第一个来自客户端的SYN 请求时,即通过上述方式选择一个最佳的服务器,并对报文中目标IP地址进行修改(改为后端服务器IP),直接转发给该服务器TCP的连接建立,即三次握手是客户端和服务器直接建立的,负载均衡设备只是起到一个类似路由器的转发动作。在某些部署情况下,为保证服务器回包可以正确返回给负载均衡设备,在转发报文的同时可能还会对报文原来的源地址进行修改。四层负载均衡在传输层执行,它处理消息的传递,但不考虑消息的内容

 

      所谓七层负载均衡,也称为“内容交换”,也就是主要通过报文中的真正有意义的应用层内容,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。

      以常见的TCP为例,负载均衡设备如果要根据真正的应用层内容再选择服务器,只能先代理最终的服务器和客户端建立连接(三次握手)后,才可能接受到客户端发送的真正应用层内容的报文,然后再根据该报文中的特定字段,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。负载均衡设备在这种情况下,更类似于一个代理服务器。负载均衡和前端的客户端以及后端的服务器会分别建立TCP连接。所以从这个技术原理上来看,七层负载均衡明显的对负载均衡设备的要求更高,处理七层的能力也必然会低于四层模式的部署方式。七层负载均衡不同于四层负载均衡,它在高级应用层上执行,会处理每个消息的实际内容。它可以根据消息内容(如URL或cookie)做出负载均衡决策随后,七层负载均衡与选定上有服务器建立新的TCP连接并将请求写入服务器。

 

2)总体对比

4.1) 智能性
      七层负载均衡由于具备OIS七层的所有功能,所以在处理用户需求上能更加灵活,从理论上讲,七层模型能对用户的所有跟服务端的请求进行修改。例如对文件header添加信息,根据不同的文件类型进行分类转发。四层模型仅支持基于网络层的需求转发,不能修改用户请求的内容。

4.2) 安全性
      七层负载均衡由于具有OSI模型的全部功能,能更容易抵御来自网络的攻击;四层模型从原理上讲,会直接将用户的请求转发给后端节点,无法直接抵御网络攻击。

4.3) 复杂度
      四层模型一般比较简单的架构,容易管理,容易定位问题;七层模型架构比较复杂,通常也需要考虑结合四层模型的混用情况,出现问题定位比较复杂。

4.4) 效率比
     四层模型基于更底层的设置,通常效率更高,但应用范围有限;七层模型需要更多的资源损耗,在理论上讲比四层模型有更强的功能,现在的实现更多是基于http应用。

 

5.如何解决负载均衡器成为瓶颈的问题?

      通过修改tcp报文的源地址和目的地址,使从web服务器中返回的数据直接返回到客户端,这是七层负载均衡无法做到的,因为tcp三次握手建立在客户端与负载均衡服务器之间,http协议基于tcp协议,建立好tcp链接后才传送http报文,收到http报文说明负载均衡器和客户端已经建立了tcp连接,而web服务器和客户端的tcp链接都没建立,怎么回传数据给客户端呢。以上的办法会出现问题:所有集群里的主机都是内网ip,无法跟外界联系。
解决方案1:
      如果能买到那么多外网Ip地址来用,然后在tcp链接要建立时负载均衡给真正的web服务器,让客户端和服务器建立tcp链接
解决方案2:
      引用一句话:计算机所有的问题都可以通过建立一层虚拟层解决。
      可以通过将所有服务器主机ip虚拟化成负载均衡服务器的ip,这样服务器集群的所有主机都可以访问外界网络,因为ip地址(网络层,三层)都是相同,所以只能通过第二层来分辨数据流向,修改数据链路层(二层)目的主机的MAC地址,使请求发到web服务器上,然后才真正建立起tcp连接,然后web服务器因为可以联网,所以可以直接返回数据给客户端

 

6.nginx、haproxy、lvs、apache区别

Nginx

优点

工作在7层,并发量可以达几万次,可以针对http做分流策略 

对网络稳定性的依赖非常小,理论上能ping通就能进行负载功能。

Nginx可以通过端口检测到服务器内部的故障,如根据服务器处理网页返回的状态码、超时等,并会把返回错误的请求重新提交到另一个节点。

正则表达式比HAProxy强大安装,配置,测试简单,通过日志可以解决多数问题

缺点

仅仅支持http,https,mail协议,应用面小

监控检查仅通过端口,无法使用url检查

 

LVS

优点

负载能力强,工作在4层,仅作ip与端口分发之用,没有流量的产生对内存,CPU消耗低

配置性低,没有太多可配置性,减少人为错误

应用面广,几乎可以为所有应用提供负载均衡,包括http、数据库、在线聊天室等等。

缺点

不支持正则表达式,不能实现动静分离

如果网站架构庞大,LVS-DR配置比较繁琐

 

HAProxy

优点

能够补充Nginx的一些缺点,如支持session,cookie功能,可以通过url进行健康检查

本身就只是一款负载均衡软件,效率,负载均衡速度,高于Nginx,低于LVS

HAPproxy支持TCP,可以对MySQL进行负载均衡

调度算法丰富,有八种

缺点

正则弱于nginx

不支持HTTP cache功能。现在不少开源的lb项目,都或多或少具备HTTP cache功能。

日志依赖于syslogd,不支持apache日志

比较

HAProxy

Nginx

LVS

Apache

 

 

简介

高可用、负载均衡且基于TCP和HTTP应用的代理,支持高并发,多集群反代。

高性能http和反向代理服务器、邮件代理服务器,支持高并发,轻量级Web,低系统资源消耗。

Linux虚拟服务器,常用VS/NAT、VS/TUN和VS/DR,三种模式负载均衡。

高性能Web服务器,支持代理,市场份额很高。

 

 

 

优点缺点

1、抗负载能力强,负载均衡速度高。

2、支持session保持,Cookie引导,可通过url检测后端服务器健康状态。

3、也可做MySQL、Email等负载均衡。

4、一般不做Web服务器的Cache。

 

1、抗负载能力强。

2、http、https、Emai协议功能较好,处理相应请求快。

3、Web能力强,配置简单,支持缓存功能、适用动静分离,低内存消耗。

4、不支持session直接保持,但可通过ip_hash解决,通过端口对后端服务器健康检查。

1、抗负载能力强。

2、通过vrrp转发(仅分发)效率高,流量通过内核处理,没有流量产生。(理论)

3、相当稳定可靠。

4、不支持正则,不能做动静分离,配置略复杂,需要IP略多。

1、Web处理能力强,市场份额很高。(不过后期Nginx在Web方面越来越好,份额也在增长)

2、Rewrite强大,并支持很多模块,扩展很方便。

3、Bug少,历史久,比较稳定。

4、处理动态请求比Nginx好。

 

 

支持算法

1、轮循

Round-robin

2、带权轮循

Weight-round-robin

3、原地址保持)

Source

4、RI请求URL

rdp-cookie(根据cookie)

1、轮循

Round-robin

2、带权轮循

Weight-round-robn

3、Ip哈希

Ip-hash

1、rr(轮循)

2、wrr(带权轮循)

3、lc(最小连接)、

4、wlc(权重最小连接)

 

通过相关模块实现代理

官网

www.haproxy.com

nginx.org

www.linuxvirtualserver.org

 

http://www.apache.org/

是否免费

免费

免费

免费

免费

虚拟主机

支持

支持

不支持 

支持

七层(常用)

七层(常用)

四层(常用)

不常用

七层重量级,四层轻量级

七层重量级,四层轻量级

四层重量级

功能略差

热备

Keepalived+其它

Keepalived+其它

Keepalived+其它

Keepalived+其它

负载均衡参考标准

1、效率,并发处理能力、处理数据能力。

2、成本、需求、平台。

LVS基础

1.什么是LVS

LVS是 Linux Virtual Server 的简称,也就是Linux虚拟服务器。LVS 可以达到的技术目标是:通过 LVS 达到的负载均衡
技术和 Linux 操作系统实现一个高性能高可用的 Linux 服务器集群,它具有良好的可靠性、可扩展性和可操作性。从而以
低廉的成本实现最优的性能。LVS 是一个实现负载均衡集群的开源软件项目,LVS架构从逻辑上可分为调度层、Server集群

 

2.LVS的基本工作原理

知识总结4:负载均衡面试题大全(四层/七层负载均衡对比详解+nginx/lvs/haproxy区别+LVS原理+三种模式详解)_第1张图片

1)当用户向负载均衡调度器(Director Server)发起请求,调度器将请求发往至内核空间


2) PREROUTING链首先会接收到用户请求,判断目标IP确定是本机IP,将数据包发往INPUT链


3)IPVS是工作在INPUT链上的,当用户请求到达INPUT时,IPVS会将用户请求和自己已定义好的集群服务进行比对,如果用户请求的就是定义的集群服务,那么此时IPVS会强行修改数据包里的目标IP地址及端口,并将新的数据包发往POSTROUTING链


4) POSTROUTING链接收数据包后发现目标IP地址刚好是自己的后端服务器,那么此时通过选路,将数据包最终发送给后端的服务器

 

3.LVS的组成

LVS 由2部分程序组成,包括 ipvs 和 ipvsadm。
ipvs(ip virtual server):一段代码工作在内核空间,叫ipvs,是真正生效实现调度的代码。
ipvsadm:另外一段是工作在用户空间,叫ipvsadm,负责为ipvs内核框架编写规则,定义谁是集群服务,而谁是后端真实的服务器(Real Server)

 

4.LVS相关术语

DS:Director Server :指的是前端负载均衡器节点。
RS:Real Server:后端真实的工作服务器。
VIP:向外部直接面向用户请求,作为用户请求的目标的IP地址。
DIP:Director Server IP,主要用于和内部主机通讯的IP地址。
RIP:Real Server IP,后端服务器的IP地址。
CIP:Client IP,访问客户端的IP地址。

 

LVS/DR原理与特点

1.工作原理

1)当用户请求到达Director Server,此时请求的数据报文会先到内核空间的PREROUTING链。 此时报文的源IP为CIP,目标IP为VIP
2) PREROUTING检查发现数据包的目标IP是本机,将数据包送至INPUT链
3) IPVS比对数据包请求的服务是否为集群服务,若是,将请求报文中的源MAC地址修改为DIP的MAC地址,将目标MAC地址修改RIP的
MAC地址,然后将数据包发至POSTROUTING链。 此时的源IP和目的IP均未修改,仅修改了源MAC地址为DIP的MAC地址,目标MAC地址为
RIP的MAC地址
4) 由于DS和RS在同一个网络中,所以是通过二层来传输。POSTROUTING链检查目标MAC地址为RIP的MAC地址,那么此时数据包将会
发至Real Server。
5) RS发现请求报文的MAC地址是自己的MAC地址,就接收此报文。处理完成之后,将响应报文通过lo接口传送给eth0网卡然后向外
发出。 此时的源IP地址为VIP,目标IP为CIP
6) 响应报文最终送达至客户端

 

2.LVS/DR模式的要求与优缺点

要求:
1.LVS服务器和后端真实的服务器要处在同一vlan中。
2.LVS和后端服务器上都要有vip,并且后端真实服务器上的vip不能对外进行广播。

优点:
1.LVS服务器只是修改了mac地址,所以非常快速,并且LVS不会成为瓶颈。

缺点:
1.要求较高,LVS服务器必须和后端真实服务器处于同一vlan中;
2.后端真实服务器直接响应客户端,对于后端真实服务器来说,并不安全。

 

LVS/NAT原理和特点

1.工作原理

1) 当用户请求到达Director Server,此时请求的数据报文会先到内核空间的PREROUTING链。 此时报文的源IP为CIP,目标IP为VIP
2) PREROUTING检查发现数据包的目标IP是本机,将数据包送至INPUT链
3) IPVS比对数据包请求的服务是否为集群服务,若是,修改数据包的目标IP地址为后端服务器IP,然后将数据包发至POSTROUTING链。 
此时报文的源IP为CIP,目标IP为RIP
4) POSTROUTING链通过选路,将数据包发送给Real Server
5) Real Server比对发现目标为自己的IP,开始构建响应报文发回给Director Server。 此时报文的源IP为RIP,目标IP为CIP
6) Director Server在响应客户端前,此时会将源IP地址修改为自己的VIP地址,然后响应给客户端。 此时报文的源IP为VIP,目标
IP为CIP

知识总结4:负载均衡面试题大全(四层/七层负载均衡对比详解+nginx/lvs/haproxy区别+LVS原理+三种模式详解)_第2张图片

 

2.LVS/NAT模式的要求与优缺点

特点:
1.RS应该使用私有地址,RS的网关必须指向DIP
2.DIP和RIP必须在同一个网段内
3.LVS服务器需要有不同的网段。
4.真实服务器的网关必须设置为LVS的ip地址。

优点:
1.安全
2.可以实现不同网段的数据请求。

缺点:
因为在 VS/NAT 中请求和响应报文都需要通过负载调度器,伸缩能力有限, 当服务器结点数目升到 20 时,调度器本身
有可能成为系统的新瓶颈。

 

LVS/Tun(隧道模式)原理和特点

1.工作原理

1) 当用户请求到达Director Server,此时请求的数据报文会先到内核空间的PREROUTING链。 此时报文的源IP为CIP,目标IP为VIP 。
2) PREROUTING检查发现数据包的目标IP是本机,将数据包送至INPUT链
3) IPVS比对数据包请求的服务是否为集群服务,若是,在请求报文的首部再次封装一层IP报文,封装源IP为为DIP,目标IP为RIP。然后
发至POSTROUTING链。 此时源IP为DIP,目标IP为RIP
4) POSTROUTING链根据最新封装的IP报文,将数据包发至RS(因为在外层封装多了一层IP首部,所以可以理解为此时通过隧道传输)。 
此时源IP为DIP,目标IP为RIP
5) RS接收到报文后发现是自己的IP地址,就将报文接收下来,拆除掉最外层的IP后,会发现里面还有一层IP首部,而且目标是自己的lo
接口VIP,那么此时RS开始处理此请求,处理完成之后,通过lo接口送给eth0网卡,然后向外传递。 此时的源IP地址为VIP,目标IP为CIP
6) 响应报文最终送达至客户端

知识总结4:负载均衡面试题大全(四层/七层负载均衡对比详解+nginx/lvs/haproxy区别+LVS原理+三种模式详解)_第3张图片

 

2.LVS/Tun模式的要求与优缺点

要求:
1.lvs和后端真实服务器上都要有vip
2.不会成为瓶颈
3.请求的报文不能太大

优点:
快速

缺点:
不安全,不能抵抗DOS攻击

 

三种模式对比

知识总结4:负载均衡面试题大全(四层/七层负载均衡对比详解+nginx/lvs/haproxy区别+LVS原理+三种模式详解)_第4张图片

  • 是否需要VIP和realserver在同一网段
    DR模式因为只修改包的MAC地址,需要通过ARP广播找到realserver,所以VIP和realserver必须在同一个网段,也就是说DR模式需要先确认这个IP是否只能挂在这个LVS下面;其他模式因为都会修改目的地址为realserver的IP地址,所以不需要在同一个网段内
  • 是否需要在realserver上绑定VIP
    realserver在收到包之后会判断目的地址是否是自己的IP
    DR模式的目的地址没有修改,还是VIP,所以需要在realserver上绑定VIP
    IP TUN模式值是对包重新包装了一层,realserver解析后的包的IP仍然是VIP,所以也需要在realserver上绑定VIP
  • 四种模式的性能比较
    DR模式、IP TUN模式都是在包进入的时候经过LVS,在包返回的时候直接返回给client;所以二者的性能比NAT高
    但TUN模式更加复杂,所以性能不如DR
    FULLNAT模式不仅更换目的IP还更换了源IP,所以性能比NAT下降10%
    性能比较:DR>TUN>NAT>FULLNAT

 

LVS八种调度算法

1、轮叫调度(Round-Robin Scheduling )

轮叫调度(Round Robin Scheduling)算法就是以轮叫的方式依次将请求调度不同的服务器,即每次调度执行 i = (i + 1) mod n,并选出第 i 台服务器。算法的优点是其简洁性,它无需记录当前所有连接的状态,所以它是一种无状态调度。

 

2、加权轮叫调度(Weighted Round-Robin Scheduling )

加权轮叫调度 (Weighted Round-Robin Scheduling)算法可以解决服务器间性能不一的情况,它用相应的权值表示服务器的处理性能,服务器的缺省权值为 1。假设服务器 A 的权值为 1,B 的 权值为 2,则表示服务器 B 的处理性能是 A 的两倍。加权轮叫调度算法是按权值的高低和轮叫方式分配请求到各服务器。权值高的服务器先收到的连接,权值高的服 务器比权值低的服务器处理更多的连接,相同权值的服务器处理相同数目的连接数。

 

3、最小连接调度(Least-Connection Scheduling )

最小连接调度(Least- Connection Scheduling)算法是把新的连接请求分配到当前连接数最小的服务器。最小连接调度是一种动态调度算法,它通过服务器当前所活跃的连接数来估计服务 器的负载情况。调度器需要记录各个服务器已建立连接的数目,当一个请求被调度到某台服务器,其连接数加 1;当连接中止或超时,其连接数减一。

 

4、加权最小连接调度(Weighted Least-Connection Scheduling)

加权最小连接调 度(Weighted Least-Connection Scheduling)算法是最小连接调度的超集,各个服务器用相应的权值表示其处理性能。服务器的缺省权值为 1,系统管理员可以动态地设置服务器的权 值。加权最小连接调度在调度新连接时尽可能使服务器的已建立连接数和其权值成比例。

 

5、基于局部性的最少链接(Locality-Based Least Connections Scheduling )

基于局部性的最少链接调度(Locality-Based Least Connections Scheduling,以下简称为 LBLC)算法是针对请求报文的目标 IP 地址的负载均衡调度,目前主要用于 Cache 集群系统,因为在 Cache 集群中 客户请求报文的目标 IP 地址是变化的。这里假设任何后端服务器都可以处理任一请求,算法的设计目标是在服务器的负载基本平衡情况下,将相同目标 IP 地址的 请求调度到同一台服务器,来提高各台服务器的访问局部性和主存 Cache 命中率,从而整个集群系统的处理能力。LBLC 调度算法先根据请求的目标 IP 地址 找出该目标 IP 地址最近使用的服务器,若该服务器是可用的且没有超载,将请求发送到该服务器;若服务器不存在,或者该服务器超载且有服务器处于其一半的工 作负载,则用 “ 最少链接 ” 的原则选出一个可用的服务器,将请求发送到该服务器。

 

6、带复制的基于局部性最少链接(Locality-Based Least Connections with Replication Scheduling)

带复制的基于局部性最少链接调度(Locality-Based Least Connections with ReplicationScheduling,以下简称为 LBLCR)算法也是针对目标 IP 地址的负载均衡,目前主要用于Cache 集群系统。它与 LBLC 算法的不同之处是它要 维护从一个目标 IP 地址到一组服务器的映射,而 LBLC 算法维护从一个目标 IP 地址到一台服务器的映射。对于一个 “ 热门 ” 站点的服务请求,一台 Cache 服务器可能会忙不过来处理这些请求。这时,LBLC 调度算法会从所有的Cache 服务器中按 “ 最小连接 ” 原则选出一台 Cache 服务器,映射该 “ 热门 ” 站 点到这台 Cache服务器,很快这台 Cache 服务器也会超载,就会重复上述过程选出新的 Cache 服务器。这样,可能会导致该 “ 热门 ” 站点的映像会出现 在所有的 Cache 服务器上,降低了 Cache 服务器的使用效率。LBLCR 调度算法将 “ 热门 ” 站点映射到一组 Cache 服务器(服务器集合),当该 “ 热门 ” 站点的请求负载增加时,会增加集合里的 Cache 服务器,来处理不断增长的负载;当该 “ 热门 ” 站点的请求负载降低时,会减少集合里的Cache 服务器 数目。这样,该 “ 热门 ” 站点的映像不太可能出现在所有的 Cache 服务器上,从而提供 Cache 集群系统的使用效率。LBLCR 算法先根据请求的目标 IP 地址找出该目标 IP 地址对应的服务器组;按 “ 最小连接 ” 原则从该服务器组中选出一台服务器,若服务器没有超载,将请求发送到该服务器;若服务器超载;则按 “ 最小连接 ” 原则从整个集群中选出一台服务器,将该服务器加入到服务器组中,将请求发送到该服务器。同时,当该服务器组有一段时间没有被修改,将最忙的服 务器从服务器组中删除,以降低复制的程度。

 

7、目标地址散列调度(Destination Hashing Scheduling )

目标地址散列调度 (Destination Hashing Scheduling)算法也是针对目标 IP 地址的负载均衡,但它是一种静态映射算法,通过一个散列(Hash)函数将一个目标 IP 地址映射到一台服务器。目标地址散列调度算法先根据请求的目标 IP 地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。

 

8、源地址散列调度(Source Hashing Scheduling)

源地址散列调度(Source Hashing Scheduling)算法正好与目标地址散列调度算法相反,它根据请求的源 IP 地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。它采用的散列函数与目标地址散列调度算法 的相同。它的算法流程与目标地址散列调度算法的基本相似,除了将请求的目标 IP 地址换成请求的源 IP 地址,所以这里不一一叙述。在实际应用中,源地址散列调度和目标地址散列调度可以结合使用在防火墙集群中,它们可以保证整个系统的唯一出入口。

 

你可能感兴趣的:(面试必看)