Closed loongs-zhang closed 2 years ago
Service provider interface with customed thread pool, is it? https://www.sofastack.tech/projects/sofa-rpc/custom-threadpool/
额,主要关心消费方
发自我的iPhone
------------------ 原始邮件 ------------------ 发件人: Duan @.> 发送时间: 2022年3月28日 13:02 收件人: sofastack/sofa-rpc @.> 抄送: dragon-zhang @.>, Author @.> 主题: Re: [sofastack/sofa-rpc] 消费端如何自定义业务线程池? (Issue #1186)
这个是服务提供方的自定义线程池: https://www.sofastack.tech/projects/sofa-rpc/custom-threadpool/
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>
@dragon-zhang 消费方使用的是业务当前线程,不存在自定义线程池的概念
了解了,感谢
发自我的iPhone
------------------ 原始邮件 ------------------ 发件人: JervyShi @.> 发送时间: 2022年3月28日 19:27 收件人: sofastack/sofa-rpc @.> 抄送: dragon-zhang @.>, Mention @.> 主题: Re: [sofastack/sofa-rpc] 消费端如何自定义业务线程池? (Issue #1186)
@dragon-zhang 消费方使用的是业务当前线程,不存在自定义线程池的概念
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.Message ID: @.***>
在问个问题,如果是异步调用,走的哪个线程?
发自我的iPhone
------------------ 原始邮件 ------------------ 发件人: JervyShi @.> 发送时间: 2022年3月28日 19:27 收件人: sofastack/sofa-rpc @.> 抄送: dragon-zhang @.>, Mention @.> 主题: Re: [sofastack/sofa-rpc] 消费端如何自定义业务线程池? (Issue #1186)
@dragon-zhang 消费方使用的是业务当前线程,不存在自定义线程池的概念
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.Message ID: @.***>
这个要看你指的是哪种异步了,如果是指的 SOFA-RPC 的 Async 调用模式,类似 https://github.com/sofastack/sofa-rpc/blob/master/example/src/test/java/com/alipay/sofa/rpc/invoke/future/FutureClientMain.java 依然可以在当前线程中获取 Async 的响应结果。 如果指的是自己通过线程池异步触发 RPC 调用,那么发起方是你的自定义线程池的线程。 当然这里指的是调用端视角,RPC 本身的工作机制其实是纯异步的,请求发起后,response 返回的时候其实是有另外一个线程池在负责接受请求并和请求发起线程交互返回结果,这个在 sofa-rpc 这里目前暂不支持自定义。
您好,我指的是INVOKER_TYPE_CALLBACK这种异步,比如https://github.com/sofastack/sofa-rpc/blob/master/example/src/test/java/com/alipay/sofa/rpc/invoke/callback/CallbackClientMain.java,这个应该是借助了netty的io线程吧
------------------ 原始邮件 ------------------ 发件人: "sofastack/sofa-rpc" @.>; 发送时间: 2022年3月31日(星期四) 中午11:32 @.>; @.**@.>; 主题: Re: [sofastack/sofa-rpc] 消费端如何自定义业务线程池? (Issue #1186)
这个要看你指的是哪种异步了,如果是指的 SOFA-RPC 的 Async 调用模式,类似 https://github.com/sofastack/sofa-rpc/blob/master/example/src/test/java/com/alipay/sofa/rpc/invoke/future/FutureClientMain.java 依然可以在当前线程中获取 Async 的响应结果。 如果指的是自己通过线程池异步触发 RPC 调用,那么发起方是你的自定义线程池的线程。 当然这里指的是调用端视角,RPC 本身的工作机制其实是纯异步的,请求发起后,response 返回的时候其实是有另外一个线程池在负责接受请求并和请求发起线程交互返回结果,这个在 sofa-rpc 这里目前暂不支持自定义。
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.Message ID: @.***>
不是Netty的io线程,INVOKER_TYPE_CALLBACK异步使用了SOFA-RPC定义的callBack线程池,见AsyncRuntime和RpcInvokerCallbackListener.onResponse()
十分感谢
发自我的iPhone
------------------ 原始邮件 ------------------ 发件人: MingJunDuan @.> 发送时间: 2022年3月31日 18:45 收件人: sofastack/sofa-rpc @.> 抄送: dragon-zhang @.>, Mention @.> 主题: Re: [sofastack/sofa-rpc] 消费端如何自定义业务线程池? (Issue #1186)
不是Netty的io线程,INVOKER_TYPE_CALLBACK异步使用了SOFA-RPC定义的callBack线程池,见AsyncRuntime和RpcInvokerCallbackListener.onResponse()
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.Message ID: @.***>
不是Netty的io线程,INVOKER_TYPE_CALLBACK异步使用了SOFA-RPC定义的callBack线程池,见AsyncRuntime和RpcInvokerCallbackListener.onResponse()
看了下com.alipay.sofa.rpc.context.AsyncRuntime
没有提供setAsyncThreadPool
方法,虽然可以通过反射
的方式来强行设置,但还是想了解下,出于什么考虑,不提供setAsyncThreadPool
方法。
可以自行设置线程池core、max、队列大小参数,目前没有setAsyncThreadPool方法
可以自行设置线程池core、max、队列大小参数,目前没有setAsyncThreadPool方法
是否可以提个PR,来提供setAsyncThreadPool
方法呢?
让用户自定义线程池类型
,应该是个合理的需求吧?
期待您的回复。
目前AsyncThreadPool除了callBack有用到,EventBus、ConnectionHolder也使用到,改动需要仔细斟酌。
收到,谢谢
我觉得异步回调线程池参数可配置化已经够用了,如果采用自定义共享线程池会存在其他问题的,比如说资源争抢,优先级混乱
Your question
消费端如何自定义业务线程池?
Your scenes
网关中间件做协议兼容时,对所有RPC框架想用同一个自定义的共享线程池,以提高线程池资源利用率。
Your advice
提供一个类似
dubbo
的线程池SPI扩展
。Environment
java -version
): 1.8uname -a
):