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

### Environment

* Dubbo version: 2.6.4

### Steps to reproduce this issue

1. GenericService泛化调用
2. 使用oninvoke、onreturn、onthrow
3. FutureFilter无法正常回调

### Expected Result
StaticContext.getKey(invoker.getUrl(), invocation.getMethodName(), Constants.ON_INVOKE_METHOD_KEY)
返回
com.alibaba.boot.dubbo.demo.consumer.DemoService:1.0.0.sayHello.oninvoke.method

### Actual Result
StaticContext.getKey(invoker.getUrl(), invocation.getMethodName(), Constants.ON_INVOKE_METHOD_KEY)
返回
com.alibaba.boot.dubbo.demo.consumer.DemoService:1.0.0.$invoke.oninvoke.method

预期是：

```
        String methodName = invocation.getMethodName();
        if("$invoke".equals(methodName)) {
            Object[] arguments = invocation.getArguments();
            methodName = (String) arguments[0];
        }
```

private static final long serialVersionUID = -5864351140409987595L;
    /**
     * The {@link Protocol} implementation with adaptive functionality,it will be different in different scenarios.
     * A particular {@link Protocol} implementation is determined by the protocol attribute in the {@link URL}.
     * For example:
     *
     * <li>when the url is registry://224.5.6.7:1234/org.apache.dubbo.registry.RegistryService?application=dubbo-sample,
     * then the protocol is <b>RegistryProtocol</b></li>
     *
     * <li>when the url is dubbo://224.5.6.7:1234/org.apache.dubbo.config.api.DemoService?application=dubbo-sample, then
     * the protocol is <b>DubboProtocol</b></li>
     * <p>
     * Actually，when the {@link ExtensionLoader} init the {@link Protocol} instants,it will automatically wraps two
     * layers, and eventually will get a <b>ProtocolFilterWrapper</b> or <b>ProtocolListenerWrapper</b>