code: private int resolveTimeout(SofaRequest request, ConsumerConfig consumerConfig, ProviderInfo providerInfo) {
          // 先去调用级别配置
          Integer timeout = request.getTimeout();
          if (timeout == null) {
              // 取客户端配置（先方法级别再接口级别）
              timeout = consumerConfig.getMethodTimeout(request.getMethodName());
              if (timeout == null || timeout < 0) {
                  // 再取服务端配置
                  timeout = (Integer) providerInfo.getDynamicAttr(ATTR_TIMEOUT);
                  if (timeout == null) {
                      // 取框架默认值
                      timeout = getIntValue(CONSUMER_INVOKE_TIMEOUT);
                  }
              }
          }
          return timeout;
      }
docs: 决定超时时间
  
  @param request        请求
  @param consumerConfig 客户端配置
  @param providerInfo   服务提供者信息
  @return 调用超时