HAProxy for Redis Sentinel:想要备份,而不是宕机

HAProxy for Redis Sentinel:想要备份,而不是宕机

我为我的 Redis 集群安装(3 个节点,使用 Redis Sentinel 管理主委派)配置了 HAProxy 服务,并且它运行良好:客户端仅重定向到主节点,并且每当从属节点成为主节点时,HAProxy 就会突然将活动成员更改为后端。

只是为了细致起见,从属节点显示为“向下” (红色)进入 HAProxy 统计报告(第 7 层超时:在 tcp-check 的第 5 步(预期字符串‘role:master’))有没有办法让它们显示为“备份 UP” (蓝色),哪一个是正确的定义?

这是因为红色节点似乎有问题,但事实并非如此,因为从属成员处于 UP 状态,但它们只是从属成员,因此它们不活跃。我认为这是对 HAProxy 中“备份 UP”状态的正确定义。

这是 HAProxy 的配置:

frontend Redis
    bind            192.168.70.90:6379 name 192.168.70.90:6379   
    mode            tcp
    log         global
    timeout client      30000
    default_backend     Redis_tcp_ipvANY

backend Redis_tcp_ipvANY
    mode            tcp
    timeout connect     30000
    timeout server      30000
    retries         3
    option tcp-check
    tcp-check connect
    tcp-check send PING\r\n
    tcp-check expect string +PONG
    tcp-check send info\ replication\r\n
    tcp-check expect string role:master
    tcp-check send QUIT\r\n
    tcp-check expect string +OK
    server          redis1 192.168.70.91:6379 check inter 1000  maxconn 1024 
    server          redis2 192.168.70.92:6379 check inter 1000  maxconn 1024 
    server          redis3 192.168.70.93:6379 check inter 1000  maxconn 1024 

你知道怎样才能实现我想要做的事情吗?

谢谢!

答案1

这是可能的,但是由于你有两个以上的节点,无法正确故障转移。但既然你问了:

backend Redis_tcp_ipvANY
    mode            tcp
    timeout connect     30000
    timeout server      30000
    retries         3
    option tcp-check
    tcp-check connect
    tcp-check send PING\r\n
    tcp-check expect string +PONG
    tcp-check send QUIT\r\n
    tcp-check expect string +OK
    server          redis1 192.168.70.91:6379        inter 1000  maxconn 1024 check
    server          redis2 192.168.70.92:6379 backup inter 1000  maxconn 1024 check
    server          redis3 192.168.70.93:6379 backup inter 1000  maxconn 1024 check

haproxyBACKUP状态只是意味着只要有正常服务器,就不会考虑该服务器进行负载平衡UP。我认为您当前的设置更好。

相关内容