我使用带有心跳的ldirectord来实现mysql负载平衡。它将mysql连接平均分配到池中的所有可用服务器,但有时即使在遇到太多连接错误后,也会在池中保留从属服务器。在向从站发送更多连接之前,应该有一些选项来计算在从上运行的查询数。
任何人谁正在使用ldirectord的mysql,并希望分享相同的经验,建议解决这个问题的解决方案?
谢谢。
发布于 2011-08-18 07:59:07
从这几页:
http://www.ultramonkey.org/3/topologies/ha-lb-eg.html
http://www.ultramonkey.org/3/topologies/config/lb/non-fwmark/linux-director/ldirectord.cf
看起来,您想要做的是在每个后端主机上设置一些您可以访问的URL (类似于带有thttpd的小型CGI ),它测试盒上的守护进程,并报告一些与接收字符串不匹配的内容。当这种情况发生时,ldirectord将从池中提取节点。
示例配置:
request="test-mysql.cgi"
receive="MYSQL OK"发布于 2011-08-18 07:54:03
如果使用最小连接负载平衡算法,IPVS将以最少的活动连接数向后端发送一个新连接,这意味着当所有服务器都已满时,只会出现“太多连接”错误。目前IPVS (或ldirectord)中没有任何机制来指定后端在无法再处理之前接受的同时连接的数量限制;实际上,实现起来并不太困难,但问题是,当您已经满了之后,您将如何处理连接呢?连接尝试?不管你做什么,这都是客户端必须处理的错误,而MySQL协议中的“太多连接”在我看来更容易诊断出“连接被拒绝”,因为后面的错误比前者有更多更多的原因。
如果是我的集群,我会切换到最小连接平衡,并在工作负载上添加更多的监视;如果您达到了极限,而且您不知道提前很久就接近了它们,那么这里就会出现监视失败。
https://serverfault.com/questions/302417
复制相似问题