Задать вопрос
Lomoson
@Lomoson

Авторизация при горизонтальном масштабировании. Как адекватно реализовать?

Подскажите, пожалуйста, как реализовать авторизацию и происходит работа с пользователями при горизонтальном масштабировании? Где можно прочитать про это все?

У меня получается, что нужно делать несколько коннектов к базам при одной загрузке страницы (как-то это не гуд) и дубли в таблицах юзеров

______________

Если в основной базе будет храниться общая таблица с пользователями и в каждой компании будет своя база с такой же таблицей пользователей и это адекватный вариант, то как работать дальше знаю
  • Вопрос задан
  • 552 просмотра
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 2
He11ion
@He11ion
PHP-monkey
Это не горизонтальное масштабирование, если вы соединяетесь со всеми базами. Самый простой вариант - Вы должны по данным пользователя (id, логину, ip ...) определить нужную Вам БД и соединяться только с ней. Для этого используется(пишется) балансировщик соединений.
Ответ написан
voidnugget
@voidnugget
Программист-прагматик
Можно почитать/посмотреть записи с различных конференций, посмотреть как шардят большие конторы.
1. Аутентификация != Авторизация
2. Нужно понимать что при горизонтальном масштабировании сервер не должен хранить состояний - обычно люди хранят данные сессии в просоленной куке, а не в базе.
3. Распределять нагрузку нужно в зависимости от текущей, соответственно должен производится мониторинг, и запросы должны отправляться на наименее нагруженный сервер
4. В куке сессии должен записываться IP cервера который обрабатывает запросы от текущего пользователя, а DNS в свою очередь должен отдавать адрес сервера который работает с данной сессией. Таким образом с одним пользователем может работать только один сервер, и между ними не нужно гонять никаких редиректов, но на первое время можно просто редиректить.
5. В случае с push-нотификациями, и кэшированием там вообще всё очень сложно и нужно крутить CQRS-ES, иногда нужно решать задачу консенсуса Raft'ом.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽