Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Вопросы по собеседованиям java-programmer: / 25 сообщений из 36, страница 1 из 2
07.11.2015, 00:42
    #39097110
Dr.Hofmann
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы по собеседованиям java-programmer:
Всем привет!
С недавнего времени начал проходить интервью.собеседования по данной позиции.
К сожалению не удается отвечать на большинство вопросов. Поэтому с целью более глубокого ознакомления с темой решил постить некоторые вопросы сюда чтоб быть в курсе.
Вот один из них.
Связан со спрингом в java EE.
Не схеме у нас есть load balancer и две ноды с сервером приложений.
Есть проблема авторизации/аутентификации после ее выполнения вводиться логин.пароль и возвращается токен. Дальше запрос должен отправляться с этим токеном но тк как у нас load balancer второй запрос может идти на node2.
1. Как организовать синхронизацию таким образом чтоб node1 и node2 знали о том что пользователь уже авторизирован и имеет токен?
2. Чтоб logout также происходил синхронизированно?
...
Рейтинг: 0 / 0
07.11.2015, 10:55
    #39097165
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы по собеседованиям java-programmer:
Во прос к 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
07.11.2015, 12:07
    #39097179
no56892
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы по собеседованиям java-programmer:
А хранить токен в БД не рассматривается даже?о каком токене речь вообще?
...
Рейтинг: 0 / 0
07.11.2015, 13:18
    #39097209
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы по собеседованиям java-programmer:
no56892А хранить токен в БД не рассматривается даже?о каком токене речь вообще?
jsessionid или любой другой. Если БД одна на две ноды, то fail over будет слабеньким.
...
Рейтинг: 0 / 0
07.11.2015, 14:33
    #39097234
no56892
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы по собеседованиям java-programmer:
Blazkowicz,
Почему? Ну и плюс кластер из БД её средствам соответственно.
...
Рейтинг: 0 / 0
07.11.2015, 16:07
    #39097272
Partisan M
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы по собеседованиям java-programmer:
Dr.HoffmannНе схеме у нас есть load balancer и две ноды с сервером приложений.
Есть проблема авторизации/аутентификации после ее выполнения вводиться логин.пароль и возвращается токен.

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

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

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

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

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

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

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

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

Если простой sticky session - то юзер получит 503, и после рефреша разлогинится.
...
Рейтинг: 0 / 0
11.11.2015, 17:55
    #39101043
Atum1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы по собеседованиям java-programmer:
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
12.11.2015, 09:19
    #39101413
Atum1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы по собеседованиям java-programmer:
Лучше попробуйте ответить на эти вопросы :

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

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


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