dubbo源码阅读-Filter默认实现之TimeoutFilter
Posted 意犹未尽
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dubbo源码阅读-Filter默认实现之TimeoutFilter相关的知识,希望对你有一定的参考价值。
/** * 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的主要内容,如果未能解决你的问题,请参考以下文章