2017-10-09 98 views
0

我創建了一個Redis羣集作爲波紋管。Redis羣集 - 從站不FAILOVER

xxx.xxx.xxx.195:9100 xxx.xxx.xxx.196:9100 xxx.xxx.xxx.197:9100 
xxx.xxx.xxx.195:9200 xxx.xxx.xxx.196:9200 xxx.xxx.xxx.197:9200 

我已經經歷集羣失敗且無法修復的時候我停止2個Redis的實例,其是集羣的主站(xxx.xxx.xxx.196的2個實例)在同一時間,

xxx.xxx.xxx.195:9100 (Master) xxx.xxx.xxx.196:9100 (Master) xxx.xxx.xxx.197:9100 (Slave) 
xxx.xxx.xxx.195:9200 (Slave)  xxx.xxx.xxx.196:9200 (Master) xxx.xxx.xxx.197:9200 (Slave) 

但同時如果我停止.195服務器的兩個實例,其中9100 -Master9200 - Slave。集羣恢復並正常工作

羣集配置文件:

protected-mode no 
activerehashing yes 
cluster-enabled yes 
cluster-config-file /opt/redis/conf/nodes9100.conf 
cluster-slave-validity-factor 0 
cluster-node-timeout 5000 
appendonly yes 

Redis的記錄在專用從屬服務器:

28939:S 09 Oct 16:08:32.834 - 0 clients connected (0 slaves), 1327200 bytes in use 
28939:S 09 Oct 16:08:32.834 * Connecting to MASTER xxx.xxx.xxx.196:9200 
28939:S 09 Oct 16:08:32.835 * MASTER <-> SLAVE sync started 
28939:S 09 Oct 16:08:32.835 # Error condition on socket for SYNC: Connection refused 
28939:S 09 Oct 16:08:33.837 * Connecting to MASTER xxx.xxx.xxx.196:9200 
28939:S 09 Oct 16:08:33.837 * MASTER <-> SLAVE sync started 
28939:S 09 Oct 16:08:33.837 # Error condition on socket for SYNC: Connection refused 
28939:S 09 Oct 16:08:34.839 * Connecting to MASTER xxx.xxx.xxx.196:9200 
28939:S 09 Oct 16:08:34.839 * MASTER <-> SLAVE sync started 
28939:S 09 Oct 16:08:34.839 # Error condition on socket for SYNC: Connection refused 
28939:S 09 Oct 16:08:35.840 * Connecting to MASTER xxx.xxx.xxx.196:9200 
28939:S 09 Oct 16:08:35.840 * MASTER <-> SLAVE sync started 
28939:S 09 Oct 16:08:35.840 # Error condition on socket for SYNC: Connection refused 
28939:S 09 Oct 16:08:36.744 - Node 982d9b0a50b393d5fe604caefc0acaae68547648 reported node b57d59fb5685daeaac7e249d99fa257e9be66f4f as not reachable. 
28939:S 09 Oct 16:08:36.844 * Connecting to MASTER xxx.xxx.xxx.196:9200 
28939:S 09 Oct 16:08:36.844 * MASTER <-> SLAVE sync started 
28939:S 09 Oct 16:08:36.844 # Error condition on socket for SYNC: Connection refused 

回答

0

發現問題:
源:https://redis.io/topics/cluster-tutorial Redis的集羣也提供了一定程度的的可用性,即在實際情況下能夠在某些節點發生故障或無法通信時繼續運行。但是,如果發生較大故障,集羣將停止運行(例如,當大部分主站不可用時)。