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