- [x] I have searched the [issues](https://github.com/apache/dubbo/issues) of this repository and believe that this is not a duplicate.
- [x] I have checked the [FAQ](https://github.com/apache/dubbo/blob/master/FAQ.md) of this repository and believe that this is not a duplicate.

### Environment

* Dubbo version: 2.7.3-SNAPSHOT
* Operating System version: macOs
* Java version: JDK 1.8

### Steps to reproduce this issue

1. Assume Demo interface have sayHello and sayHi method. 
```
<dubbo:reference id="demoService" interface="com.ctrip.Demo" timeout="1000">
  <dubbo:method name="sayHello">
    <dubbo:parameter key="timeout" value="800"/>
  </dubbo:method>
</dubbo:reference>
```
2. Make a sync call to sayHello, the timeout is 800 but not 1000. We have not get method timeout from the url.

```
asyncResult.get(getUrl().getParameter(TIMEOUT_KEY, DEFAULT_TIMEOUT), TimeUnit.MILLISECONDS);
```

Pls. provide [GitHub address] to reproduce this issue.

### Expected Result

The timeout should be 1000 for sayHello.

### Actual Result

The timeout is 800 for sayHello.

If there is an exception, please attach the exception trace:

```
Just put your stack trace here!
```

if (super.isDestroyed()) {
            return;
        } else {
            
            destroyLock.lock();
            try {
                if (super.isDestroyed()) {
                    return;
                }
                super.destroy();
                if (invokers != null) {
                    invokers.remove(this);
                }
                for (ExchangeClient client : clients) {
                    try {
                        client.close(ConfigurationUtils.getServerShutdownTimeout());
                    } catch (Throwable t) {
                        logger.warn(t.getMessage(), t);
                    }
                }
            } finally {
                destroyLock.unlock();
            }
        }
    }
}