我为我的 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
。我认为您当前的设置更好。