2016-05-31 1 views
0

J'ai la configuration suivante:groupe Redis ne supporte pas Fail simultanée de plusieurs nœuds maîtres

  • Redis_version: 3.2.0
  • 3 nœuds maître et 3 nœuds esclaves

Chaque Le noeud maître est répliqué sur un esclave Tout est correct. Lorsqu'un noeud maître échoue par une commande "kill", le noeud esclave correspondant devient le maître comme prévu. Après quelques secondes, cluster_state retourne à l'état OK. MAIS, si deux nœuds maîtres échouent simultanément, aucun des nœuds esclaves associés ne devient le maître. Le cluster_state reste dans l'état "fail".

cluster nodes command output. 
b60c284a515b31aa6b11022fc07cf1a399171e04 127.0.0.1:7000 master,fail? - 1464690455030 1464690454930 1 disconnected 0-5460 
637d1f074419963653b206c5ed7cbed4c3d0ace0 127.0.0.1:7001 master,fail? - 1464690455030 1464690454930 2 disconnected 5461-10922 
d2aae2a3d87c6407e002076740c8febf80f37865 127.0.0.1:7003 myself,slave b60c284a515b31aa6b11022fc07cf1a399171e04 0 0 4 connected 
72d4c9ce140fb57436c1b21702bf3c646ef29db3 127.0.0.1:7002 master - 0 1464690718480 3 connected 10923-16383 
af34a7b2241943baf23e634e81b552d8bf23cdd0 127.0.0.1:7005 slave 72d4c9ce140fb57436c1b21702bf3c646ef29db3 0 1464690718480 6 connected 
d0fec0609c9e786ac9ca4629f36cabd7c5c3130c 127.0.0.1:7004 slave 637d1f074419963653b206c5ed7cbed4c3d0ace0 0 1464690718480 5 connected 

Répondre

0

Le basculement automatique des esclaves ne se produira pas si au moins la moitié des maîtres sont déconnectés, car l'élection de basculement est nécessaire plus de la moitié des maîtres viennent en consensus.

Pour démarrer un basculement manuel, connectez-vous au nœud esclave avec redis-cli et envoyez une commande cluster failover TAKEOVER (le takeover est requis).

Dans votre cas

redis-cli -h 127.0.0.1 -p 7003 cluster failover takeover 

Après la :7003 devient un maître, l'autre esclave démarre un basculement automatique aussi bien car il y a plus de la moitié (2/3) des maîtres sont vivants.