![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Barvetal |
|
|||
|
Бывалый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 181 Регистрация: 31.10.2005 Репутация: 5 Всего: 5 |
Всем привет!
Написал сайт на java. Сайт информационный и практически все страницы сайта меняют свое содержимое раз в две минуты, потому что вся информация берется из базы, а в базу данные заливаются раз в две минуты. Интерактивности с пользователем практически нет (пользователь почти нигде не заполняет формы) Проблема в том, что для отображения каждой страницы необходимо выполнить несколько десятков запросов к базе данных. В итоге каждая страница грузится секунд по десять. И это еще не предел, так как каждый день объем данных растет. Можно ли как-то закешировать страницы, чтобы когда пользователь вводит адрес страницы, то страницы отдавались пользователю из кеша, а java обновляла кеш только раз в две минуты? Как это сделать? Используемые технологии на сайте: apache-tomcat-5.5.20, jetspeed-2, jdk1.5. Всем заранее спасибо! |
|||
|
||||
| y3u |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 440 Регистрация: 9.9.2006 Где: Москва Репутация: 7 Всего: 13 |
друг, надо оптимизировать запросы и нормализовывать БД... кэш - не выход. У меня тоже на одну страницу по несколько десятков запросов и нормально все рендерится... Потом рассмотри вариант, можно разнести функциональность по фреймам по принципу частоты загрузки, обновлять только нужный фрейм...
-------------------- В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах |
|||
|
||||
| Barvetal |
|
|||
|
Бывалый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 181 Регистрация: 31.10.2005 Репутация: 5 Всего: 5 |
Понятно, что нужно оптимизировать запросы. Нужно учесть, что большинство из этих запросов - это запросы на поиск с джойном по таблицам с 200 000 записей. В любом случае это долго. А оптимизацией запросов я тоже занимаюсь.
Кроме того, зачем мне дергать java по несколько раз в секунду для получения одной и той же страницы, когда ее можно закешировать? Это ж и есть оптимизация. |
|||
|
||||
| JUncle |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 162 Регистрация: 6.4.2006 Где: Казань, РФ Репутация: нет Всего: 1 |
Почему не выход? Запрос к БД - "дорогая№ операция. Смотря какой контекст применения в общем то... Добавлено @ 19:47
Существуют средства кеширования JSP страниц и сервлетов (например у Resin). Но, как видно из цитаты, вряд ли конфигурацию сервера можно поменять. --------------------
class JUncle extends Man // singleton{/*...*/} |
||||
|
|||||
| batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 16 Всего: 151 |
Может быть, имеет смысл кешировать не страницы, а объекты, с которыми они работают? У нас, например, механизм такой: сервлет при обращении не лезет непосредственно в базу, а пытается работать с объектами, находящимися в памяти. Если этих объектов нет, или они были последний раз перечитаны более 15 минут назад, то объекты считываются заново. -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
| Barvetal |
|
|||
|
Бывалый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 181 Регистрация: 31.10.2005 Репутация: 5 Всего: 5 |
Мы так и делаем. Однако все равно тратится процессорное время на конструирование страницы с использованием этих объектов. Зачем? Можно ж сразу закешировать готовые страницы |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |