powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Вопросы по собеседованиям java-programmer:
25 сообщений из 36, страница 1 из 2
Вопросы по собеседованиям java-programmer:
    #39097110
Фотография Dr.Hofmann
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!
С недавнего времени начал проходить интервью.собеседования по данной позиции.
К сожалению не удается отвечать на большинство вопросов. Поэтому с целью более глубокого ознакомления с темой решил постить некоторые вопросы сюда чтоб быть в курсе.
Вот один из них.
Связан со спрингом в java EE.
Не схеме у нас есть load balancer и две ноды с сервером приложений.
Есть проблема авторизации/аутентификации после ее выполнения вводиться логин.пароль и возвращается токен. Дальше запрос должен отправляться с этим токеном но тк как у нас load balancer второй запрос может идти на node2.
1. Как организовать синхронизацию таким образом чтоб node1 и node2 знали о том что пользователь уже авторизирован и имеет токен?
2. Чтоб logout также происходил синхронизированно?
...
Рейтинг: 0 / 0
Вопросы по собеседованиям java-programmer:
    #39097165
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во прос к Java отношения не имеет, как и к Spring/JEE. Это общая тема архитектуры кластеризации.
То что вы спрашиваете называется репликация сессии. Все данные сессии реплицируются на другой сервер. В результате на обоих серверах есть вся информация для всех активных клиентов. При переключении на другой сервер, там обнаруживается та же сессия, которая может обслуживать токет пользователя.

На самом деле такая схема даёт дополнительную нагрузку на сеть, для постоянно репликации сессии. Поэтому при такой схеме, обычно стремятся минимизировать данные в серверной сессии и перенести их на клиента. Вопрос про logout не понятен. logout убивает сессию на одном сервере и репликация сессии убивает её на другом. В чем тут вопрос?

Зачастую абсолютно прозрачный fail over не нужен. Поэтому вместо репликации можно использовать sticky session на load balancer-е. Пользователь всегда отправляется на один и тот же сервер. Сессийные данные максимально переносятся на клиента.
В результате при падении сервера, достаточно заново залогинится.

Всё становится на много интереснее если нод больше двух. Правильная схема очень сильно зависит от требований и от того какую именно проблему мы решаем. Для 24x7 одно решение, для максимального распределения нагрузки - другое.

В вопросах кластеризации в своё время мне вот эта статья хорошо прояснила большинство вопросов
http://www.theserverside.com/news/1364410/Under-the-Hood-of-J2EE-Clustering
...
Рейтинг: 0 / 0
Вопросы по собеседованиям java-programmer:
    #39097179
no56892
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А хранить токен в БД не рассматривается даже?о каком токене речь вообще?
...
Рейтинг: 0 / 0
Вопросы по собеседованиям java-programmer:
    #39097209
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
no56892А хранить токен в БД не рассматривается даже?о каком токене речь вообще?
jsessionid или любой другой. Если БД одна на две ноды, то fail over будет слабеньким.
...
Рейтинг: 0 / 0
Вопросы по собеседованиям java-programmer:
    #39097234
no56892
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,
Почему? Ну и плюс кластер из БД её средствам соответственно.
...
Рейтинг: 0 / 0
Вопросы по собеседованиям java-programmer:
    #39097272
Partisan M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dr.HoffmannНе схеме у нас есть load balancer и две ноды с сервером приложений.
Есть проблема авторизации/аутентификации после ее выполнения вводиться логин.пароль и возвращается токен.

Слов "нода" и "токен" не существует, но я приблизительно понял. Ваш вопрос имеет отдалённое отношение к Java и лучше изучать темы, имеющие близкое отношение, поскольку этот вопрос скорее всего больше не встретится.
Но наверно имелось ввиду, что раз модный сервер приложений WebLogic не имеет собственного балансировщика нагрузки, то к нему бывает нужен внешний аппаратный или программный. Программными являются Apache с дополнительным модулем mod_wl или Oracle HTTP Server (что почти тоже самое) с модулем mod_wl_ohs (что как легко догадаться, почти то же самое).
В обоих случаях можно настроить балансировку нагрузки (распределение пользователей по серверам) и/или отказоустойчивость. Описания использования этих модулей легко найти в интернете - статьи и инструкции по настройке. Отказоустойчивость обеспечивается только для HTTP-сессий (сеансов работы пользователя, но в порядке исключения употребил неправильное слово, чтобы было понятнее). Приложению может понадобиться ещё отказоустойчивость его сессии с базой данных. Но эта тема выходит за рамки вопроса.
...
Рейтинг: 0 / 0
Вопросы по собеседованиям java-programmer:
    #39097340
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Partisan MСлов "нода" и "токен" не существует, но я приблизительно понял.
Профессиональный жаргон
https://en.wikipedia.org/wiki/Computer_cluster
https://en.wikipedia.org/wiki/Security_token
...
Рейтинг: 0 / 0
Вопросы по собеседованиям java-programmer:
    #39097403
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может проще купить мощный сервер?
...
Рейтинг: 0 / 0
Вопросы по собеседованиям java-programmer:
    #39097622
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кластеризация решает несколько другие задачи, нежели "мощный сервер".
...
Рейтинг: 0 / 0
Вопросы по собеседованиям java-programmer:
    #39097626
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov, ну как сказать) Попробуйте угадать сколько серверов используется яндекс.такси? )
...
Рейтинг: 0 / 0
Вопросы по собеседованиям java-programmer:
    #39097628
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как количество серверов пофигу-какого-проекта связано с желательностью/необходимостью использовать кластеризацию?

P.S. На прошлой работе разработчик заявил, что не должно быть более сотни пользователей на одном прикладном сервере и мы сгородили многонодовый кластер на одном компьютере - спорить уже сил не было.
...
Рейтинг: 0 / 0
Вопросы по собеседованиям java-programmer:
    #39097629
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov, Вы же примерно представляете объемы яндекс.такси. Сколько думаете серверов надо? Хотя бы порядок.
...
Рейтинг: 0 / 0
Вопросы по собеседованиям java-programmer:
    #39097630
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я это к тому, что если на собеседовании спрашивают в каких случая вы используете ArrayList, а в каких LinkedList, а претендент отвечает, что использует всегда ArrayList. Это нормальный ответ или нет?)
...
Рейтинг: 0 / 0
Вопросы по собеседованиям java-programmer:
    #39097633
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я, как бы, разбирался с кластеризацией в одном частном случае и не вижу ни малейшей связи вашего ехидного вопроса с реальной жизнью.

P.S. Мне даже приходилось объяснять техподдержке всё той же компании разработчика, что "в данном конкретном случае кластеризация будет вредной".
...
Рейтинг: 0 / 0
Вопросы по собеседованиям java-programmer:
    #39097758
no56892
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdmЯ это к тому, что если на собеседовании спрашивают в каких случая вы используете ArrayList, а в каких LinkedList, а претендент отвечает, что использует всегда ArrayList. Это нормальный ответ или нет?)
Ага, а по факту в проекте собеседующих строки на == сравнивают, да и Vector там встретить - не редкость).
...
Рейтинг: 0 / 0
Вопросы по собеседованиям java-programmer:
    #39097797
Partisan M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A.SidorovP.S. На прошлой работе разработчик заявил, что не должно быть более сотни пользователей на одном прикладном сервере и мы сгородили многонодовый кластер на одном компьютере - спорить уже сил не было.

Чего спорить то, если обе стороны не понимают тему. Слова "нода" не существует. Раз они не знают, как это по-русски, значит смутно представляют то, о чём рассуждают. Но разработчик наверно имел ввиду, что Tomcat плохо работает при слишком большом числе одновременных пользователей. Ориентировочный предел - 100. Сам не проверял, но пользователям Tomcat-а надо следить. В таком случае балансировка нагрузки даже на одном физическом сервере между двумя Tomcat-ами может значительно повысить предел, может быть до 1000. Этот рецепт применялся, когда был 32-битный Tomcat. Не знаю, насколько сейчас поменялись эти оценки.

rdm
Может проще купить мощный сервер?

Обсуждается не эксплуатация, а проектирование приложение. Многопользовательское приложение желательно проектировать так, чтобы оно допускало горизонтальное масштабирование, то есть не заменой оборудования, а добавлением его. При этом не исключается и замена, но надо создать возможность горизонтального масштабирования.
Что касается кластеров Яндекса, то пофигу, что и как они делают. Лучше всего они умеют тягать деньги ни за что. Но вот в Google подсчитали, что им в их центрах обработки данных выгоднее иметь много слабых дешёвых серверов, чем мало мощных дорогих. Надо самостоятельно проводить такое разбирательство для себя.
...
Рейтинг: 0 / 0
Вопросы по собеседованиям java-programmer:
    #39097848
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уверен, что изначальный вопрос был про sticky session
...
Рейтинг: 0 / 0
Вопросы по собеседованиям java-programmer:
    #39097849
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня единственное есть непонимание, что будет если та нода, на которую стучится юзер помрет
...
Рейтинг: 0 / 0
Вопросы по собеседованиям java-programmer:
    #39097863
yelena
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
questioner, вопрос был не про sticky session.

Сама картинка похожа на вопрос про репликацию сессий. Про репликацию Blazkowicz уже ответил.

А вообще токен может выдаваться, валидироваться и инвалидироваться централизованно. Тогда будет синхронизация.
...
Рейтинг: 0 / 0
Вопросы по собеседованиям java-programmer:
    #39097960
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerУ меня единственное есть непонимание, что будет если та нода, на которую стучится юзер помрет
Балансер перенаправит юзера на другой сервер, где, благодаря репликации, доступные все данные сессии пользователя. Юзер продолжит работу с сервисом. Но это в теории. На практике второй сервер от резко возросшей загрузки начинает жутко лагать. :)
...
Рейтинг: 0 / 0
Вопросы по собеседованиям java-programmer:
    #39099053
Фотография Dr.Hofmann
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[Blazkowicz ]В вопросах кластеризации в своё время мне вот эта статья хорошо прояснила большинство вопросов
http://www.theserverside.com/news/1364410/Under-the-Hood-of-J2EE-Clustering [/quote]
Да спасибо - очень познавательная статья - и есть о чем подумать.
...
Рейтинг: 0 / 0
Вопросы по собеседованиям java-programmer:
    #39099933
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Partisan MНо разработчик наверно имел ввиду, что Tomcat плохо работает при слишком большом числе одновременных пользователей"Давайте вы не будете говорить, что я должен делать и я не стану объяснять куда вам надо идти".Ориентировочный предел - 100. Сам не проверял, но пользователям Tomcat-а надо следить.А я проверял, поэтому не стараюсь нести бред в массы.
...
Рейтинг: 0 / 0
Вопросы по собеседованиям java-programmer:
    #39099938
scf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerУ меня единственное есть непонимание, что будет если та нода, на которую стучится юзер помрет

Если простой sticky session - то юзер получит 503, и после рефреша разлогинится.
...
Рейтинг: 0 / 0
Вопросы по собеседованиям java-programmer:
    #39101043
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dr.HofmannВсем привет!
С недавнего времени начал проходить интервью.собеседования по данной позиции.
К сожалению не удается отвечать на большинство вопросов. Поэтому с целью более глубокого ознакомления с темой решил постить некоторые вопросы сюда чтоб быть в курсе.
Вот один из них.
Связан со спрингом в java EE.
Не схеме у нас есть load balancer и две ноды с сервером приложений.
Есть проблема авторизации/аутентификации после ее выполнения вводиться логин.пароль и возвращается токен. Дальше запрос должен отправляться с этим токеном но тк как у нас load balancer второй запрос может идти на node2.
1. Как организовать синхронизацию таким образом чтоб node1 и node2 знали о том что пользователь уже авторизирован и имеет токен?
2. Чтоб logout также происходил синхронизированно?


Бегите из этой конторы .... это не вопрос на собеседовании .

задавайте лучше задачки и вопросы тут

http://www.sql.ru/forum/1059153-16/zadachka-dlya-sobesedovaniya-arraylist-vs-linkedlist
...
Рейтинг: 0 / 0
Вопросы по собеседованиям java-programmer:
    #39101413
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лучше попробуйте ответить на эти вопросы :

http://javarevisited.blogspot.ru/2015/11/5-free-ocajpcpjp8-mock-exams-and-practice-questions.html

больше пользы
...
Рейтинг: 0 / 0
25 сообщений из 36, страница 1 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Вопросы по собеседованиям java-programmer:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]