### Environment

* Dubbo version: 2.7.3

### Steps to reproduce this issue
1. I see the TpsLimitFilter doc ,it describes can limit the TPS (transaction per second) for all method of a service or a particular method. but when I config like this 
```
    <dubbo:service interface="org.apache.dubbo.samples.basic.api.DemoService" ref="demoService">
        <dubbo:method name="sayHello" retries="21">
            <dubbo:parameter key="tps" value="45"/>
        </dubbo:method>
    </dubbo:service>
```
This config will generate the url key "sayHello.tps", it dosen't "tps" where the DefaultTPSLimiter use.
```
int rate = url.getParameter(TPS_LIMIT_RATE_KEY, -1);
```
So it will not limit for a particular method.

dubbo TpsLimitFilter   代码中文档描述说可以作用于指定方法上   但是TPSLimiter默认实现DefaultTPSLimiter只作用于 key=tps (也就是只作用于单个service上) 因为在方法上配置tps最终在URL中生成的是methodName.tps  各位大佬请教一下哇 @beiwei30 


int port = url.getPort();
        String path = url.getPath();
        Map<String, String> parameters = new HashMap<>(url.getParameters());
        Map<String, Object> attributes = new HashMap<>(url.getAttributes());
        return new URLBuilder(
                protocol,
                username,
                password,
                host,
                port,
                path,
                parameters,
                attributes);
    }
    public ServiceConfigURL build() {
        if (StringUtils.isEmpty(username) && StringUtils.isNotEmpty(password)) {
            throw new IllegalArgumentException("Invalid url, password without username!");
        }
        port = Math.max(port, 0);
        
        int firstNonSlash = 0;
        if (path != null) {
            while (firstNonSlash < path.length() && path.charAt(firstNonSlash) == '/') {
                firstNonSlash++;
            }
            if (firstNonSlash >= path.length()) {
                path = "";
            } else if (firstNonSlash > 0) {
                path = path.substring(firstNonSlash);
            }