|
|
|
Вопросы по собеседованиям java-programmer:
|
|||
|---|---|---|---|
|
#18+
Всем привет! С недавнего времени начал проходить интервью.собеседования по данной позиции. К сожалению не удается отвечать на большинство вопросов. Поэтому с целью более глубокого ознакомления с темой решил постить некоторые вопросы сюда чтоб быть в курсе. Вот один из них. Связан со спрингом в java EE. Не схеме у нас есть load balancer и две ноды с сервером приложений. Есть проблема авторизации/аутентификации после ее выполнения вводиться логин.пароль и возвращается токен. Дальше запрос должен отправляться с этим токеном но тк как у нас load balancer второй запрос может идти на node2. 1. Как организовать синхронизацию таким образом чтоб node1 и node2 знали о том что пользователь уже авторизирован и имеет токен? 2. Чтоб logout также происходил синхронизированно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2015, 00:42 |
|
||
|
Вопросы по собеседованиям java-programmer:
|
|||
|---|---|---|---|
|
#18+
Во прос к Java отношения не имеет, как и к Spring/JEE. Это общая тема архитектуры кластеризации. То что вы спрашиваете называется репликация сессии. Все данные сессии реплицируются на другой сервер. В результате на обоих серверах есть вся информация для всех активных клиентов. При переключении на другой сервер, там обнаруживается та же сессия, которая может обслуживать токет пользователя. На самом деле такая схема даёт дополнительную нагрузку на сеть, для постоянно репликации сессии. Поэтому при такой схеме, обычно стремятся минимизировать данные в серверной сессии и перенести их на клиента. Вопрос про logout не понятен. logout убивает сессию на одном сервере и репликация сессии убивает её на другом. В чем тут вопрос? Зачастую абсолютно прозрачный fail over не нужен. Поэтому вместо репликации можно использовать sticky session на load balancer-е. Пользователь всегда отправляется на один и тот же сервер. Сессийные данные максимально переносятся на клиента. В результате при падении сервера, достаточно заново залогинится. Всё становится на много интереснее если нод больше двух. Правильная схема очень сильно зависит от требований и от того какую именно проблему мы решаем. Для 24x7 одно решение, для максимального распределения нагрузки - другое. В вопросах кластеризации в своё время мне вот эта статья хорошо прояснила большинство вопросов http://www.theserverside.com/news/1364410/Under-the-Hood-of-J2EE-Clustering ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2015, 10:55 |
|
||
|
Вопросы по собеседованиям java-programmer:
|
|||
|---|---|---|---|
|
#18+
А хранить токен в БД не рассматривается даже?о каком токене речь вообще? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2015, 12:07 |
|
||
|
Вопросы по собеседованиям java-programmer:
|
|||
|---|---|---|---|
|
#18+
no56892А хранить токен в БД не рассматривается даже?о каком токене речь вообще? jsessionid или любой другой. Если БД одна на две ноды, то fail over будет слабеньким. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2015, 13:18 |
|
||
|
Вопросы по собеседованиям java-programmer:
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Почему? Ну и плюс кластер из БД её средствам соответственно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2015, 14:33 |
|
||
|
Вопросы по собеседованиям java-programmer:
|
|||
|---|---|---|---|
|
#18+
Dr.HoffmannНе схеме у нас есть load balancer и две ноды с сервером приложений. Есть проблема авторизации/аутентификации после ее выполнения вводиться логин.пароль и возвращается токен. Слов "нода" и "токен" не существует, но я приблизительно понял. Ваш вопрос имеет отдалённое отношение к Java и лучше изучать темы, имеющие близкое отношение, поскольку этот вопрос скорее всего больше не встретится. Но наверно имелось ввиду, что раз модный сервер приложений WebLogic не имеет собственного балансировщика нагрузки, то к нему бывает нужен внешний аппаратный или программный. Программными являются Apache с дополнительным модулем mod_wl или Oracle HTTP Server (что почти тоже самое) с модулем mod_wl_ohs (что как легко догадаться, почти то же самое). В обоих случаях можно настроить балансировку нагрузки (распределение пользователей по серверам) и/или отказоустойчивость. Описания использования этих модулей легко найти в интернете - статьи и инструкции по настройке. Отказоустойчивость обеспечивается только для HTTP-сессий (сеансов работы пользователя, но в порядке исключения употребил неправильное слово, чтобы было понятнее). Приложению может понадобиться ещё отказоустойчивость его сессии с базой данных. Но эта тема выходит за рамки вопроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2015, 16:07 |
|
||
|
Вопросы по собеседованиям java-programmer:
|
|||
|---|---|---|---|
|
#18+
Partisan MСлов "нода" и "токен" не существует, но я приблизительно понял. Профессиональный жаргон https://en.wikipedia.org/wiki/Computer_cluster https://en.wikipedia.org/wiki/Security_token ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2015, 19:41 |
|
||
|
Вопросы по собеседованиям java-programmer:
|
|||
|---|---|---|---|
|
#18+
Может проще купить мощный сервер? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2015, 22:16 |
|
||
|
Вопросы по собеседованиям java-programmer:
|
|||
|---|---|---|---|
|
#18+
Кластеризация решает несколько другие задачи, нежели "мощный сервер". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2015, 15:34 |
|
||
|
Вопросы по собеседованиям java-programmer:
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov, ну как сказать) Попробуйте угадать сколько серверов используется яндекс.такси? ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2015, 15:43 |
|
||
|
Вопросы по собеседованиям java-programmer:
|
|||
|---|---|---|---|
|
#18+
Как количество серверов пофигу-какого-проекта связано с желательностью/необходимостью использовать кластеризацию? P.S. На прошлой работе разработчик заявил, что не должно быть более сотни пользователей на одном прикладном сервере и мы сгородили многонодовый кластер на одном компьютере - спорить уже сил не было. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2015, 15:47 |
|
||
|
Вопросы по собеседованиям java-programmer:
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov, Вы же примерно представляете объемы яндекс.такси. Сколько думаете серверов надо? Хотя бы порядок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2015, 15:53 |
|
||
|
Вопросы по собеседованиям java-programmer:
|
|||
|---|---|---|---|
|
#18+
Я это к тому, что если на собеседовании спрашивают в каких случая вы используете ArrayList, а в каких LinkedList, а претендент отвечает, что использует всегда ArrayList. Это нормальный ответ или нет?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2015, 15:57 |
|
||
|
Вопросы по собеседованиям java-programmer:
|
|||
|---|---|---|---|
|
#18+
Я, как бы, разбирался с кластеризацией в одном частном случае и не вижу ни малейшей связи вашего ехидного вопроса с реальной жизнью. P.S. Мне даже приходилось объяснять техподдержке всё той же компании разработчика, что "в данном конкретном случае кластеризация будет вредной". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2015, 16:06 |
|
||
|
Вопросы по собеседованиям java-programmer:
|
|||
|---|---|---|---|
|
#18+
rdmЯ это к тому, что если на собеседовании спрашивают в каких случая вы используете ArrayList, а в каких LinkedList, а претендент отвечает, что использует всегда ArrayList. Это нормальный ответ или нет?) Ага, а по факту в проекте собеседующих строки на == сравнивают, да и Vector там встретить - не редкость). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2015, 20:33 |
|
||
|
Вопросы по собеседованиям java-programmer:
|
|||
|---|---|---|---|
|
#18+
Basil A.SidorovP.S. На прошлой работе разработчик заявил, что не должно быть более сотни пользователей на одном прикладном сервере и мы сгородили многонодовый кластер на одном компьютере - спорить уже сил не было. Чего спорить то, если обе стороны не понимают тему. Слова "нода" не существует. Раз они не знают, как это по-русски, значит смутно представляют то, о чём рассуждают. Но разработчик наверно имел ввиду, что Tomcat плохо работает при слишком большом числе одновременных пользователей. Ориентировочный предел - 100. Сам не проверял, но пользователям Tomcat-а надо следить. В таком случае балансировка нагрузки даже на одном физическом сервере между двумя Tomcat-ами может значительно повысить предел, может быть до 1000. Этот рецепт применялся, когда был 32-битный Tomcat. Не знаю, насколько сейчас поменялись эти оценки. rdm Может проще купить мощный сервер? Обсуждается не эксплуатация, а проектирование приложение. Многопользовательское приложение желательно проектировать так, чтобы оно допускало горизонтальное масштабирование, то есть не заменой оборудования, а добавлением его. При этом не исключается и замена, но надо создать возможность горизонтального масштабирования. Что касается кластеров Яндекса, то пофигу, что и как они делают. Лучше всего они умеют тягать деньги ни за что. Но вот в Google подсчитали, что им в их центрах обработки данных выгоднее иметь много слабых дешёвых серверов, чем мало мощных дорогих. Надо самостоятельно проводить такое разбирательство для себя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2015, 21:36 |
|
||
|
Вопросы по собеседованиям java-programmer:
|
|||
|---|---|---|---|
|
#18+
Уверен, что изначальный вопрос был про sticky session ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2015, 22:53 |
|
||
|
Вопросы по собеседованиям java-programmer:
|
|||
|---|---|---|---|
|
#18+
У меня единственное есть непонимание, что будет если та нода, на которую стучится юзер помрет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2015, 22:55 |
|
||
|
Вопросы по собеседованиям java-programmer:
|
|||
|---|---|---|---|
|
#18+
questioner, вопрос был не про sticky session. Сама картинка похожа на вопрос про репликацию сессий. Про репликацию Blazkowicz уже ответил. А вообще токен может выдаваться, валидироваться и инвалидироваться централизованно. Тогда будет синхронизация. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2015, 23:29 |
|
||
|
Вопросы по собеседованиям java-programmer:
|
|||
|---|---|---|---|
|
#18+
questionerУ меня единственное есть непонимание, что будет если та нода, на которую стучится юзер помрет Балансер перенаправит юзера на другой сервер, где, благодаря репликации, доступные все данные сессии пользователя. Юзер продолжит работу с сервисом. Но это в теории. На практике второй сервер от резко возросшей загрузки начинает жутко лагать. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2015, 09:05 |
|
||
|
Вопросы по собеседованиям java-programmer:
|
|||
|---|---|---|---|
|
#18+
[Blazkowicz ]В вопросах кластеризации в своё время мне вот эта статья хорошо прояснила большинство вопросов http://www.theserverside.com/news/1364410/Under-the-Hood-of-J2EE-Clustering [/quote] Да спасибо - очень познавательная статья - и есть о чем подумать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2015, 01:07 |
|
||
|
Вопросы по собеседованиям java-programmer:
|
|||
|---|---|---|---|
|
#18+
Partisan MНо разработчик наверно имел ввиду, что Tomcat плохо работает при слишком большом числе одновременных пользователей"Давайте вы не будете говорить, что я должен делать и я не стану объяснять куда вам надо идти".Ориентировочный предел - 100. Сам не проверял, но пользователям Tomcat-а надо следить.А я проверял, поэтому не стараюсь нести бред в массы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2015, 18:13 |
|
||
|
Вопросы по собеседованиям java-programmer:
|
|||
|---|---|---|---|
|
#18+
questionerУ меня единственное есть непонимание, что будет если та нода, на которую стучится юзер помрет Если простой sticky session - то юзер получит 503, и после рефреша разлогинится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2015, 18:17 |
|
||
|
Вопросы по собеседованиям java-programmer:
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2015, 17:55 |
|
||
|
Вопросы по собеседованиям java-programmer:
|
|||
|---|---|---|---|
|
#18+
Лучше попробуйте ответить на эти вопросы : http://javarevisited.blogspot.ru/2015/11/5-free-ocajpcpjp8-mock-exams-and-practice-questions.html больше пользы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2015, 09:19 |
|
||
|
|

start [/forum/search_topic.php?author=Backpay&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
170ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
| others: | 492ms |
| total: | 782ms |

| 0 / 0 |
