클러스터 장애 조치 중에 소프트웨어 동작을 테스트하려고하는데, 가장 간단한 클러스터 (하나의 마스터와 2 개의 슬레이브)를 구성하려고합니다. 나는 나무 파일 7000.conf이 - 다음과 같은 내용의 7002.conf을 :Redis 클러스터 장애 조치 : 슬레이브가 마스터가되지 않습니다.
port 7000
cluster-config-file nodes.7000.conf
appendfilename appendonly.7000.aof
dbfilename dump.7000.rdb
pidfile /var/run/redis_7000.pid
include cluster.conf
cluster.conf를의 내용 : 나는 7000 것을 다음 구성한
cluster-enabled yes
appendonly yes
maxclients 100
daemonize yes
cluster-node-timeout 2000
cluster-slave-validity-factor 0
0에서 16383까지의 모든 슬롯을 실행하며, 7001과 7002는 7000의 복제본입니다.
XXX 127.0.0.1:7002 slave YYY 0 1511389011347 4 connected
YYY 127.0.0.1:7000 myself,master - 0 0 4 connected 0-16383
ZZZ 127.0.0.1:7001 slave YYY 0 1511389011246 4 connected
그런 다음 나는 shutdown
명령을 사용하거나 프로세스를 죽이는 방법을 통해 7000을 제거하려고합니다. 노예 중 하나는 주인에게 자신을 홍보해야하지만, 아무도하지 않습니다 :
ZZZ 127.0.0.1:7001 slave YYY 0 0 3 connected
YYY 127.0.0.1:7000 master,fail? - 1511389104442 1511389103933 4 disconnected 0-16383
XXX 127.0.0.1:7002 myself,slave YYY 0 1511389116543 4 connected
내가 좋아하는 분 동안 기다렸다, 나의 노예가 주인이 될 싶지 않다. 슬레이브가 cluster failover takeover
을 통해 마스터가되도록 강제하면 그렇게하는 것이 행복합니다 (마스터를 다시 시작하면 슬레이브가됩니다). 그러나 자동으로되지는 않습니다.
cluster-node-timeout
으로 게임을 시도했지만 도움이되지 않습니다.
내가 잘못 했나요? Redis 버전은 3.2.11입니다.