// 清除过期数据 privatevoidclearOld(){ long valid = System.currentTimeMillis()-VALID_TIME; Set<Long> requestTimes = useTimeMaps.keySet(); for (Long r:requestTimes){ if(r<valid){ useTimeMaps.remove(r); } } }
@Override publicvoidrun(){ while (true){ try { Thread.sleep(5000); // 执行前先清除过期数据 clearOld(); final Map<Long,Long> temp = Maps.newHashMap(useTimeMaps); int total = temp.size(); if (total == 0){ continue; } int tp90 = (int) (total*0.9); int tp99 = (int) (total*0.99); final Collection<Long> requestTimes = temp.values();
@Override public Result invoke(Invoker<?> invoker, Invocation invocation)throws RpcException { log.info("请求过来了----------"); long start = System.currentTimeMillis(); Result result = invoker.invoke(invocation); long useTime = System.currentTimeMillis() - start; tpMonitor.request(System.currentTimeMillis(), useTime); return result;