标签:parameter 配置 row pre time rri integer class eth
/** * Log any invocation timeout, but don‘t stop server from running * 服务于服务提供者 */ @Activate(group = Constants.PROVIDER) public class TimeoutFilter implements Filter { private static final Logger logger = LoggerFactory.getLogger(TimeoutFilter.class); @Override public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException { //获得开始时间 long start = System.currentTimeMillis(); //执行调用 Result result = invoker.invoke(invocation); //计算耗时 long elapsed = System.currentTimeMillis() - start; //超过提供者配置的timeout 配置 则打印告警日志 if (invoker.getUrl() != null && elapsed > invoker.getUrl().getMethodParameter(invocation.getMethodName(), "timeout", Integer.MAX_VALUE)) { if (logger.isWarnEnabled()) { logger.warn("invoke time out. method: " + invocation.getMethodName() + " arguments: " + Arrays.toString(invocation.getArguments()) + " , url is " + invoker.getUrl() + ", invoke elapsed " + elapsed + " ms."); } } return result; } }
dubbo源码阅读-Filter默认实现(十二)之TimeoutFilter
标签:parameter 配置 row pre time rri integer class eth
原文地址:https://www.cnblogs.com/LQBlog/p/12505220.html