fix rest thread memory leak (#12842)

This commit is contained in:
suncairong163 2023-08-09 15:46:56 +08:00 committed by GitHub
parent f8e9d60a55
commit 757643cf8c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 5 additions and 2 deletions

View File

@ -28,12 +28,15 @@ import io.netty.handler.codec.http.HttpHeaders;
import org.apache.dubbo.common.URL;
import org.apache.dubbo.common.logger.ErrorTypeAwareLogger;
import org.apache.dubbo.common.logger.LoggerFactory;
import org.apache.dubbo.common.threadpool.ThreadPool;
import org.apache.dubbo.common.threadpool.manager.ExecutorRepository;
import org.apache.dubbo.common.utils.ExecutorUtil;
import org.apache.dubbo.rpc.protocol.rest.RestHeaderEnum;
import org.apache.dubbo.rpc.protocol.rest.deploy.ServiceDeployer;
import org.apache.dubbo.rpc.protocol.rest.handler.NettyHttpHandler;
import org.apache.dubbo.rpc.protocol.rest.request.NettyRequestFacade;
import static org.apache.dubbo.config.Constants.SERVER_THREAD_POOL_NAME;
public class RestHttpRequestDecoder extends MessageToMessageDecoder<io.netty.handler.codec.http.FullHttpRequest> {
private final ErrorTypeAwareLogger logger = LoggerFactory.getErrorTypeAwareLogger(getClass());
@ -48,7 +51,7 @@ public class RestHttpRequestDecoder extends MessageToMessageDecoder<io.netty.han
this.url = url;
this.serviceDeployer = serviceDeployer;
executor = url.getOrDefaultFrameworkModel().getExtensionLoader(ThreadPool.class).getAdaptiveExtension().getExecutor(url);
executor = ExecutorRepository.getInstance(url.getOrDefaultApplicationModel()).createExecutorIfAbsent(ExecutorUtil.setThreadName(url, SERVER_THREAD_POOL_NAME));
nettyHttpHandler = new NettyHttpHandler(serviceDeployer, url);
}