类 RpcContext


  • public class RpcContext
    extends Object
    Thread local context. (API, ThreadLocal, ThreadSafe)

    Note: RpcContext is a temporary state holder. States in RpcContext changes every time when request is sent or received. For example: A invokes B, then B invokes C. On service B, RpcContext saves invocation info from A to B before B starts invoking C, and saves invocation info from B to C after B invokes C.

    另请参阅:
    ContextFilter
    • 方法详细资料

      • getServerContext

        public static RpcContext getServerContext()
        get server side context.
        返回:
        server context
      • removeServerContext

        public static void removeServerContext()
        remove server side context.
        另请参阅:
        ContextFilter
      • getContext

        public static RpcContext getContext()
        get context.
        返回:
        context
      • removeContext

        public static void removeContext()
        remove context.
        另请参阅:
        ContextFilter
      • getRequest

        public Object getRequest()
        Get the request object of the underlying RPC protocol, e.g. HttpServletRequest
        返回:
        null if the underlying protocol doesn't provide support for getting request
      • getRequest

        public <T> T getRequest​(Class<T> clazz)
        Get the request object of the underlying RPC protocol, e.g. HttpServletRequest
        返回:
        null if the underlying protocol doesn't provide support for getting request or the request is not of the specified type
      • setRequest

        public void setRequest​(Object request)
      • getResponse

        public Object getResponse()
        Get the response object of the underlying RPC protocol, e.g. HttpServletResponse
        返回:
        null if the underlying protocol doesn't provide support for getting response
      • getResponse

        public <T> T getResponse​(Class<T> clazz)
        Get the response object of the underlying RPC protocol, e.g. HttpServletResponse
        返回:
        null if the underlying protocol doesn't provide support for getting response or the response is not of the specified type
      • setResponse

        public void setResponse​(Object response)
      • isProviderSide

        public boolean isProviderSide()
        is provider side.
        返回:
        provider side.
      • isConsumerSide

        public boolean isConsumerSide()
        is consumer side.
        返回:
        consumer side.
      • getFuture

        public <T> Future<T> getFuture()
        get future.
        类型参数:
        T -
        返回:
        future
      • setFuture

        public void setFuture​(Future<?> future)
        set future.
        参数:
        future -
      • getUrls

        public List<URL> getUrls()
      • setUrls

        public void setUrls​(List<URL> urls)
      • getUrl

        public URL getUrl()
      • setUrl

        public void setUrl​(URL url)
      • getMethodName

        public String getMethodName()
        get method name.
        返回:
        method name.
      • setMethodName

        public void setMethodName​(String methodName)
      • getParameterTypes

        public Class<?>[] getParameterTypes()
        get parameter types.
      • setParameterTypes

        public void setParameterTypes​(Class<?>[] parameterTypes)
      • getArguments

        public Object[] getArguments()
        get arguments.
        返回:
        arguments.
      • setArguments

        public void setArguments​(Object[] arguments)
      • setLocalAddress

        public RpcContext setLocalAddress​(String host,
                                          int port)
        set local address.
        参数:
        host -
        port -
        返回:
        context
      • getLocalAddress

        public InetSocketAddress getLocalAddress()
        get local address.
        返回:
        local address
      • setLocalAddress

        public RpcContext setLocalAddress​(InetSocketAddress address)
        set local address.
        参数:
        address -
        返回:
        context
      • getLocalAddressString

        public String getLocalAddressString()
      • getLocalHostName

        public String getLocalHostName()
        get local host name.
        返回:
        local host name
      • setRemoteAddress

        public RpcContext setRemoteAddress​(String host,
                                           int port)
        set remote address.
        参数:
        host -
        port -
        返回:
        context
      • getRemoteAddress

        public InetSocketAddress getRemoteAddress()
        get remote address.
        返回:
        remote address
      • setRemoteAddress

        public RpcContext setRemoteAddress​(InetSocketAddress address)
        set remote address.
        参数:
        address -
        返回:
        context
      • getRemoteAddressString

        public String getRemoteAddressString()
        get remote address string.
        返回:
        remote address string.
      • getRemoteHostName

        public String getRemoteHostName()
        get remote host name.
        返回:
        remote host name
      • getLocalHost

        public String getLocalHost()
        get local host.
        返回:
        local host
      • getLocalPort

        public int getLocalPort()
        get local port.
        返回:
        port
      • getRemoteHost

        public String getRemoteHost()
        get remote host.
        返回:
        remote host
      • getRemotePort

        public int getRemotePort()
        get remote port.
        返回:
        remote port
      • getAttachment

        public String getAttachment​(String key)
        get attachment.
        参数:
        key -
        返回:
        attachment
      • setAttachment

        public RpcContext setAttachment​(String key,
                                        String value)
        set attachment.
        参数:
        key -
        value -
        返回:
        context
      • removeAttachment

        public RpcContext removeAttachment​(String key)
        remove attachment.
        参数:
        key -
        返回:
        context
      • getAttachments

        public Map<String,​String> getAttachments()
        get attachments.
        返回:
        attachments
      • setAttachments

        public RpcContext setAttachments​(Map<String,​String> attachment)
        set attachments
        参数:
        attachment -
        返回:
        context
      • clearAttachments

        public void clearAttachments()
      • remove

        public RpcContext remove​(String key)
        remove value.
        参数:
        key -
        返回:
        value
      • get

        public Object get​(String key)
        get value.
        参数:
        key -
        返回:
        value
      • isServerSide

        @Deprecated
        public boolean isServerSide()
        已过时。
        Replace to isProviderSide()
      • isClientSide

        @Deprecated
        public boolean isClientSide()
        已过时。
        Replace to isConsumerSide()
      • getInvoker

        @Deprecated
        public Invoker<?> getInvoker()
        已过时。
        Replace to getUrl()
      • getInvocation

        @Deprecated
        public Invocation getInvocation()
        已过时。
        Replace to getMethodName(), getParameterTypes(), getArguments()
      • asyncCall

        public <T> Future<T> asyncCall​(Callable<T> callable)
        Async invocation. Timeout will be handled even if Future.get() is not called.
        参数:
        callable -
        返回:
        get the return result from future.get()
      • asyncCall

        public void asyncCall​(Runnable runnable)
        one way async call, send request only, and result is not required
        参数:
        runnable -