使用HAProxy作为MongoDB分片集群mongos负载均衡

MongoDB分片集群的入口mongos自身没有failover机制。官方建议是将mongos和应用服务器部署在一起,多个应用服务器就要部署多个mongos实例,这样很是不方便。还可以使用LVS或者HAProxy来实现多个mongos的failover机制,但是一定要注意使用client affinity即客户端关联特性。

global
    chroot      /data/app_platform/haproxy/share/ 
    log        127.0.0.1 local3 info
    daemon     
    user        haproxy
    group      haproxy
    pidfile    /var/run/haproxy.pid
    nbproc      1                       
    stats socket  /tmp/haproxy level admin
    stats maxconn 20                   
    node        master_loadbalance1
    description lb1
    maxconn    65536
    nosplice                           
    spread-checks 3                     
 
defaults
    log        global                 
    mode tcp
    option abortonclose         
    option allbackups           
    option tcpka                       
    option redispatch
    retries 3   
    timeout check 60s                   
    timeout connect 600s                           
    timeout queue 600s                   
    timeout server 600s                 
    timeout tarpit 60s
    timeout client 600s   
     
     
     
frontend  mongos_pool 0.0.0.0:28018
    mode tcp
    maxconn 32768
    no option dontlognull
    option tcplog     
    log        global
    option log-separate-errors
    default_backend mongos_pool
 
backend mongos_pool
    mode tcp
    balance    source
    default-server inter 2s fastinter 1s downinter 5s slowstart 60s rise 2 fall 5 weight 30
 
    server  gintama-xxx-mongos1  192.168.100.74:28018    check  maxconn 2000
    server  gintama-xxx-mongos2  192.168.100.75:28018    check  maxconn 2000

注意使用
balance source

MongoDB 的详细介绍:请点这里
MongoDB 的下载地址:请点这里

相关推荐