dubbo
dubbo copied to clipboard
[Bug] all channels of the EventLoop delay time
Pre-check
- [X] I am sure that all the content I provide is in English.
Search before asking
- [X] I had searched in the issues and found no similar issues.
Apache Dubbo Component
Java SDK (apache/dubbo)
Dubbo Version
dubbo 3.2.12
Steps to reproduce this issue
org.apache.dubbo.remoting.transport.netty4.NettyConnectionClient.ConnectionListener#operationComplete
final EventLoop loop = future.channel().eventLoop();
loop.schedule(
() -> {
try {
connectionClient.doConnect();
} catch (RemotingException e) {
LOGGER.error(
TRANSPORT_FAILED_RECONNECT,
"",
"",
"Failed to connect to server: " + getConnectAddress());
}
},
1L,
TimeUnit.SECONDS);
connectionClient Always fails to connect, default connection wait time is 3 seconds. This will occupy the EventLoop CPU from time to time, and indirectly affect the communication of other registered EventLoop channels. Sometimes there may be a request timeout.
- The server receives the request with a delay.Timely
- server execution is short, client still sometimes timeout.
What you expected to happen
-
Simply handle the connection and wait only for a shorter period of time. For example, 500ms, this way, has been provided. The dead loop body occupies the EventLoop for a long time.
-
It is recommended to add a user thread instead of the EventLoop
Anything else
No response
Are you willing to submit a pull request to fix on your own?
- [X] Yes I am willing to submit a pull request on my own!
Code of Conduct
- [X] I agree to follow this project's Code of Conduct
@icodening PTAL
Same as #13041. Welcome to submit PR
I'm willing to do it ,pls assign to me.
I'm willing to do it ,pls assign to me.
We have a PR related with this issue. For further improvement, we need to consider use async connection future instead of sync. But this may cause a lot of changes in Dubbo. And would you like to work for it?
I'm willing to do it ,pls assign to me.
We have a PR related with this issue. For further improvement, we need to consider use async connection future instead of sync. But this may cause a lot of changes in Dubbo. And would you like to work for it?我们有一个与此问题相关的 PR。为了进一步改进,我们需要考虑使用异步连接 future 而不是同步。但这可能会导致Dubbo发生很多变化。你愿意为此工作吗?
Should we close this issue and create a new feature to describe this functionality?
I'm willing to do it ,pls assign to me.
We have a PR related with this issue. For further improvement, we need to consider use async connection future instead of sync. But this may cause a lot of changes in Dubbo. And would you like to work for it?我们有一个与此问题相关的 PR。为了进一步改进,我们需要考虑使用异步连接 future 而不是同步。但这可能会导致Dubbo发生很多变化。你愿意为此工作吗?
Should we close this issue and create a new feature to describe this functionality?
Here you go