已经安装了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