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