Redis和HAProxy – 更新configuration设置?

已经安装了2个Redis实例,其中一个是Master。 这工作非常好,没有头痛。

我现在试图让我的HAProxy / keepalived节点来处理某种故障转移。

1)这是甚至可能的 – build立一个节点作为主,另一个备份? 这是我正在做我的MySQL节点:

        服务器192.168.32.33 192.168.32.33:3306检查备份
        服务器192.168.32.34 192.168.32.34:3306检查

2)如果有,是否有更新的文件? 我已经按照HAProxy的博客上的文档,如下所示:

ServerFault文章: Redis sentinel + HAProxy故障转移

但是,尽pipe我可以通过CLI和其他客户端使用它们,但是节点却显示为closures状态:

HA Proxy Web界面中失败的Redis节点的快照

使用CLI,如果我在tcp-checks中发出命令,则响应与conf中的预期返回相匹配。 (注意:我们还没有在Redis节点上打开身份validation)。

这是我的haproxy.cfg – 从我的MySQL部分的最后一行开始

        服务器192.168.32.34 192.168.32.34:3306检查 

默认REDIS
        模式tcp
        超时连接4s
        超时服务器30s
        超时客户端30s

前台ft_redis
        绑定*:6379名称redis
         default_backend bk_redis

后端bk_redis
        选项tcp-check
         tcp-check发送PINGrn
         tcp-check expect string + PONG
         tcp-check发送信息replicationrn
         tcp-check预期stringangular色:master
         tcp-check发送QUITrn
         tcp-check expect string + OK
        服务器Site2DB3 192.168.32.36:6379检查inter 1s
        服务器Site1DB3 192.168.22.36:6379检查inter 1s

PINGrn 

应该读

 PING\r\n 

对于其他tcp-check消息也是如此。 你正在发送PINGrn而不是PING\r\n ,一个无效的命令会抛出一个错误,从而导致你的UP检查失败。

还要确保你在tcp-check发送后像下面这样转义空格:

 tcp-check send info\ replication\r\n 

对于具有身份validation的REDIS,请添加以下内容:

 tcp-check send AUTH\ xxx_xxx\r\n