2016-06-06 4 views
0

Я установил кластер из 6 узлов, используя Redis версии 3.0.501 (последний из MSOpenTech git repo) на трех отдельных машинах Windows.redis cluster различные машины

Все 6 redis.conf файлы:

port 638x 
cluster-enabled yes 
cluster-config-file nodes.conf 
cluster-node-timeout 5000 
appendonly yes 

Каждая машина работает 2 узла. Вот мое сокращенное nodes.conf (идентификаторы укорочены для удобства чтения):

2a63e8 192.168.1.23:6380 myself,master - 0 0 10 connected 5461-10922 
e1bfd8 192.168.1.29:6382 master - 0 1465205145106 16 connected 0-5460 
0c4942 192.168.1.29:6381 slave 2a63e8 0 1465205145544 10 connected 
a68197 192.168.1.22:6385 slave 05f029 0 1465205146966 13 connected 
05f029 192.168.1.22:6384 master - 0 1465205146231 13 connected 10923-16383 
604068 192.168.1.23:6383 slave e1bfd8 0 1465205145435 16 connected 
vars currentEpoch 16 lastVoteEpoch 16 

Здесь вы видите два узла, 6385 раб 6384, на 192.168.1.22. Если эта машина умирает, это не единственная точка отказа? Как я могу запретить одному из компьютеров иметь подчиненный узел, подключенный к мастеру на том же компьютере?

ответ

2

Настройте кластер вручную, чтобы настроить ведомый, который использует каждый мастер. Следуйте за tutorial с веб-сайта redis, чтобы узнать, как вручную создать кластер.

Я бы создал кластер с мастерами только с самого начала. В вашем случае, будет выглядеть примерно так:

./redis-trib.rb create 192.168.1.23:6380 192.168.1.29:6382 192.168.1.22:6384 

Тогда вы всегда можете добавить раба вручную к конкретному мастеру, чтобы гарантировать, что каждый подчиненный находится на другой машине, чем его хозяин. Adding a new node as a replica

./redis-trib.rb add-node --slave --master-id <master_id> 192.168.1.22:6385 192.168.1.23:6380 

Сейчас, насколько я знаю, есть ситуации, когда подчиненный может мигрировать к получить новый хозяин, и оба в конечном итоге на той же машине. Если вы установите cluster-migration-barrier в 1 в файле redis.conf, у вас может быть ситуация, когда у вас есть мастер M1 с подчиненными устройствами S1 & S2 на разных машинах. У вас также есть мастер M2 с подчиненным S3 на разных машинах. Если S3 умирает и M2 и подчиненный, выбранный для перехода на M2, находятся на одной машине, тогда нет возможности автоматически избежать единственной точки отказа.