簡體   English   中英

如何 output 緩存文件並進行自定義日志記錄 - jboss/java 項目

[英]How to output cache files and do custom logging - jboss/java project

我是一名.Net 開發人員,他開始在工作中進行越來越多的 Java 開發。 我有一個關於緩存的具體問題,希望你們能解決或提供建議。 我們正在啟動一個 java 項目,該項目將部署在運行 JBoss 的 Linux 盒子上。 我們正在提前計划並嘗試考慮我們的緩存策略。 我們想做的一件事是 output 緩存頁面,因為我們的內容可能會緩存 8 小時左右。 我開始查看 mod_cache ,這正是我們想要做的。 我需要滿足的另一個要求是,對於每個請求,我都需要進行一些自定義日志記錄。 我需要基本請求 URL 和其他一些業務邏輯內容並將其填充到數據庫中。 我的問題是:

1) 如何將代碼放在 mod_cache 級別以啟動自定義日志記錄過程?
2)我想以某種方式將這些日志消息排隊,因為我不想在每個請求中將 go 發送到數據庫。 解決這個問題的最佳方法是什么?

如果您有任何建議或解決方案,我將不勝感激!

我假設您計划的設置是 Apache httpd -> mod_cache -> mod_proxy/mod_jk -> JBoss

1)你不能,因為在 Apache 級別的 mod_cache 甚至沒有開始調用 Java。 因此,您需要檢查 mod_cache 本身是否有一些可以掛鈎的日志記錄工具,或者您需要修改 mod_cache 並重新編譯它。 這與 Java 無關,我認為您無法在 Java 中做到這一點。

2) 同樣,當 mod_cache 自己處理響應而不調用 JBoss 時,這不是 Java 問題。

JBoss/Catalina/Tomcat 在交付由 JSP 或其他 web 框架呈現的頁面時非常快。 設置緩存過期日期,讓瀏覽器處理緩存。

您可能會考慮改用 memcached。 我不知道這個程序是否有 Tomcat/JBoss 包裝模塊。 它可以讓您緩存幾乎所有可以序列化並為其創建字符串鍵值的數據。

您必須根據需要編寫訪問器,它會嘗試從 memcached 進程中提取內容,和/或在緩存未命中時調用生成器 function(以及緩存生成器的結果)。 在此訪問器中,您可以記錄緩存命中和未命中。

當然,memcached 守護程序是用 C 編寫的,因此它不會像 java(或大多數其他“現代”語言運行時)那樣“標記和掃描”自己死持有數據。

另一方面,也許 mod_cache 有一些日志鈎子。 也許您應該研究一下,因為這將減輕您的 java 進程的負載。

這是否接近您正在尋找的那種東西?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM