Redis 和 HAProxy - 更新了配置设置吗?

Redis 和 HAProxy - 更新了配置设置吗?

已安装 2 个 Redis 实例,其中一个为主实例。运行良好,没有任何问题。

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

1) 这可能吗 - 将一个节点设置为主节点,另一个节点设置为备份节点?这是我对 MySQL 节点所做的操作:

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

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

ServerFault 文章:Redis 哨兵 + HAProxy 故障转移

但节点显示为关闭,即使我可以通过 CLI 和其他客户端使用它们:

HA Proxy Web 界面中发生故障的 Redis 节点的快照

使用 CLI,如果我在 tcp-checks 中发出命令,则响应与 conf 中的预期返回相匹配。(注意:我们尚未在 Redis 节点上启用身份验证)。

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

        服务器 192.168.32.34 192.168.32.34:3306 检查

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

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

后端bk_redis
        选项 tcp-check
        tcp-检查发送PINGrn
        tcp-check 期望字符串 +PONG
        tcp-check 发送信息复制rn
        tcp-check 期望字符串角色:master
        tcp-check 发送 QUITrn
        tcp-check 期望字符串 +OK
        服务器 Site2DB3 192.168.32.36:6379 检查 1s
        服务器 Site1DB3 192.168.22.36:6379 检查内部 1s

答案1

PINGrn

应该读

PING\r\n

其他 tcp 检查消息也一样。您发送的不是 ,PINGrn而是PING\r\n无效命令,这将引发错误,从而导致 UP 检查失败。

答案2

另外,请确保在 tcp-check 发送后转义空格,例如:

tcp-check send info\ replication\r\n

答案3

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

tcp-check send AUTH\ xxx_xxx\r\n

相关内容