New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
线程池配置失效 #11524
Comments
看了下确实有这个问题,当启动时没有发布任何服务,而在运行时动态发布就可以复现了 |
最新发现,除了线程池配置,payload配置也失效。 |
这个问题是不是通过 3.2 的线程池隔离方案来解好些 |
改成默认就是 isolation 的配置,如果没有指定独立线程池就使用协议默认的,如果指定了就使用指定的。这样 internal 服务就可以直接使用特定的线程池去隔离 |
实测3.1.6版本已解决,但是线程池配置问题依旧存在。 |
这个配置只有 3.2 版本支持吗?看到还没有正式的发行版本。我们服务已经部署到生产上了,对稳定性要求较高。 |
接口级的应该也还好,或者可以配置下 metadata-report 为 remote |
能否在3.0和3.1版本修复一下这个问题,补充一些信息:
调用证明:
[arthas@7364]$ tt -i 1226 -w target |
这样的话是不是可以把改成 private String getExecutorKey(URL url) {
if (CONSUMER_SIDE.equalsIgnoreCase(url.getParameter(SIDE_KEY))) {
return CONSUMER_SHARED_EXECUTOR_SERVICE_COMPONENT_KEY;
}
return EXECUTOR_SERVICE_COMPONENT_KEY;
} |
Will be fixed in #11652 |
Dubbo version 3.1.8,现在的问题似乎反过来了:当dubbo.application.metadata-type=local,并且 |
@aamingaa PTAL |
是否应去掉 |
目前v3.1.8有问题,升级v3.1.10得到解决。 |
在通过 dubbo.protocol.threads 配置线程池数量后(包括其他线程池参数),会在某些情况下失效。
Environment
Steps to reproduce this issue
服务调用链路 A -> B -> C
所有服务配置线程池参数:
dubbo.protocol.threadpool=fixed
dubbo.protocol.threads=720
dubbo.protocol.corethreads=720
在服务 B 中编写一个Spring Bean,实现 InitializingBean (或 BeanNameAware 等)接口,在实现方法中调用服务 C 的接口,用于初始化一些数据
所有应用启动后,服务 A 调用服务 B 接口,观察服务B 的线程池
Expected Behavior
服务 B 的线程池
Actual Behavior
服务 B 的线程池
Analysis
例如在 Spring Bean 的生命周期初始化阶段发起 RPC 远程调用,也就是
ServiceBean#afterPropertiesSet
之前,由于configManager 不存在任何 serviceConfig,在未发布任何 provider 情况下,首先触发了DefaultApplicationDeployer#exportMetadataService()
方法,导致org.apache.dubbo.metadata.MetadataService
元数据接口被第一个 export ,之后走到DubboProtocol#openServer
方法,此时serverMap 为空,所以创建进入 createServer方法之后将 MetadataService 的 URL 注册到
org.apache.dubbo.remoting.transport.AbstractServer#url
中,最终将该 url 传递到了 ChannelHandler 中。
而在服务启动,接收请求后,获取 ExecutorService 时,由于是通过URL获取,所以取到 MetadataService 的线程池,而非 dubbo.protocol.threads 等参数配置的线程池
The text was updated successfully, but these errors were encountered: