我正在使用 Jetty 的 http2client 对我的服务器进行同步调用,我的示例程序如下,
客户端部分
Security.addProvider(new OpenSSLProvider());
SslContextFactory sslContextFactory = new SslContextFactory(true);
sslContextFactory.setProvider("Conscrypt");
sslContextFactory.setProtocol("TLSv1.3");
HTTP2Client http2Client = new HTTP2Client();
http2Client.setConnectTimeout(5000);
http2Client.setIdleTimeout(5000);
HttpClient httpClient = new org.eclipse.jetty.client.HttpClient(new HttpClientTransportOverHTTP2(http2Client), sslContextFactory);
httpClient.setMaxConnectionsPerDestination(20);
httpClient.setMaxRequestsQueuedPerDestination(100);
httpClient.setConnectTimeout(5000);
httpClient.addBean(sslContextFactory);
httpClient.start();
请求部分
Request request = httpClient.POST("my url goes here");
request.header(HttpHeader.CONTENT_TYPE, "application/json");
request.content(new StringContentProvider("xmlRequest PayLoad goes here","utf-8"));
ContentResponse response = request.send();
String res = new String(response.getContent());
我需要测量指标,例如每个目的地的连接数、每个连接的请求数、失败的事务数等。
我的应用程序在限制使用wireshark 或任何其他tcp 工具的服务器中运行。所以我需要在java中获取这些数据。启用码头的调试日志是不可行的,因为它会写入 GB 的数据。
有没有办法通过一些 util 或 java 反射来获取这些指标?
提前致谢