Страницы

Поиск по вопросам

пятница, 27 декабря 2019 г.

Отказоустойчивость серверов

#mysql #сервер #nginx #redis


Суть проблемы в том, что если упадет сервер с приложением, то запросы пойдут на другой,
и такая же проблема с серверами mysql и redis.


Сервер:
Чтобы гарантировать отказоустойчивость сервера, достаточно купить 2 сервера и зарегистрировать
их на один домен ?
БД(Mysql):
Сделать 2 мастера, чтобы они ссылались друг на друга и в случае если один упадет,
то все запросы перейдут на другой ? И как сделать чтобы приложение само знало на какой
сервер mysql/redis посылать запросы, такой же трюк как с сервером сделать  ?


Подскажите как можно решить эту проблему ?

Схема:


    


Ответы

Ответ 1



В вашем случае, надо реализовать балансировщик нагрузки на базе NGINX (модуль ngx_http_upstream_module). Он будет принимать запросы для указанного домена и перенаправлять их на свободный или менее загруженный бакенд (сервер приложений). Для баз данных надо настроить Master и Slave сервер и сделать между ними репликацию.

Ответ 2



Для обеспечения отказоустойчивости можно также создать linux кластер на основе pacemaker из двух или больше нод (серверов), создать сервисный IP с именем, который будет подниматься на одном из узлов кластера. Приложения подключать к базам по этому сервисному имени. Все узлы должны располагаться в идеале в разных ЦОД, иначе отказоустойчивости не будет.

Комментариев нет:

Отправить комментарий