Какова лучшая масштабируемая современная архитектура для большого сайта (Java) - PullRequest
6 голосов
/ 15 сентября 2010

У нас есть веб-сайт, который получает более 1 млн посещений в день.

Сайт работает на старой архитектуре (Struts Tomcat Hibenate MySQl) без реальной возможности масштабирования.

Сейчасчто мы расширяемся дальше, я ищу современную (не слишком передовую, пожалуйста) веб-архитектуру.

Моими первыми мыслями было использование Google App Engine - но я не уверен, что он достаточно открыт.

Все наши разработчики - Java, поэтому они должны быть легко подобраны.

В идеале я бы хотел работать так же, как DIGG, Twitter, Amazon и т. Д.

Если вы знаете, как они это делают - или у вас есть предложение, мне было бы очень интересно узнать.

Ответы [ 4 ]

2 голосов
/ 15 сентября 2010

Если у вас не возникло серьезных узких мест в дизайне, аппаратное обеспечение почти всегда будет лучшим способом масштабирования.

Под «лучшим» я подразумеваю

  • дешевый
  • быстрый
  • лучшее увеличение производительности
  • гарантированные результаты

Звучит так, будто у вас сейчас проблемы? Можете ли вы дать какую-либо информацию о том, какие у вас проблемы?

Редактировать: Можете ли вы дать информацию о текущей настройке оборудования? Сколько веб-серверов (предположительно под управлением Apache?), Сколько серверов приложений, сколько серверов БД?

0 голосов
/ 15 сентября 2010

Посмотрите, сможете ли вы дешево организовать кластеризацию с помощью терракоты.


Для переписывания: взгляните на то, что уже присутствует в Java EE 6. Вы можете найти, что оно прекрасно соответствует вашим потребностям Glassfish 3.1 будет поддерживать кластеризацию до того, как вы закончите переписывать.

0 голосов
/ 15 сентября 2010

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

0 голосов
/ 15 сентября 2010

Я бы исчерпал все возможности для «отсутствия реальных возможностей для масштабируемости», прежде чем переписывать свое приложение. Это может означать, что вы можете масштабироваться только горизонтально, добавляя больше оборудования и кластеризуя проблему.

Google App Engine будет означать JPA вместо Hibernate и MySQL, потому что я считаю, что они используют BigTable сзади.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...