Масштабирование сложно.
Для некоторых операций масштабирование невозможно. Даже самые большие (Google, Facebook, Amazon) не могут свободно выбирать свои функции; часто предлагается компромисс между «что будет круто» и «что будет масштабироваться».
Вопрос «как сделать это быстрее» не подлежит обсуждению без профилирования вашего приложения.
Принимать какие-либо решения без учета предыдущего пункта - ЧУВСТВИТЕЛЬНО ГЛУПО, и МОЖЕТ СДЕЛАТЬ ВАС В ДАЖЕ СЛУЧАЙНОЙ СИТУАЦИИ.
Традиционный способ выявления узких мест - думать отдельно о:
а) память (системная замена?)
b) процессор (действительно ли процессор занят или просто ожидает базу данных?)
c) IO (обычно включает базу данных и пропускную способность)
В зависимости от того, где ваша проблема, помогут совершенно противоречивые вещи. Например, если у вас много памяти и мало полосы пропускания, переключите JSF, чтобы сохранить состояние на сервере. Это будет использовать больше памяти, но делать запросы короче. С другой стороны, если полоса пропускания не является проблемой, а память есть, сделайте наоборот: переключите JSF, чтобы сохранить состояние на клиенте. Это поможет сохранить память (хотя в этом случае дело обстоит сложнее: если в вашем кластере tomcats пытаются обмениваться данными сеанса, то сохранение состояния на сервере становится проблемой ввода-вывода).
Вы говорите, что проблема в загрузке файлов. Чтобы помочь, нам нужно знать: куда вы их спасете? в БД? к файловой системе? Они короткие или длинные? Как они обрабатываются? Существуют ли какие-либо закономерности использования загруженных файлов (например, «новые файлы используются большую часть времени»)? и, возможно, после того, как на них ответят, появятся еще вопросы.
Ради себя: закройте этот вопрос. Вы получите множество благих намерений, и в то же время ошибочные ответы, такие как «отбросить JSF», «все кластеризовать», «добавить память», «перейти в GAE или Amazon EC», «перейти с базой данных NoSQL», «делать все асинхронно». , используйте очередь сообщений ',' делайте все на клиенте с ajax ',' отбрасывайте ajax, он делает слишком много запросов и убивает сервер '. Все это бессмысленно, если только вы не профиль, профиль, профиль, мера, мера, мера - ПЕРВЫЙ. А потом дайте как лучше определенный вопрос.