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

本文深入探讨了负载均衡的四层和七层区别,从技术原理和总体对比两方面进行分析。介绍了LVS的基础知识,包括LVS/DR、NAT和Tunnel模式的特点与优缺点。同时,对比了Nginx、HAProxy和LVS的差异,以及解决负载均衡器瓶颈的方法。文章还详细阐述了LVS的八种调度算法。
摘要由CSDN通过智能技术生成

 

目录

负载均衡介绍

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地址(网络层,三层)都是相同,所以只能通过第二层来分辨数据流向,修改数据链路层(二层)目

  • 8
    点赞
  • 80
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值