|
|
|
Вопросы по собеседованиям 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 |
|
||
|
Вопросы по собеседованиям java-programmer:
|
|||
|---|---|---|---|
|
#18+
Atum1Бегите из этой конторы .... это не вопрос на собеседовании . А чем плох то? может для конторы это насущное? Правда хоть убей не вижу глобальной разницы с sso на разные сайты, но в случае кластера можно вопрос решить и "попроще" (JPA и какой-нибудь coherence cache практически True Enterprise Way) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2015, 11:05 |
|
||
|
Вопросы по собеседованиям java-programmer:
|
|||
|---|---|---|---|
|
#18+
Сергей АрсеньевAtum1Бегите из этой конторы .... это не вопрос на собеседовании . А чем плох то? может для конторы это насущное? Правда хоть убей не вижу глобальной разницы с sso на разные сайты, но в случае кластера можно вопрос решить и "попроще" (JPA и какой-нибудь coherence cache практически True Enterprise Way) 1)Это вопрос архитектуры для системного архитектора / 2)Это вопрос для администратора / 3)Где тут java ? программисты не должны знать как это все устроено ... ну или в общих чертах ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2015, 11:11 |
|
||
|
Вопросы по собеседованиям java-programmer:
|
|||
|---|---|---|---|
|
#18+
Atum11)Это вопрос архитектуры для системного архитектора / 2)Это вопрос для администратора / 3)Где тут java ? Гипотетически 1. Архитектуру они выбрали - JavaEE 2. Причем тут администратор - он блансер наладит, coherence проднимит 3. Вот в этом то и вопрос,им нужен программер который с этим может работать. Вот и ждут, когда придет тот, кто ответит, так как они наархитектурили. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2015, 11:34 |
|
||
|
Вопросы по собеседованиям java-programmer:
|
|||
|---|---|---|---|
|
#18+
Сегодня был еще на одном собеседовании и последовал схожий вопрос. Если рассматривать концепцию Scalability Availability Performance - то будет ли она соответствовать - сохранена - при падении одной ноды из двух в кластере и если нет то какие еще есть варианты по решению данной проблемы. По пути комрады можете на пальцах в двух словах рассказать как работает кластер в вашей организации интересует 24x7. Если у вас несколько кластеров на разных площадках в дата-центрах, как настроена репликация между ними и что происходит при падении подсети подчиненных нод кластера на одной площадке как происходит переключение итд??? Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2015, 00:44 |
|
||
|
Вопросы по собеседованиям java-programmer:
|
|||
|---|---|---|---|
|
#18+
Atum1, а в чём польза? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2015, 13:22 |
|
||
|
Вопросы по собеседованиям java-programmer:
|
|||
|---|---|---|---|
|
#18+
Dr.HofmannСегодня был еще на одном собеседовании и последовал схожий вопрос. Если рассматривать концепцию Scalability Availability Performance - то будет ли она соответствовать - сохранена - при падении одной ноды из двух в кластере и если нет то какие еще есть варианты по решению данной проблемы. По пути комрады можете на пальцах в двух словах рассказать как работает кластер в вашей организации интересует 24x7. Если у вас несколько кластеров на разных площадках в дата-центрах, как настроена репликация между ними и что происходит при падении подсети подчиненных нод кластера на одной площадке как происходит переключение итд??? Спасибо! Этим занимается : служба эксплуатации + системные админы (репликация , падения итд ) тем более где есть 24x7 - программистов в продакшен никто нигде не пустит , если контора серьезная и тем более не будут им звонить в 3 часа ночи с вопросами почему нас нода и репликация упала ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2015, 10:28 |
|
||
|
Вопросы по собеседованиям java-programmer:
|
|||
|---|---|---|---|
|
#18+
А вообще по всяким архитектурам и решениям нужно перечитать Фаулера или частично тут http://blog.byndyu.ru/2014/05/blog-post.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2015, 10:33 |
|
||
|
Вопросы по собеседованиям java-programmer:
|
|||
|---|---|---|---|
|
#18+
по поводу Performance, Scalability, & Availability Производительность, масштабируемость и доступность думаю достаточно пересказать эту презентацию http://www.oracle.com/us/solutions/ent-performance-bi/business-intelligence/system-management-monitoring-151474.pdf?ssSourceSiteId=ocomoms ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2015, 10:47 |
|
||
|
Вопросы по собеседованиям java-programmer:
|
|||
|---|---|---|---|
|
#18+
Atum1, +1 Вопрос не совсем для программиста)). Вот ещё по разгарниченю служебных обязанностей (c) Ааз (форум sql.ru - Oracle) Member Откуда: Протвино Сообщений: 4112 =================================================== - Разработчик на своей девелоперской БД (например, очень недавний бэкап промышленной) отладил скрипт. - DBA на тестовой (куда девелоперам доступа нет) тупо запустил скрипт и проверил отсутствие ошибок. Запустил туда админа приложения для проверки функционала. - Запланировали downtime или ограниченную доступность сервисов. DBA подготовил возможность отката (standby с задержкой наката redo подойтёт). - В момент «Ч» DBA прогнал проверенный скрипт и пустил админа приложения проверить основной функционал. Если ОК - пущаем в продакшн. Если не Ок, откатываемся на запасные путя и предоставляем начальству удовольствие оттра**** разработчика или администратора приложений (по выбору). Всего -- Disclaimer: Opinions are of my own and not necessar[-il]y ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2015, 10:51 |
|
||
|
Вопросы по собеседованиям java-programmer:
|
|||
|---|---|---|---|
|
#18+
Atum1, Atum1А вообще по всяким архитектурам и решениям нужно перечитать Фаулера или частично тут http://blog.byndyu.ru/2014/05/blog-post.html Спасибо - очень познавательно!!! Ребят подскажите такой момент есть схема: Каким образом реализуется добавления данных в mongodb по своему алгоритму - через те запросы - транзакции которые идут в реляционную базу в несколько таблиц. Должно ли это происходить мгновенно и как это должно работать. Скрипты, общая шина данных или очередь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2015, 19:08 |
|
||
|
|

start [/forum/topic.php?all=1&fid=59&tid=2124654]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
150ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
79ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 479ms |

| 0 / 0 |
