Занимаюсь одним стартапом в котором применяем редис, сейчас вплотную стал вопрос о построении отказоустойчивого кластера БД.
Как известно, редис пока поддерживает только master-slave репликацию. Необходимо, чтобы при падении мастера какой-нибудь из слэйвов взял бы функцию мастера. Для этой цели нашел следующее решение:
github.com/fictorial/redis-cluster-monitor. При падении мастера, данная мониторилка выбирает нового мастера и посылает сигнал синхронизации с ним остальным серверам. Задача — уведомить фронтэнды о том, что мастер-сервер сменился. Собираюсь дописать мониторилку, чтобы она еще и слала уведомления и фронтэндам. Адрес мастер-сервера, вероятно будет храниться локально в файле.
На сколько правилен подобный подход? У кого был опыт постоения подобных систем, как обычно поступают, какие подводные камни?