* Dubbo version: 2.6.0
* Operating System version: Centos6.5 64(VMWare 12)
* Java version: 1.8.0_11

* Dubbo配置:
logger: log4j
dubbo:  2.6.0
loadbalance:    roundrobin
threads:        200
interface:      com.steven.mall.service.service.IOrderService
threadpool:     fixed
generic:        false
serialization:  kryo
application:    mall-dubbo
default.service.filter: TimerStaticsFilter

* 过滤器统计调用时间代码:
```java
public class TimerStaticsFilter implements Filter {
        @Override
        public Result invoke(Invoker<?> invoker, Invocation invocation) throws 
RpcException {
                try {
                        long beginTime = System.currentTimeMillis();
                        Result result = invoker.invoke(invocation);
                        long end = System.currentTimeMillis();
                        long costTime = end - beginTime;
                        if (invocation.getMethodName().indexOf("submitOrder") 
!= -1) {
                                RedisCache.incr("serverCostTime", costTime);
                                RedisCache.incr("serverCallCount", 1);
                        }
                        return result;
                } catch (RpcException e) {
                        throw e;
                }
        }
}
```


* 业务方法统计调用时间方法
```java
public Map<String, Object> submitOrder(Order order) throws Exception {
        long beginTime = System.currentTimeMillis();
        
        //业务方法执行

        long endTime = System.currentTimeMillis();
        long costTime = endTime - beginTime;
        RedisCache.incr("businessCostTime", costTime);
        RedisCache.incr("businessCallCount", 1);

        return result;
}
```
* 测试过程:
启动100个线程,每个线程for循环调用100次submitOrder方法(总共调用10000次)

* 经过多次测试后,统计结果如下:
```Bash
----------------start(2018-09-09 15:30:20)----------------------
application started,thread[100],loop[100]
clear redis statics info
startTime:2018-09-09 15:30:23
endTime:2018-09-09 15:30:30
server per request avg businessCostTime:'13 ms'
server per request avg serverCostTime:'43 ms'
client per request avg time:67 ms
client tps:1492.5373134328358
----------------end----------------------
```


[ Full content available at: 
https://github.com/apache/incubator-dubbo/issues/2474 ]
This message was relayed via gitbox.apache.org for [email protected]

Reply via email to