2012-09-14 24 views
1

为了统计目的,我想统计一个Http连接上有多少个请求(在一个打开的套接字上有多少个保持活动的请求)。Vertx.io - 如何获取单个http连接发出的请求数?

在node.js中,我可以访问请求和响应对象中的'套接字',我可以动态地添加一个字段,例如“请求”并增加它。我还可以附加'套接字关闭'处理程序,然后将“请求”字段记录到syslog中,并在Graphite中获得1分钟的平均值。

这可能与vertx.io?我不能在HttpRequest和HttpResponse类中找到套接字字段。

回答

2

有没有简单的方法来做到这一点。

您可能会做一个破解:HttpServerRequest实际上是org.vertx.java.core.http.impl.DefaultHttpServerRequest的一个实例,它具有私有字段ServerConnection conn。该字段可以通过反射访问,例如在此处所述:http://tutorials.jenkov.com/java-reflection/private-fields-and-methods.html。请求计数可能通过创建一个连接到整数的映射来实现。

这个黑客足够用于测试目的,但由于内存泄漏,我不会在生产环境中工作。将此功能添加到ServerConnection类的handleMessage方法中并通过JMX公开它会更好。