关于负载均衡的粗略理解

1. 什么是负载均衡?

负载均衡,英文名称为Load Balance,是一种对流量进行按需分发的服务,通过将流量分发到不同的后端服务器来扩展应用系统的吞吐能力,并且可以消除系统中的单点故障,提升应用系统的可用性。
OSI参考模型,是一个用于计算机或通信系统间互联的标准体系,一般称为OSI参考模型或七层模型。

2. 负载均衡不同层数有何区别?

根据负载均衡所作用在OSI模型的位置不同,负载均衡可以大概分为二层、三层、四层和七层四大类,在实际应用中,常用的就是四层负载均衡及七层负载均衡

  • 二层负载: 基于虚拟MAC地址,外部对虚拟MAC地址请求,负载均衡接收后分配后端实际的MAC地址响应。
  • 三层负载: 基于虚拟IP地址,外部对虚拟的IP地址请求,负载均衡接收后分配后端实际的IP地址响应。
  • 四层负载: 基于虚拟IP+端口,四层负载均衡工作在OSI模型的传输层,由于在传输层,只有TCP/UDP协议,四层负载均衡器在接受到客户端请求后,通过修改数据包的地址信息(IP+端口)将流量转发到应用服务器。
  • 七层负载: 基于URL等应用信息,工作在OSI模型的应用层,除了根据IP 端口进行负载外,还可根据七层的URL、浏览器类别、语言来决定是否要进行负载均衡。

3. 我们常说的四层负载和七层负载有何区别?

  • 四层负载均衡
    • 也称为网络负载均衡,支持TCP、UDP协议,常见产品:LVS、F5
    • 四层负载均衡主要基于IP地址、端口等信息进行转发。
    • 优点:四层更快,在内核空间处理,不用走用户空间,需要解析得更少。
  • 七层负载均衡
    • 也称为应用负载均衡,支持HTTP、HTTPS协议,常见产品:Nginx、HAProxy
    • 七层负载均衡可以利用应用层的信息进行转发,如HTTP的请求头部,而这些信息对四层负载均衡来说是不可见的。
    • 优点:七层功能更多,可以实现更复杂的负载均衡控制,比如基于URL、Session、动静分离等。

4. 四层负载和七层负载的性能侧重点是什么?

  • 四层负载,监听关注的重点是长连接的并发连接数
  • 七层负载,监听关注的重点是QPS的性能

5. 我们应该基于什么因素来选择四层负载或七层负载?

  • 四层负载,适合于只是想把数据报文做转发的场景
  • 七层负载,适合于想要对七层协议报头做解析,来决定是否要进行负载均衡的场景

6. 为什么要有四层负载和七层负载之分?

  • 因为有些请求是要做Session保持的,也就是同一个Client IP要路由到同一个后台服务器上。

7. 四层负载的常见调度算法有哪些?

  • 轮询
  • 加权轮询
  • 源IP哈希

8. 七层负载的常见转发规则有哪些?

  • 基于域名或路径匹配
  • 基于HTTP Header匹配
  • 基于查询字符串匹配
  • 基于Cookie匹配
  • 基于HTTP请求方法匹配
  • 基于源IP匹配
  • 基于响应中的状态码匹配
  • 基于响应中的Header匹配
  • 重定向
  • 重写或返回固定响应

参考文档
负载均衡四层和七层区别(干货快速区分二)
负载均衡为什么要“四七层分离”

你可能感兴趣的:(总结+笔记,分布式,负载均衡,网络,服务器)