【问题标题】:How to find the Total Number of Requests processed by tomcat server?如何查看tomcat服务器处理的请求总数?
【发布时间】:2012-02-12 07:26:51
【问题描述】:

我想托管一个 tomcat 服务器,它将托管 3 个 Web 应用程序。我想获取我的服务器处理的请求总数(对于 3 个 Web 应用程序中的任何一个)。是否有任何日志可以检查我的服务器处理的请求总数(包括 HTTP 404 请求)

注意:我可以计算每个单独的应用程序处理的请求总数,并得到我的服务器处理的请求总数,但是部署在 tomcat 中的应用程序是第三方的,我无法对其进行任何更改。

基本上,我正在为 tomcat 服务器构建一个监控应用程序,我必须提供应用程序中服务的总请求数,

另外,我的第一个想法是覆盖 servlet-api.jar 中的 HTTPServletRequest 类构造函数并放置一个静态计数器。由于每个请求都映射到 HTTPServletRequest 对象,我想它会完成这项工作。但是,覆盖 HTTPServletRequest 是否是个好主意,或者是否有任何现有的解决方案可用?

【问题讨论】:

  • 你可以写一个非常简单的Filter,但我认为它必须添加到每个上下文中,并且结果将被独立计算。

标签: java servlets tomcat6


【解决方案1】:

为此,您可以使用名为 Request Dumper Filter 的特殊过滤器。

根据官方 Tomcat 文档:

The following entries in a web application's web.xml would enable the Request Dumper 
filter for all requests for that web application. If the entries were added to 
CATALINA_BASE/conf/web.xml, the Request Dumper Filter would be enabled for all web 
applications.

【讨论】:

    【解决方案2】:

    如果您确实选择覆盖 HTTPServletRequest 类,请不要只添加静态计数器,这将导致您的计数器在每次服务器关闭/jvm 重新加载时自行重置。

    我认为从数据库中增加它或每次将值保存在文件中可能是一个更好的选择。这样,即使服务器发生问题并且您必须重新启动它,您也不会丢失计数。

    这一切都假设还没有一个 Apache 扩展已经做到了这一点,并且您确实想修改 HTTPServletRequest 类。

    【讨论】:

    • 假设还没有任何 apache 扩展,你的答案是极好的..+1
    猜你喜欢
    • 2018-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-08
    • 2018-03-26
    • 1970-01-01
    相关资源
    最近更新 更多