Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Страницы сайта обновляются раз в несколько минут. Можно ли как-то закешировать? 
:(
    Опции темы
Barvetal
Дата 18.10.2006, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 181
Регистрация: 31.10.2005

Репутация: 5
Всего: 5



Всем привет!

Написал сайт на java. Сайт информационный и практически все страницы сайта меняют свое содержимое раз в две минуты, потому что вся информация берется из базы, а в базу данные заливаются раз в две минуты. Интерактивности с пользователем практически нет (пользователь почти нигде не заполняет формы)

Проблема в том, что для отображения каждой страницы необходимо выполнить несколько десятков запросов к базе данных. В итоге каждая страница грузится секунд по десять. И это еще не предел, так как каждый день объем данных растет.

Можно ли как-то закешировать страницы, чтобы когда пользователь вводит адрес страницы, то страницы отдавались пользователю из кеша, а java обновляла кеш только раз в две минуты?

Как это сделать?

Используемые технологии на сайте: apache-tomcat-5.5.20, jetspeed-2, jdk1.5.

Всем заранее спасибо!
PM MAIL   Вверх
y3u
Дата 18.10.2006, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 440
Регистрация: 9.9.2006
Где: Москва

Репутация: 7
Всего: 13



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


--------------------
В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах
PM MAIL   Вверх
Barvetal
Дата 18.10.2006, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 181
Регистрация: 31.10.2005

Репутация: 5
Всего: 5



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

Кроме того, зачем мне дергать java по несколько раз в секунду для получения одной и той же страницы, когда ее можно закешировать? Это ж и есть оптимизация.
PM MAIL   Вверх
JUncle
Дата 18.10.2006, 19:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 162
Регистрация: 6.4.2006
Где: Казань, РФ

Репутация: нет
Всего: 1



Цитата(y3u @  18.10.2006,  17:11 Найти цитируемый пост)
друг, надо оптимизировать запросы и нормализовывать БД... кэш - не выход

Почему не  выход? Запрос к БД - "дорогая№ операция. Смотря какой контекст применения в общем то...

Добавлено @ 19:47 
Цитата(Barvetal @  18.10.2006,  16:55 Найти цитируемый пост)
Используемые технологии на сайте: apache-tomcat-5.5.20, jetspeed-2, jdk1.5.

Существуют средства кеширования JSP страниц и сервлетов (например у Resin).
Но, как видно из цитаты, вряд ли конфигурацию сервера можно поменять.

--------------------
class JUncle extends Man // singleton{/*...*/}
PM MAIL   Вверх
batigoal
Дата 19.10.2006, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 16
Всего: 151



Цитата(Barvetal @  18.10.2006,  17:55 Найти цитируемый пост)
Можно ли как-то закешировать страницы, чтобы когда пользователь вводит адрес страницы, то страницы отдавались пользователю из кеша, а java обновляла кеш только раз в две минуты?

Может быть, имеет смысл кешировать не страницы, а объекты, с которыми они работают? У нас, например, механизм такой: сервлет при обращении не лезет непосредственно в базу, а пытается работать с объектами, находящимися в памяти. Если этих объектов нет, или они были последний раз перечитаны более 15 минут назад, то объекты считываются заново.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Barvetal
Дата 19.10.2006, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 181
Регистрация: 31.10.2005

Репутация: 5
Всего: 5



Цитата(batigoal @ 19.10.2006,  12:28)
Может быть, имеет смысл кешировать не страницы, а объекты, с которыми они работают?

Мы так и делаем. Однако все равно тратится процессорное время на конструирование страницы с использованием этих объектов. Зачем? Можно ж сразу закешировать готовые страницы
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0651 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.