У нас есть настройка с несколькими серверами redis (2.8) (скажем, 4) и столько же redis часовых. При запуске каждой машины мы устанавливаем машину предварительного выбора как master через командную строку, а все остальные - в качестве подчиненных. и часовые все контролируют эти машины. Сначала клиенты подключаются к локальному дозорному устройству и извлекают IP-адрес ведущего, а затем подключаются к нему.redis sentinel не синхронизирован с серверами в кластере
Эта настройка работает без проблем большую часть времени, но иногда часовые отключаются от синхронизации с серверами. если я назову машины A, B, C и D - часовые будут считать, что B является мастером, а серверы redis все подключены к A в качестве ведущего. сведение сервера redis на B не помогает. Я должен был снести его и вручную «Sentinel failover» на A, чтобы исправить проблему. Вопрос: 1. Что заставляет это случиться и как проще всего это исправить? 2. Какая оптимальная конфигурация - есть ли что-то лучше этого?
Спасибо! так что в основном проблема заключается в том, что часовые будут пытаться начать с известной конфигурации, о которой они согласны, пока серверы говорят через командную строку, что они находятся в другой конкретной конфигурации? Проблема в том, что мы каждые четыре дня перезапускаем четыре машины. Я хочу, чтобы мы перезапустили с новой конфигурацией после этого перезапуска. Избавьтесь от помощи в файле конфигурации? Или я должен просто оставить часовых продолжать? –
Я бы порекомендовал, давая часовому сделать его тонкий, и удалите биты, рассказывающие серверам, кто хозяин. Перезапуск не является проблемой, и переключение мастеров может привести к потере данных (если подчиненный позади и вы делаете его мастером, например) и вышеупомянутые проблемы. Независимо от того, какой узел был мастером, прежде чем перезагрузка будет иметь самые последние данные, вы все равно захотите ее выбрать. С этим дозорным вам не нужно беспокоиться об этом. Кроме того, конфигурации в локальных экземплярах redis все равно будут иметь информацию в любом случае. –