我编写了一个监视程序来监视我的redis sentinel ha集群的运行状况,它标记缺少一个从节点10.10.10.30。经过一些调试后,结果是sdown状态为true的从属服务器被过滤掉了。
我的系统由三个节点组成,一个主节点,两个从节点。每个节点上都部署了哨兵。
在主机上,如果我登录到redis cli,将报告以下内容:
127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:2
slave0:ip=10.10.10.8,port=6379,state=online,offset=1409435252945,lag=1
slave1:ip=10.10.10.30,port=6379,state=online,offset=1409436519147,lag=1
master_repl_offset:1409439031250
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1409437982675
repl_backlog_histlen:1048576
我所有的redis服务器以及每台机器上的sentinel都已启动并运行。
如果我在任何一台机器上执行redis cli-p 26379并运行sentinel slaves mymaster。我得到一个与我配置和运行的从机数量相同的报告。但是,节点10.10.10.30报告如下:
2) 1) "name"
2) "10.10.10.30:6379"
3) "ip"
4) "10.10.10.30"
5) "port"
6) "6379"
7) "runid"
8) ""
9) "flags"
10) "s_down,slave,disconnected"
11) "pending-commands"
12) "0"
13) "last-ping-sent"
14) "936737"
15) "last-ok-ping-reply"
16) "936737"
17) "last-ping-reply"
18) "936737"
19) "s-down-time"
20) "931725"
21) "down-after-milliseconds"
22) "5000"
23) "info-refresh"
24) "1589412820130"
25) "role-reported"
26) "slave"
27) "role-reported-time"
28) "936737"
29) "master-link-down-time"
30) "0"
31) "master-link-status"
32) "err"
33) "master-host"
34) "?"
35) "master-port"
36) "0"
37) "slave-priority"
38) "100"
39) "slave-repl-offset"
40) "0"
我不明白如何让节点脱离sdown状态。所有redis机器和sentinel部署都分别使用端口6379和26379,并且可以访问该端口。
1条答案
按热度按时间toe950271#
我将redis.conf和sentinel.conf与没有问题的从属服务器进行了比较。不同的是绑定地址。我将它从127.0.0.1改为bind 0.0.0.0并重新启动了redis。斯敦州消失了。