【问题标题】:How to output cache files and do custom logging - jboss/java project如何输出缓存文件并进行自定义日志记录 - jboss/java 项目
【发布时间】:2009-03-06 03:52:24
【问题描述】:

我是一名 .Net 开发人员,开始从事越来越多的 Java 开发工作。我有一个关于缓存的具体问题,希望你们能解决或提供建议。我们正在启动一个 java 项目,该项目将部署在运行 JBoss 的 Linux 机器上。我们正在提前计划并尝试考虑我们的缓存策略。我们想做的一件事是输出缓存页面,因为我们的内容可能会缓存 8 小时左右。我开始查看 mod_cache ,这正是我们想要做的。我需要满足的另一个要求是,对于每个请求,我都需要进行一些自定义日志记录。我需要基本的请求 URL,然后是一些其他业务逻辑的东西,然后将其填充到数据库中。我的问题是:

1) 如何将代码置于 mod_cache 级别以启动自定义日志记录过程?
2)我想以某种方式将这些日志消息排队,因为我不想每次请求都去数据库。解决这个问题的最佳方法是什么?

如果您有任何建议或解决方案,我将不胜感激!

【问题讨论】:

    标签: java apache outputcache


    【解决方案1】:

    我假设您计划的设置是 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 框架呈现的页面时非常快。设置缓存过期日期,让浏览器处理缓存。

    【讨论】:

      【解决方案2】:

      您可能会考虑改用 memcached。我不知道这个程序是否有 Tomcat/JBoss 包装模块。它可以让您缓存几乎所有可以序列化的数据并为其创建字符串键值。

      您必须根据需要编写一个访问器,它会尝试从 memcached 进程中提取内容,和/或在缓存未命中时调用生成器函数(以及缓存生成器的结果)。在此访问器中,您可以记录缓存命中和未命中。

      当然,memcached 守护程序是用 C 编写的,因此它不会像 java(或大多数其他“现代”语言运行时)那样“标记和扫描”自己死持有数据。

      另一方面,也许 mod_cache 有一些日志钩子。也许你应该研究一下,因为这会减轻你的 java 进程的负载。

      这是否接近您正在寻找的那种东西?

      【讨论】:

        猜你喜欢
        • 2015-04-06
        • 2012-01-05
        • 2019-07-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-22
        • 2015-11-23
        • 2013-07-09
        相关资源
        最近更新 更多