2010-06-24 118 views
2

在我特别的web应用程序中,我需要一个重载数据,例如“每分钟请求数”。如何在基于Servlet API的webapp中获取这个值?如何在java web应用程序中每分钟获取请求数

+3

很有可能,这是你的* servlet容器*将会提供更好的位置,而不是你的webapp本身。 – 2010-06-24 10:56:35

+0

如果你提到了你正在使用的appserver/servletcontainer,你会得到更好的答案。这取决于服务器,而不是Web应用程序。如果它依赖于Web应用程序,那么这意味着你自己编写/实现了统计代码,但这显然不是这种情况;) – BalusC 2010-06-24 11:35:27

+1

你需要即时加载统计信息(我的Web应用程序现在有多加载?)或统计信息在很长一段时间内(与前一周相比,上周我的网络应用程序的负载如何?)。 – 2010-06-24 11:46:03

回答

2

不是来自servlet背景,我会试着以旧式的方式来做:按照您的流程进行计算。

如果这是PHP,ASPNET或Django,我会保留一个memcache键来存储当前分钟,另一个键用于计数器。

当您想要跟踪的动作发生时,检查分钟是否与当前分钟相同。如果是,则递增计数器,如果不是,则将旧计数保存到数据库,保存新的当前分钟并从零开始计数器。

您可以很容易地扩展它,通过将操作添加到内存缓存键来跟踪不同的操作。

+1

让我稍微更新一下您的方法:我按照过程进行计算,但不要将值降到零,也不要将当前分钟存储起来。我不时地查询计数器并存储最后查询事件的时间以及当时的值。这使得事情变得简单:我在现在和以前的查询之间有时间差,并且我有价值差异。这一切都需要计算。 – 2010-06-29 07:53:25

3

几乎所有的容器都允许使用JMX来查询仪表数据。这可能是你必须安装一个插件。

确切的内容是容器特定的,但它非常简单。

例如,这里是the docs related to tomcat

1

获得这些统计数据的简易方法是configure Tomcat access logs。有一些工具可用于解析这些日志,但您可以使用简单的脚本每分钟执行一次请求。

相关问题