文章目录

HAProxy 是一款高性能开源负载均衡器,GitHub 星标超过 4 千,现在很多公司都用它做四层七层负载均衡,高并发场景性能很好,比 Nginx 还强。
我用 HAProxy 做过负载均衡,聊聊它好在哪,值得学吗。
HAProxy 解决了什么问题
你多个服务实例,要做负载均衡,分发请求,高可用,一台挂了自动切到别的,HAProxy 专门做这个,性能比很多负载均衡好,高并发场景顶得住。
支持四层和七层负载均衡,TCP HTTP 都能做,根据 URL 路径分发,根据 cookie 会话保持,功能全,满足各种场景。
健康检查,后端实例挂了自动摘掉,不会把请求分给死节点,自动恢复好了加回来,稳定。
基础例子看一下
配置文件 haproxy.cfg:
conf
global
log /dev/log local0
log /dev/log local1 notice
chroot /var/lib/haproxy
stats socket /run/haproxy/admin.sock mode 666 level admin
daemon
defaults
log global
mode http
option httplog
option dontlognull
timeout connect 5000
timeout client 50000
timeout server 50000
frontend http_front
bind *:80
default_backend web_servers
backend web_servers
balance roundrobin
server web1 192.168.1.10:80 check
server web2 192.168.1.11:80 check
启动:
bash
haproxy -f haproxy.cfg
就是这么简单,所有请求 80 进来,roundrobin 分给两个后端服务器,自动健康检查,哪个挂了自动去掉,用户感知不到,稳定。
stats 页面配置一下就能看,各个服务器状态,流量,一目了然,方便监控。
核心好用的特性
高性能
高并发低延迟,一万并发轻松扛,比很多负载均衡性能好,大厂高并发场景都用它,靠谱。
四层+七层
四层 TCP 负载均衡,七层 HTTP 负载均衡都能做,你想分发 TCP 还是 HTTP 都可以,满足不同场景。
多种负载均衡算法
roundrobin、leastconn、source,多种算法,你想要什么策略选什么,满足不同需求。
健康检查
后端服务器定期检查,不健康自动移除,恢复了自动加回来,不用人工干预,高可用,稳定。
ACL 灵活分流
根据 URL、域名、头信息分流,不同内容分到不同后端,灵活,满足各种架构需求。
会话保持
cookie 会话保持,同一个用户请求分到同一个后端,没问题,满足应用需求。
哪些场景用 HAProxy
负载均衡,高并发场景,HAProxy 性能好,首选。API 网关,七层分流,路径分流,HAProxy 能做,合适。四层 TCP 负载均衡,数据库连接负载,也能做,没问题。
HAProxy 有哪些优缺点
优点,性能真的好,高并发比 Nginx 好,功能全,四层七层都能做,配置简单,稳定,十几年了,成熟,坑少。
缺点,就是它就是负载均衡,做反向代理也行,但静态文件处理这些不如 Nginx,一般前面 CDN 或者 Nginx 静动静分离,动态请求给 HAProxy,分工,也没问题。
现在 HAProxy 发展得怎么样
出来快二十年了,一直稳定更新,现在很多公司生产环境用,高并发场景还是首选,地位稳,一直维护,没问题。
现在学 HAProxy 值得吗
做后端运维,肯定值得学,负载均衡是后端架构必备,HAProxy 最流行高性能的,学会了,做架构就能用上,高并发场景不用愁。
配置也简单,例子多,跟着抄就能用,学会基本配置半天就够,常用就那几块,不难,投入低收益高,肯定值得。你做架构,高并发负载均衡,HAProxy 就是好选择,学会了一直能用。
项目地址:https://github.com/haproxy/haproxy
半天就够,常用就那几块,不难,投入低收益高,肯定值得。你做架构,高并发负载均衡,HAProxy 就是好选择,学会了一直能用。