#mysql #сервер #nginx #redis
Суть проблемы в том, что если упадет сервер с приложением, то запросы пойдут на другой,
и такая же проблема с серверами mysql и redis.
Сервер:
Чтобы гарантировать отказоустойчивость сервера, достаточно купить 2 сервера и зарегистрировать
их на один домен ?
БД(Mysql):
Сделать 2 мастера, чтобы они ссылались друг на друга и в случае если один упадет,
то все запросы перейдут на другой ? И как сделать чтобы приложение само знало на какой
сервер mysql/redis посылать запросы, такой же трюк как с сервером сделать ?
Подскажите как можно решить эту проблему ?
Схема:
Ответы
Ответ 1
В вашем случае, надо реализовать балансировщик нагрузки на базе NGINX (модуль ngx_http_upstream_module). Он будет принимать запросы для указанного домена и перенаправлять их на свободный или менее загруженный бакенд (сервер приложений). Для баз данных надо настроить Master и Slave сервер и сделать между ними репликацию.Ответ 2
Для обеспечения отказоустойчивости можно также создать linux кластер на основе pacemaker из двух или больше нод (серверов), создать сервисный IP с именем, который будет подниматься на одном из узлов кластера. Приложения подключать к базам по этому сервисному имени. Все узлы должны располагаться в идеале в разных ЦОД, иначе отказоустойчивости не будет.
Комментариев нет:
Отправить комментарий