Skip to content

2)LVS

🔰 第 1 题:什么是 LVS,它解决了什么问题?

Q1:你了解 LVS 吗?它的主要作用是什么?适合解决哪些问题?

📝 标准答案:

LVS(Linux Virtual Server)是基于 Linux 内核的负载均衡解决方案,属于四层负载均衡(工作在 TCP/IP 协议栈的第 4 层,主要基于 IP+端口转发)。

它主要用于解决大规模并发访问和高可用性服务调度的问题,能将请求分发到多台后端服务器,提高系统吞吐能力和可用性。

📌 适用场景:

  • 高性能、低延迟要求的负载均衡
  • 核心服务请求调度(如数据库中间层、Socket 连接服务等)
  • 局域网部署高可用集群

🌐 第 2 题:LVS 的核心架构和三种工作模式

Q2:LVS 有哪几种工作模式?它们各自的原理和适用场景是怎样的?

📝 三种常见模式:

模式简称原理特点
VS/NAT网络地址转换LVS 修改 IP 和端口,再转发请求架构简单,但 LVS 成为瓶颈
VS/TUNIP 隧道LVS 给请求打包后用隧道发给后端,回包由真实服务器直接回客户端适合跨公网,减轻 LVS 压力
VS/DR直接路由转发修改 MAC 地址直接投递到后端,回包绕过 LVS性能最好,适合内网,需配置复杂

✅ 常见实战中多采用 VS/DR 模式,因为其转发速度最快、LVS 不处理回包

🧠 第 3 题:用类比方式解释 LVS 和 Nginx 的区别

Q3:用一个形象的类比解释 LVS 与 Nginx 的差异,让不懂技术的人也能理解?

📝 类比答案:

假设你是一家快递公司的调度中心:

  • LVS 就像是一个物流分拨中心的“快速传送带系统”,根据货物的条形码(IP+端口)快速分发到不同的货车(后端服务器),自己并不管货物的内容(只关心 TCP 层)。
  • Nginx 更像是前台接待员,会检查货物(HTTP 内容)、重写收件地址、根据货物类型分配路线,还可以对内容做压缩和缓存。

🎯 对比:

  • LVS 工作在四层(网络层),性能高,但配置复杂、功能少。
  • Nginx 工作在七层(应用层),功能强大,灵活但性能相对低。

⚙️ 第 4 题:LVS 如何实现高可用?你在项目中如何设计?

Q4:如何保障 LVS 节点的高可用?在你的项目中有没有用到?

📝 标准答案:

LVS 本身无状态,为了避免单点故障,一般使用 Keepalived + LVS 组合实现高可用架构:

🔐 Keepalived 作用:

  • 提供心跳检测和故障切换
  • 主从节点之间通过 VIP(虚拟 IP)自动切换
  • 当主节点宕机,从节点自动接管调度功能

📌 项目实践中:

  • 设置主备 LVS 节点,主节点负载均衡,备节点 standby
  • 所有服务通过 VIP 接入,保证切换无感知
  • 使用 VRRP + Keepalived 实现热备

🔍 第 5 题:你在什么场景下会选择 LVS 而不是 Nginx ?

Q5:面对高并发项目部署时,你会在什么情况下选择 LVS 而不是 Nginx?

📝 参考答案:

在以下场景更适合使用 LVS:

  • 处理大规模 TCP 请求(如 Redis、MySQL、Socket 服务)时,无需 HTTP 层功能
  • 系统对响应延迟极其敏感,要求极致性能
  • LVS 的转发能力极强,支持百万级并发连接
  • 已经有稳定的内网架构,不依赖复杂的七层规则

而如果需要 URL 路由、鉴权、内容缓存等复杂逻辑,Nginx 更合适。

✅ 总结回顾:LVS 核心知识一图概览

分类LVS
类型四层负载均衡
模式NAT、TUN、DR
优势性能极致,低延迟
劣势配置复杂,不支持七层逻辑
高可用方案LVS + Keepalived
适用场景高并发、低延迟服务调度(如数据库代理、Socket)