HAProxy之体验总结

简介

  1. HaProxy作为四层优秀的负载均衡服务 可以热更新有关配置 实现配置更新 TCP不中断
  2. Haproxy转发性能稍高(zero copy的转发流程)
  3. 支持session保持,Cookie引导,可通过url检测后端服务器健康状态。
  4. Haproxy 是单进程多线程模式,此模型支持非常大的并发连接数。

配置说明

  1. 全局配置
  2. 代理配置字段
    • defaults 默认配置字段
    • frontend 前端配置字段 用于配置请求链接
    • backend 后端配置字段 用于服务集群的配置
    • listen 用于同时配置 前端跟后端(相当于frontend+backend)
  3. 轮询算法
    1. roundrobin:轮询,依次访问每一个后端ip
    2. server options: weight 权重
    3. 动态算法:支持权重的运行时调整,支持慢启动;每个后端中最多支持4095个server;
    4. static-rr:静态算法:不支持权重的运行时调整及慢启动;后端主机数量无上限;(短连接和无状态的连接推荐使用rr算法)
  4. 进程相关参数
    1. chroot
    2. daemonn
    3. nbproc 进程个数
    4. tune.chksize 检查缓冲区的大小 默认单位为字节
  5. 文章参考 http://www.ttlsa.com/linux/haproxy-study-tutorial/

配置示例

        global
                daemon
                # nbproc 1
                # pidfile /var/run/haproxy.pid
                # 工作目录

        defaults
                log 127.0.0.1 local0 err #[err warning info debug]
                mode http                #默认的模式mode { tcp|http|health },tcp是4层,http是7层,health只会返回OK
                retries 2                #两次连接失败就认为是服务器不可用,也可以通过后面设置
                option redispatch        #当serverId对应的服务器挂掉后,强制定向到其他健康的服务器
                option abortonclose      #当服务器负载很高的时候,自动结束掉当前队列处理比较久的链接
                option dontlognull       #日志中不记录负载均衡的心跳检测记录
                maxconn 4096             #默认的最大连接数
                timeout connect 5000ms   #连接超时
                timeout client 30000ms   #客户端超时
                timeout server 30000ms   #服务器超时
                #timeout check 2000      #=心跳检测超时

        ######## 监控界面配置 #################
        listen admin_status
                # 监控界面访问信息
                bind *:8888
                mode http
                # URI相对地址
                stats uri /dbs
                # 统计报告格式
                stats realm Global\ statistics
                # 登录账户信息
                stats auth admin:123456
        ########frontend配置##############

        ######## pg负载均衡配置 ###############
        listen proxy-pg
                bind *:5055
                mode tcp
                # 负载均衡算法
                # static-rr 权重, leastconn 最少连接, source 请求IP, 轮询 roundrobin
                balance roundrobin
                # 日志格式
                option tcplog
            
                # 这里是容器中的IP地址,由于配置的是轮询roundrobin,weight 权重其实没有生效
                server pg_1 172.17.0.1:5411 check weight 1 maxconn 2000
                server pg_2 172.17.0.1:5412 check weight 1 maxconn 2000
                # 使用keepalive检测死链
                # option tcpka
        #########################################

 

posted @ 2021-01-10 12:17  meetzy  阅读(189)  评论(0编辑  收藏  举报