为什么 haproxy 显示 2 个 redis 节点关闭,即使这些节点是连接到 redis 主节点的 redis 从节点?
Why haproxy shows 2 redis nodes down even when those are the to redis slave nodes connected to redis master node?
redis-a 是主站,其他 2 个是连接到主站的从站那么为什么 haproxy 显示它们已关闭
这就是我在 haproxy 配置中的设置方式。
defaults REDIS
mode tcp
timeout connect 4s
timeout server 30s
timeout client 30s
frontend front_redis
bind *:3679 name redis
default_backend back_redis
backend back_redis
option tcp-check
tcp-check connect
tcp-check send AUTH\ redis123\r\n
tcp-check expect string +OK
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 redis-a 192.168.0.15:6379 check inter 1s
server redis-b 192.168.0.14:6379 check inter 1s
server redis-c 192.168.0.16:6379 check inter 1s
# Redis Block end
这里是通过 haproxy 的 redis cli 的结果。
3679> info Replication
# Replication
role:master
connected_slaves:2
slave0:ip=192.168.5.16,port=6379,state=online,offset=1358919,lag=1
slave1:ip=192.168.5.14,port=6379,state=online,offset=1358919,lag=1
master_replid:5a096bcddd97e297wdww236ae9e6dd3f8df9f7
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:1359061
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:310486
repl_backlog_histlen:1048576
3679 是 haproxy 端口
我的redis版本是6.0.9.
两个服务器 192.168.0.14 和 192.168.0.16 是 sentinel slaves 不会有 role:master
这是你的 haproxy 检查。所以你需要检查奴隶单独检查。
应该这样做。
redis-a 是主站,其他 2 个是连接到主站的从站那么为什么 haproxy 显示它们已关闭
defaults REDIS
mode tcp
timeout connect 4s
timeout server 30s
timeout client 30s
frontend front_redis
bind *:3679 name redis
default_backend back_redis
backend back_redis
option tcp-check
tcp-check connect
tcp-check send AUTH\ redis123\r\n
tcp-check expect string +OK
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 redis-a 192.168.0.15:6379 check inter 1s
server redis-b 192.168.0.14:6379 check inter 1s
server redis-c 192.168.0.16:6379 check inter 1s
# Redis Block end
这里是通过 haproxy 的 redis cli 的结果。
3679> info Replication
# Replication
role:master
connected_slaves:2
slave0:ip=192.168.5.16,port=6379,state=online,offset=1358919,lag=1
slave1:ip=192.168.5.14,port=6379,state=online,offset=1358919,lag=1
master_replid:5a096bcddd97e297wdww236ae9e6dd3f8df9f7
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:1359061
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:310486
repl_backlog_histlen:1048576
3679 是 haproxy 端口
我的redis版本是6.0.9.
两个服务器 192.168.0.14 和 192.168.0.16 是 sentinel slaves 不会有 role:master
这是你的 haproxy 检查。所以你需要检查奴隶单独检查。
应该这样做。