Взаимодействие главного ведомого в Redis

У меня есть мастер и слейв, настроенные на разных серверах. Когда хозяин не работает, мой ведомый становится хозяином, и все работает как есть. НО, когда мастер восстановлен, я не могу получить какие-либо ключи от текущего мастера (который сначала был ведомым).

Любая помощь? Спасибо


person canpoint    schedule 13.01.2014    source источник


Ответы (1)


Что, вероятно, происходит, так это то, что мастер восстанавливается без перезагрузки данных должным образом, а ведомый синхронизируется со своим мастером, сбрасывая все свои данные.

Лучшей практикой было бы:

  1. если ведущий не работает, рассматривайте подчиненный как узел только для чтения, не добавляя к нему никаких данных. и убедитесь, что мастер правильно восстанавливает все данные. Это будет означать отсутствие несоответствий, вызванных временем простоя. Это, конечно, только в том случае, если вы можете позволить себе операцию только для чтения.

  2. Или - когда вы переключаетесь на ведомое устройство, относитесь к нему как к новому главному, а когда старый мастер возвращается, он ДОЛЖЕН стать ведомым и не брать на себя свою прежнюю роль. Redis Sentinel делает это автоматически.

person Not_a_Golfer    schedule 14.01.2014
comment
Первый способ может быть решением, но с потерей данных до тех пор, пока мастер не скроет, а со вторым способом, когда он включен и обрабатывается как подчиненный, часовой не синхронизировал его или я сделал что-то неправильно. - person canpoint; 16.01.2014
comment
стоп, это с часовым? Вы можете опубликовать, что происходит в журнале дозорного? - person Not_a_Golfer; 16.01.2014