2012-09-14 22 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公開它會更好。