我想计算每个请求的,从请求开始到建立时间连接之间的时间(连接建立)。
我问了这个问题,question,但它是模棱两可。
我看了一下建议的答案,也许我误解了,但我知道Connection.Listener至少在全局基础上工作(总体连接时间)。
因此,我尝试了基于SocketAddressResolver的方法:
private static class CustomSocketAddressResolver implements SocketAddressResolver {
private StopWatch stopWatch = new StopWatch();
private SocketAddressResolver adaptee;
public CustomSocketAddressResolver(SocketAddressResolver adaptee) {
this.adaptee = adaptee;
}
public long getConnectTime() {
return stopWatch.getTime();
}
@Override
public void resolve(String host, int port, Promise<List<InetSocketAddress>> promise) {
stopWatch.reset();
stopWatch.start();
adaptee.resolve(host, port, new Promise<List<InetSocketAddress>>() {
@Override
public void succeeded(List<InetSocketAddress> result) {
// Add as first address an invalid address so that we test
// that the connect operation iterates over the addresses.
stopWatch.stop();
promise.succeeded(result);
}
@Override
public void failed(Throwable x) {
stopWatch.stop();
promise.failed(x);
}
});
}
}
然后我就能得到这样的连接时间:
((CustomSocketAddressResolver) httpClient.getSocketAddressResolver()).getConnectTime()
这是可行的,但有没有更好的办法?
发布于 2021-03-12 15:58:12
我想计算每个请求从请求开始到建立时间连接之间的时间(TCP建立)。
也许这是个误会。
HTTP/1.1和HTTP/2使用持久TCP连接。创建、保持打开的TCP连接并在许多请求中重用。
例如,创建一个TCP连接,然后对1067请求进行重用,然后仍然保持打开状态。
计算从1067请求开始到连接第一次建立之间的时间(或者我很想听听这方面的用例)是没有什么意义的。
我知道有几天的联系都是开放的。
https://stackoverflow.com/questions/66608173
复制相似问题