#redis #message-queue #p2p #high-availability #redundancy
#redis #очередь сообщений #p2p #высокая доступность #избыточность
Вопрос:
У меня есть приложение с сотнями горизонтально масштабируемых серверов, которое использует redis pub / sub, и оно работает просто отлично.
Сервер redis является центральной точкой отказа. Всякий раз, когда redis выходит из строя (ну, это случается иногда), наше приложение переходит в несогласованное состояние и должно следовать процессу восстановления, который требует времени. В течение этого времени все приложение вряд ли полезно.
Существует ли какая-либо опция системы / платформы обмена сообщениями, аналогичная redis pub / sub, но с избыточностью и высокой доступностью, чтобы в случае сбоя одного экземпляра другой продолжал доставлять сообщения, которыми обмениваются хосты приложений?
Или, лучше, существует ли какая-либо распределенная система обмена сообщениями, в которой экземпляры приложений обмениваются сообщениями одноранговым способом, чтобы не было единой точки отказа?
Комментарии:
1. Как насчет настройки кластера Redis с помощью sentinel?
2. Выглядит интересно, является ли коммутатор узла в sentinel полностью прозрачным или произойдет некоторое время простоя, если мастер отключится? В любом случае это то, что мы скоро попробуем.
3. Переключатель узла прозрачен, но ваше приложение должно иметь логику для отключения и подключения к новому узлу.