Как вывести файлы кэша и сделать пользовательскую регистрацию - проект jboss / java - PullRequest
0 голосов
/ 06 марта 2009

Я разработчик .Net, который начинает все больше и больше разрабатывать Java на работе. У меня есть конкретный вопрос о кешировании, который, я надеюсь, вы, ребята, сможете решить или предложить предложения. Мы запускаем Java-проект, который будет развернут на Linux-боксе с JBoss. Мы планируем наперед и пытаемся продумать нашу стратегию кэширования. Одна вещь, которую мы хотели бы сделать, - это выводить кеш страниц, поскольку наш контент, вероятно, будет кэшироваться в течение 8 часов или около того. Я начал смотреть на mod_cache, и это делает то, что мы хотим сделать. Еще одно требование, которое мне нужно выполнить, заключается в том, что для каждого запроса мне необходимо выполнить некоторые пользовательские записи в журнал. Мне нужен базовый URL-адрес запроса, а затем еще кое-что из бизнес-логики и вставка его в базу данных. У меня такие вопросы:

1) Как я могу поместить код на уровне mod_cache, чтобы запустить процесс пользовательского ведения журнала?
2) Я хочу как-то поставить в очередь эти сообщения, так как я не хочу идти в БД с каждым запросом. Каков наилучший способ решить эту проблему?

Буду признателен за любые предложения или решения, если вы их получите!

Ответы [ 2 ]

1 голос
/ 08 марта 2009

Я предполагаю, что вы планируете установить Apache httpd -> mod_cache -> mod_proxy / mod_jk -> JBoss

1) Вы не можете, так как mod_cache на уровне Apache даже не доходит до вызова Java. Следовательно, вам нужно проверить, есть ли у mod_cache какая-либо возможность ведения журнала, в которую можно что-то подключить, или вам нужно изменить mod_cache и перекомпилировать его. Это не имеет ничего общего с Java, и я не думаю, что вы можете сделать это на Java.

2) Опять же, это не вопрос Java, когда mod_cache обрабатывает ответ самостоятельно, без вызова JBoss.

JBoss / Catalina / Tomcat работают довольно быстро, когда дело доходит до доставки страниц, отображаемых JSP или другими веб-фреймворками. Установите срок действия кеша и позвольте браузеру обработать кеш.

0 голосов
/ 26 июня 2009

Вы можете вместо этого использовать memcached. Я не знаю, есть ли модуль оболочки Tomcat / JBoss для этой программы или нет. Это позволит вам кэшировать практически любые данные, которые вы можете сериализовать, и создать значение строкового ключа.

Вы должны написать аксессор для того, что вам нужно, который пытается извлечь что-то из процесса memcached и / или вызывает функцию генератора при пропадании кэша (а также кеширует результат генератора). В этом методе доступа вы можете регистрировать попадания и пропуски кэша.

Демон memcached написан, конечно, на C, поэтому он не будет "метиться и сметаться" до смерти, удерживая данные, в отличие от java (или большинства других "современных" сред выполнения языков).

С другой стороны, возможно, у mod_cache есть несколько ловушек для регистрации. Может быть, вам стоит заняться этим, поскольку это уменьшит нагрузку на ваш Java-процесс.

Это близко к тому, что вы ищете?

...