跟踪网络服务调用

时间:2019-05-15 10:12:41

标签: java web-services jax-ws call duration

我有JAXWS Web服务方法,每天有200万次呼叫。它部署在wildfly上。通话的持续时间对于毫秒精度非常重要。

我现在所拥有的是从日志文件计算的持续时间。我要减去请求的结束时间和开始时间,但它可能与实际的请求处理时间有所不同。

12:00:00,100 INFO  [com.myapp] (default task-19) Request:mymethod started, id=25
12:00:00,150 INFO  [com.myapp] (default task-19) Request:mymethod ended, id=25

当我们打电话给我们时,我们发现在某些情况下,从日志中计算出的持续时间与呼叫者服务所计算出的持续时间是不同的(呼叫是从同一野蝇发出的)。对于10000个呼叫,平均差异为2毫秒,而对于25个操作,平均差异约为100毫秒。

public void myMethod() {
    long startTime = System.nanoTime();
    /* some code here */
    long endTime = System.nanoTime();

    lgg.info("myMethod ended, duration=" + endTime - startTime );
}

持续时间会更精确,但是我需要全天候进行精确的操作处理。带有所有序列化请求等

如何计算Web服务操作的实际持续时间?从服务器上收到呼叫到从服务器返回呼叫之间的时间。 (没有网络时间)

0 个答案:

没有答案