### Environment

* Dubbo version: 3.0.6
* Operating System version: centos 7
* Java version: 11.0.2

### Steps to reproduce this issue

1. 启动一个服务，timeout设置为-1，永不超时
2. 调用这个服务中的测试方法，超过1秒再返回
3. 系统会打印超过1000ms的告警信息，timeout未生效。不影响程序使用，但是会打印告警日志。


服务注解配置为
<code>
@DubboService(interfaceClass = IAnalysisADBService.class,
        executes = 200,
        retries = 0,
        cluster = "failfast",
        timeout = -1
)
</code>

在dubbo 2.7.x 版本时一切正常。但是升级到dubbo 3.0.6之后，每次执行一个超过1秒的调用，都会打印告警信息

22-03-23 16:49:47.080 [WARN ] [DubboServerHandler-172.28.53.72:25051-thread-10] o.a.d.r.f.ProfilerServerFilter                     :   [DUBBO] [Dubbo-Provider] execute service com.syyx.tpf.common.bigdata.analysis.facade.IAnalysisADBService:0.0.0#analysisTask cost 1830.049551 ms, this invocation almost (maybe already) timeout. Timeout: 1000ms
client: xxxxxxxxxxxx
invocation context:
input=599;
path=com.syyx.tpf.common.bigdata.analysis.facade.IAnalysisADBService;
remote.application=tpf-bigdata-analysis-cmd-task;
dubbo=2.0.2;
id=6;
interface=com.syyx.tpf.common.bigdata.analysis.facade.IAnalysisADBService;
version=0.0.0;
thread info: 
Start time: 14102589299377092
+-[ Offset: 0.000000ms; Usage: 1830.049551ms, 100% ] Receive request. Server invoke begin.
  +-[ Offset: 0.111898ms; Usage: 1829.823148ms, 99% ] Receive request. Server biz impl invoke begin., dubbo version: 3.0.6, current 

查看了ProfilerServerFilter的代码：
<code>   timeout = invoker.getUrl().getMethodPositiveParameter(invocation.getMethodName(), TIMEOUT_KEY, DEFAULT_TIMEOUT);</code>
判断获取的timeout是默认值DEFAULT_TIMEOUT。但是我在@DubboService上配置的是-1，应该永不超时才对。是3.x版本有什么变化我需要跟着修复吗？还是这是一个bug?
ProfilerEntry profiler = Profiler.release((ProfilerEntry) fromInvocation);
                invocation.put(Profiler.PROFILER_KEY, profiler);
                dumpIfNeed(invoker, invocation,(ProfilerEntry) fromInvocation);
            }
        }
    }
    private void dumpIfNeed(Invoker<?> invoker, Invocation invocation, ProfilerEntry profiler) {
        int timeout;
        Object timeoutKey = invocation.getObjectAttachmentWithoutConvert(TIMEOUT_KEY);
        if (timeoutKey instanceof Integer) {
            timeout = (Integer) timeoutKey;
        } else {
            timeout = invoker.getUrl().getMethodPositiveParameter(invocation.getMethodName(), TIMEOUT_KEY, DEFAULT_TIMEOUT);
        }
        long usage = profiler.getEndTime() - profiler.getStartTime();
        if ((usage / (1000_000L * ProfilerSwitch.getWarnPercent())) > timeout) {
            StringBuilder attachment = new StringBuilder();
            for (Map.Entry<String, Object> entry : invocation.getObjectAttachments().entrySet()) {
                attachment.append(entry.getKey()).append("=").append(entry.getValue()).append(";\n");
            }
            logger.warn(String.format("[Dubbo-Provider] execute service %s#%s cost %d.%06d ms, this invocation almost (maybe already) timeout. Timeout: %dms\n" +
                    "client: %s\n" +
                    "invocation context:\n%s" +
                    "thread info: \n%s",
                invocation.getTargetServiceUniqueName(), invocation.getMethodName(), usage / 1000_000, usage % 1000_000, timeout,
                invocation.get(CLIENT_IP_KEY), attachment, Profiler.buildDetail(profiler)));
        }
    }
}