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
本文出自 “Linux SA John” 博客,请务必保留此出处http://john88wang.blog.51cto.com/2165294/1620384
使用HAProxy作为MongoDB分片集群mongos负载均衡
原文地址:http://john88wang.blog.51cto.com/2165294/1620384