Vertx.io - 如何获取单个http连接上的请求数?

时间:2012-09-14 21:08:05

标签: node.js vert.x

出于统计目的,我想计算在单个Http连接上发出了多少请求(在一个打开的套接字上发出了多少个保持活动请求)。

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

这可以用vertx.io吗?我无法在HttpRequest和HttpResponse类中找到socket字段。

1 个答案:

答案 0 :(得分:2)

没有直接的方法可以做到这一点。

你可以做一个黑客攻击:HttpServerRequest实际上是org.vertx.java.core.http.impl.DefaultHttpServerRequest的私有字段ServerConnection conn的实例。可以通过反射访问此字段,例如:http://tutorials.jenkov.com/java-reflection/private-fields-and-methods.html。可以通过创建与整数的连接映射来实现请求计数。

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