图片

HAProxy 是一款高性能开源负载均衡器,GitHub 星标超过 4 千,现在很多公司都用它做四层七层负载均衡,高并发场景性能很好,比 Nginx 还强。

我用 HAProxy 做过负载均衡,聊聊它好在哪,值得学吗。

HAProxy 解决了什么问题

你多个服务实例,要做负载均衡,分发请求,高可用,一台挂了自动切到别的,HAProxy 专门做这个,性能比很多负载均衡好,高并发场景顶得住。

支持四层和七层负载均衡,TCP HTTP 都能做,根据 URL 路径分发,根据 cookie 会话保持,功能全,满足各种场景。

健康检查,后端实例挂了自动摘掉,不会把请求分给死节点,自动恢复好了加回来,稳定。

基础例子看一下

配置文件 haproxy.cfg:

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

启动:

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 就是好选择,学会了一直能用。

项目地址:https://github.com/haproxy/haproxy

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐