wdinghua commented on issue #11524: URL: https://github.com/apache/dubbo/issues/11524#issuecomment-1436556267
> 这个问题是不是通过 3.2 的线程池隔离方案来解好些 能否在3.0和3.1版本修复一下这个问题,补充一些信息: 1. provider 在受理 consumer 的调用请求时,获取 ExecutorService 时,使用的是构造 ChannelHandler 时传入的 url ,该url是 StandardMetadataServiceURLBuilder 生成的,而StandardMetadataServiceURLBuilder生成url时定死了thread pool的相关参数 代码截图 <img width="854" alt="image" src="https://user-images.githubusercontent.com/17840144/220053698-30964ef1-7322-4391-b207-d817987e738d.png"> <img width="721" alt="image" src="https://user-images.githubusercontent.com/17840144/220053954-14e9df5c-7446-44b4-95bb-a62e8701e9b1.png"> <img width="916" alt="image" src="https://user-images.githubusercontent.com/17840144/220054256-dd478199-0381-4c75-bb52-5875036a9b41.png"> 调用证明: provider 在受理 processAudioUpdate4Cache 调用时,使用 MessageOnlyChannelHandler 受理请求,MessageOnlyChannelHandler 初始化的 url 是 StandardMetadataServiceURLBuilder 生成的(url中参数为:threadpool=cached&threads=100) > [arthas@7364]$ tt -i 1226 INDEX 1226 GMT-CREATE 2023-02-20 15:52:21 COST(ms) 0.014597 OBJECT 0x30779ea6 CLASS org.apache.dubbo.remoting.transport.dispatcher.message.MessageOnlyChannelHandler METHOD received IS-RETURN true IS-EXCEPTION false PARAMETERS[0] @NettyChannel[ logger=@FailsafeErrorTypeAwareLogger[org.apache.dubbo.common.logger.support.FailsafeErrorTypeAwareLogger@374e1a30], CHANNEL_MAP=@ConcurrentHashMap[isEmpty=false;size=12], channel=@NioSocketChannel[[id: 0x1679b9a9, L:/xx.xx.xx.152:9034 - R:/xx.xx.xx.183:25492]], attributes=@ConcurrentHashMap[isEmpty=false;size=3], active=@AtomicBoolean[true], handler=@NettyServer[org.apache.dubbo.remoting.transport.netty4.NettyServer@2c827a42], url=@ServiceConfigURL[dubbo://xx.xx.xx.152:9034/org.apache.dubbo.metadata.MetadataService?accepts=1500&accesslog=false&anyhost=true&application=xxxxxx&background=false&bind.ip=xx.xx.xx.1 52&bind.port=9034&channel.readonly.sent=true&client=netty4&codec=dubbo&connections=1&corethreads=2&delay=0&deprecated=false&dispatcher=message&dubbo=2.0.2&dynamic=true&executes=100&generic=false&getAndList enInstanceMetadata.1.callback=true&getAndListenInstanceMetadata.return=true&getAndListenInstanceMetadata.sent=true&group=xxxxxx&heartbeat=60000&interface=org.apache.dubbo.metadata.MetadataSe rvice&methods=exportInstanceMetadata,getAndListenInstanceMetadata,getExportedServiceURLs,getExportedURLs,getExportedURLs,getExportedURLs,getExportedURLs,getExportedURLs,getInstanceMetadataChangedListenerMa p,getMetadataInfo,getMetadataInfos,getMetadataURL,getServiceDefinition,getServiceDefinition,getSubscribedURLs,isMetadataService,serviceName,toSortedStrings,toSortedStrings,version&pid=7364&qos.accept.forei gn.ip=false&qos.enable=true&qos.port=20034®ister=false&release=3.1.6&revision=3.1.6&rootPath=/dubbo-build&server=netty4&side=provider&threadname=protocol_thread-xx.xx.xx.152:9034&threadpool=cached&threa ds=100×tamp=1676875328236&transporter=netty4&version=1.0.0], closing=@Boolean[false], closed=@Boolean[false], ] PARAMETERS[1] @Request[ INVOKE_ID=@AtomicLong[2219], mId=@Long[3153229], mVersion=@String[2.0.2], mTwoWay=@Boolean[true], mEvent=@Boolean[false], mBroken=@Boolean[false], mData=@DecodeableRpcInvocation[RpcInvocation [methodName=processAudioUpdate4Cache, parameterTypes=[class java.lang.String, class java.lang.String, class java.lang.String]]], ] RETURN-OBJ null Affect(row-cnt:1) cost in 1 ms. [arthas@7364]$ tt -i 1226 -w target @MessageOnlyChannelHandler[ logger=@FailsafeErrorTypeAwareLogger[org.apache.dubbo.common.logger.support.FailsafeErrorTypeAwareLogger@1047a48], handler=@DecodeHandler[org.apache.dubbo.remoting.transport.DecodeHandler@50e9124f], url=@ServiceConfigURL[dubbo://xx.xx.xx.152:9034/org.apache.dubbo.metadata.MetadataService?accepts=1500&accesslog=false&anyhost=true&application=xxxxxx&background=false&bind.ip=xx.xx.xx.152&bind.port=9034&channel.readonly.sent=true&client=netty4&codec=dubbo&connections=1&corethreads=2&delay=0&deprecated=false&dispatcher=message&dubbo=2.0.2&dynamic=true&executes=100&generic=false&getAndListenInstanceMetadata.1.callback=true&getAndListenInstanceMetadata.return=true&getAndListenInstanceMetadata.sent=true&group=xxxxxx&heartbeat=60000&interface=org.apache.dubbo.metadata.MetadataService&methods=exportInstanceMetadata,getAndListenInstanceMetadata,getExportedServiceURLs,getExportedURLs,getExportedURLs,getExportedURLs,getExportedURLs,getExportedURLs,getInstanceMetadataChangedListenerMap,getMetadataInfo,getMetadataInfos,getMetadataURL,getServiceDefinition,getServiceDefinition,getSubscribedURLs,isMetadataService,serviceName,toSortedStrings,toSortedStrings,version&pid=7364&qos.accept.forei gn.ip=false&qos.enable=true&qos.port=20034®ister=false&release=3.1.6&revision=3.1.6&rootPath=/dubbo-build&server=netty4&side=provider&threadname=protocol_thread&threadpool=cached&threads=100×tamp=1676875328236&transporter=netty4&version=1.0.0], ] Affect(row-cnt:1) cost in 1 ms. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
