Масштабирование приложений Java - существующие кластерные инфраструктуры IoC? - PullRequest
4 голосов
/ 17 марта 2010

Большинство людей используют какой-то IoC-фреймворк - Guice, Spring, как вы его называете. Многим из нас тоже нужно масштабировать свои приложения, чтобы они усложняли свою жизнь кластерами Terracotta, Glassfish / JBoss / inserttyourfavouritehere.

Но так ли это? Вы используете какой-либо из вышеперечисленных?

Вот некоторые идеи, которые мы в настоящее время реализовали в фреймворке, который еще не открыт, и я хотел бы посмотреть, что вы об этом думаете, или, может быть, «это полный подрыв XY!»

  • Репликация объекта на уровне кластера - присвойте ему имя и всякий раз, когда вы что-то делаете (в любом узле) на такой объект он будет реплицирован - с разными гарантиями
  • сделать прозрачную мягкую балансировку нагрузки - самый простой сценарий: вызов метода restful webservice проксирован к другому узлу
  • Внедрение узла только для просмотра: внедрить прокси в «именованный» объект и автоматически переадресовывать ваши вызовы на узел

Вы бы использовали что-нибудь подобное? Существует ли текущая, стабильная, готовая к внедрению на предприятии реализация?

1 Ответ

2 голосов
/ 17 марта 2010

FWIW Я работаю в компании, которая разрабатывает очень масштабные веб-приложения, и мы склонны не использовать эту форму объектного кэширования.

На самом деле мы стремимся облегчить нашу жизнь, не сохраняя ничего в сеансе и не кэшируя ничего, что является транзакционным и должно быть прочитано в текущем состоянии. Таким образом, ваше приложение довольно просто, легко рассуждать и очень легко масштабировать по горизонтали.

Я полагаю, что основанием для использования этих объектных кешей является прежде всего уменьшение нагрузки на ваше хранилище и, возможно, уменьшение задержки. Мое предложение состоит в том, чтобы работать над масштабированием этого бэкэнда независимо от относительно тупого веб-приложения. Большинство крупных сайтов делают это с помощью реплик чтения и разделения данных. Посмотрите здесь: http://highscalability.com/livejournal-architecture. Я помню, как смотрел на это давным-давно, и это было довольно интересно. Он также достаточно хорошо вписывается в архитектуру, которую я использую на сайтах с большим трафиком.

...