Dubbo 2.7.13
consumer
ReferenceAnnotationBeanPostProcessor
1 | |
发送请求
同步、异步或Future之stack,异步不需要等待应答,直接应答null(客户端通过RpcContext.getContext().getCompletableFuture()获得结果)
1 | |
oneway之stack,不需要等待应答,直接构造空的应答
1 | |
接收应答
同步之stack,请求线程从queue里面获取ChannelEventRunnable并执行,然后获得返回结果
1 | |
Netty接收(NettyClientWorker-1-1)应答(同步),构建ChannelEventRunnable,提交给线程池(ThreadlessExecutor,其实是请求线程)处理,其实是放到queue,即结束。
1 | |
Netty接收(NettyClientWorker-1-1)应答(异步或Future),构建ChannelEventRunnable,提交给Dubbo线程池(DubboClientHandler-192.168.0.134:20880-thread-*)中处理,即结束。
1 | |
AsyncToSyncInvoker.java
1 | |
AbstractInvoker.java
1 | |
DubboInvoker.java
1 | |
ThreadlessExecutor.java
1 | |
RpcUtils.java
1 | |
DefaultFuture.java
1 | |
AsyncRpcResult.java
1 | |
AppResponse.java
1 | |
NettyClientHandler.java
创建DubboClientHandler线程池
用于应答处理,接管IO线程后续的任务。
默认线程池是CachedThreadPool,可以通过dubbo.consumer.threadpool自定义
1 | |
provider
Netty接收请求
由Netty的IO线程池(NettyServerWorker-3-2)处理,构建ChannelEventRunnable,提交由Dubbo线程池执行
1 | |
Dubbo线程池业务处理
DubboServerHandler-192.168.1.134:20880-thread-2
处理请求
1 | |
应答响应
1 | |
创建DubboServerHandler线程池
默认线程池是FixedThreadPool,可以通过dubbo.protocol.threadpool自定义
1 | |