AsyncRpcResult is introduced in 3.0.0 to replace RpcResult, and RpcResult is replaced with AppResponse:
AsyncRpcResult is the object that is actually passed in the call chain
AppResponse only simply represents the business result
The relationship between them can be described as follow, an abstraction of the definition of AsyncRpcResult:
Public class AsyncRpcResult implements CompletionStagejavax.servlet.AsyncContext in the Servlet 3.0.FutureAdapter.cancel(boolean)RpcContext.getObjectAttachment(String).AsyncRpcResult.getValue() is the actual type of the RPC method, not AppResponseExceptionFilter, for example.FutureAdapter was in dubbo-rpc-dubbo module,
considering some users will use this class directly, keep the package not changed.RemotingServer, each protocol holds one or more ProtocolServers(the number usually decides by port numbers),
while each ProtocolServer holds zero or one RemotingServer.Result.Copyright © 2011–2021 The Apache Software Foundation. All rights reserved.