| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > Страницы сайта обновляются раз в несколько минут. |
| Автор: Barvetal 18.10.2006, 16:55 |
| Всем привет! Написал сайт на java. Сайт информационный и практически все страницы сайта меняют свое содержимое раз в две минуты, потому что вся информация берется из базы, а в базу данные заливаются раз в две минуты. Интерактивности с пользователем практически нет (пользователь почти нигде не заполняет формы) Проблема в том, что для отображения каждой страницы необходимо выполнить несколько десятков запросов к базе данных. В итоге каждая страница грузится секунд по десять. И это еще не предел, так как каждый день объем данных растет. Можно ли как-то закешировать страницы, чтобы когда пользователь вводит адрес страницы, то страницы отдавались пользователю из кеша, а java обновляла кеш только раз в две минуты? Как это сделать? Используемые технологии на сайте: apache-tomcat-5.5.20, jetspeed-2, jdk1.5. Всем заранее спасибо! |
| Автор: y3u 18.10.2006, 17:11 |
| друг, надо оптимизировать запросы и нормализовывать БД... кэш - не выход. У меня тоже на одну страницу по несколько десятков запросов и нормально все рендерится... Потом рассмотри вариант, можно разнести функциональность по фреймам по принципу частоты загрузки, обновлять только нужный фрейм... |
| Автор: Barvetal 18.10.2006, 17:43 |
| Понятно, что нужно оптимизировать запросы. Нужно учесть, что большинство из этих запросов - это запросы на поиск с джойном по таблицам с 200 000 записей. В любом случае это долго. А оптимизацией запросов я тоже занимаюсь. Кроме того, зачем мне дергать java по несколько раз в секунду для получения одной и той же страницы, когда ее можно закешировать? Это ж и есть оптимизация. |
| Автор: batigoal 19.10.2006, 12:28 | ||
Может быть, имеет смысл кешировать не страницы, а объекты, с которыми они работают? У нас, например, механизм такой: сервлет при обращении не лезет непосредственно в базу, а пытается работать с объектами, находящимися в памяти. Если этих объектов нет, или они были последний раз перечитаны более 15 минут назад, то объекты считываются заново. |
| Автор: Barvetal 19.10.2006, 14:37 | ||
Мы так и делаем. Однако все равно тратится процессорное время на конструирование страницы с использованием этих объектов. Зачем? Можно ж сразу закешировать готовые страницы |