HAProxy 重点精讲 + 背诵记忆点(面试速记版)

一、基础核心定义

  1. HAProxy :高性能四层 + 七层通用负载均衡、反向代理软件
  2. 工作层级:同时支持四层 (TCP/UDP)、七层 (HTTP/HTTPS)
  3. 定位:兼顾 LVS 高性能、Nginx 丰富功能,中小型集群、中间件集群首选
  4. 特点:开源、稳定、高并发、低消耗、故障检测强

二、核心架构组成

  • 前端 frontend:接收客户端请求,配置监听端口、访问控制、规则
  • 后端 backend:挂载真实业务 RS 服务器集群
  • 监听套接字:对外暴露访问端口
  • 转发逻辑:客户端请求→frontend 匹配规则→调度至 backend 真实节点

三、核心工作模式(四层 / 七层)

1. 四层模式(TCP)

  • 仅基于IP + 端口转发,不解析应用层报文
  • 适用:MySQL、Redis、MQ、SSH 等 TCP 长连接服务
  • 转发速度快、损耗小

2. 七层模式(HTTP/HTTPS)

  • 解析应用层协议头、请求报文
  • 支持 URL 路径、Host 域名、Cookie、请求头转发匹配
  • 适用:Web 接口、微服务网关、域名拆分

四、常用负载均衡调度算法(必背)

  1. roundrobin 轮询:默认,请求均匀分发
  2. static-rr 静态加权轮询:按权重分配,权重越高流量越多
  3. leastconn 最小连接数:分给当前空闲连接最少节点,适合长连接
  4. source 源 IP 哈希:同一客户端 IP 固定访问一台后端,保持会话
  5. uri URL 哈希:按请求路径哈希绑定节点,利于本地缓存
  6. hdr(host) 按域名哈希:不同域名分发不同集群

五、核心核心功能(背诵考点)

  1. 双层级转发:四层七层一体,一套软件搞定多种转发场景
  2. 健康检查:自动探测后端节点状态,故障节点自动剔除,恢复自动加回
  3. 会话保持:源 IP、Cookie、URL 绑定会话,保证用户请求落同一节点
  4. 黑白名单:IP 访问拦截、权限限流
  5. SSL 证书卸载:统一 HTTPS 加解密,减轻业务服务器压力
  6. 日志统计监控:请求耗时、状态码、流量、节点负载监控
  7. 动静分离:静态资源、动态接口拆分转发
  8. 故障熔断、权重动态调整
  9. HTTP 重定向、请求头修改

六、HAProxy 三种主流转发场景

  1. 数据库集群:MySQL 主从、读写分离、分库代理(四层 TCP)
  2. 中间件集群:Redis、RabbitMQ、Elasticsearch 负载
  3. Web / 微服务:域名路由、接口负载、七层灰度转发

七、HAProxy 优缺点

优点

  1. 四层七层全能,通用性极强
  2. 性能优秀,并发吞吐高,稳定性极强
  3. 健康检测、故障转移机制完善
  4. 配置简洁,资源占用低
  5. 支持长连接、会话绑定、SSL 卸载

缺点

  1. 静态页面缓存能力弱,不如 Nginx
  2. rewrite 重写规则复杂度弱于 Nginx
  3. 超高流量入口场景性能略低于纯四层 LVS

八、HAProxy / LVS / Nginx 三者横向对比(面试必考)

表格

组件 工作层级 核心优势 典型场景
LVS 四层 内核转发、性能天花板、超大流量 全站入口一级负载
HAProxy 四层 + 七层 全能均衡、中间件 / 数据库首选 二级负载、数据库、MQ 集群
Nginx 七层 HTTP 功能最强、缓存、rewrite、静态服务 Web 网关、静态资源、业务反向代理

通用企业层级架构

LVS (一级四层入口) → HAProxy/Nginx (二级负载) → 业务服务 / 中间件

九、高可用部署

  1. 搭配 Keepalived 实现 HAProxy 主备集群
  2. 故障自动切换、VIP 漂移,避免单点故障
  3. 主节点承载流量,备节点待命,宕机无缝接管

十、极简背诵口诀

  1. HAProxy = 四层七层全能负载均衡
  2. 架构分前端接收、后端调度
  3. 常用算法:轮询、加权、最小连接、IP/URL 哈希
  4. 擅长数据库、中间件、Web 混合集群转发
  5. 比 LVS 功能多,比 Nginx 并发稳定性强
  6. 配合 Keepalived 消除单点故障

十一、高频面试简答

  1. **HAProxy 四层和七层区别?**四层只转发 IP 端口,不解析报文,速度快,适合数据库长连接;七层解析 HTTP 协议,可按 URL、域名路由,适合 Web 业务。

  2. **HAProxy 和 Nginx 怎么选型?**数据库、Redis、MQ 等 TCP 服务优先 HAProxy;静态资源、页面缓存、复杂 rewrite 选用 Nginx;混合业务用 HAProxy。

  3. **leastconn 算法适用场景?**长连接类服务,避免请求堆积到繁忙节点,均衡后端连接压力。

  4. **HAProxy 能否做 HTTPS 解密?**支持,可以统一配置 SSL 证书,集中完成加密解密,减轻后端服务压力。

相关推荐
2301_800895106 小时前
线性代数保研面试复习
线性代数·面试·保研
moeyui7057 小时前
LeetCode 380:Insert Delete GetRandom O(1) 题解和一些延伸
算法·leetcode·职场和发展
白露与泡影7 小时前
2026秋招冲刺:1000道Java高频面试题(各大厂考点汇总)
java·开发语言·面试
Cosolar7 小时前
深入理解 LangChain Callback 机制:从入门到实战
人工智能·后端·面试
小欣加油8 小时前
leetcode3689最大子数组总值I
c++·算法·leetcode·职场和发展·贪心算法
海梨花9 小时前
字节面试高频算法题
java·算法·面试·职场和发展
折哥的程序人生 · 物流技术专研9 小时前
《Java 100 天进阶之路》第93篇:Redis实战应用:缓存策略与分布式锁(2026版)
java·redis·缓存·面试·架构·求职招聘
大头嗯呢9 小时前
从 ACL 到零信任:权限系统设计模式的演进之路
面试·架构
小欣加油9 小时前
leetcode121买卖股票的最佳时机
数据结构·c++·算法·leetcode·职场和发展
程序员二叉10 小时前
【JVM】类加载全过程&双亲委派机制深度解析
java·jvm·面试