赞
踩
提示:阅读本文前最好先阅读:
在《spark2.1.0之源码分析——RPC传输管道处理器详解》一文中详细介绍了TransportRequestHandler。
由于TransportRequestHandler实际是把请求消息交给RpcHandler进一步处理的,所以这里对RpcHandler首先做个介绍。RpcHandler是一个抽象类,定义了一些RPC处理器的规范,其主要实现见代码清单1。
代码清单1 RpcHandler的实现
- public abstract class RpcHandler {
-
- private static final RpcResponseCallback ONE_WAY_CALLBACK = new OneWayRpcCallback();
-
- public abstract void receive(
- TransportClient client,
- ByteBuffer message,
- RpcResponseCallback callback);
-
- public abstract StreamManager getStreamManager();
-
- public void receive(TransportClient client, ByteBuffer message) {
- receive(client, message, ONE_WAY_CALLBACK);
- }
-
- public void channelActive(TransportClient client) { }
-
- public void channelInactive(TransportClient client) { }
-
- public void exceptionCaught(Throwable cause, TransportClient client) { }
-
- private static class OneWayRpcCallback implements RpcResponseCallback {
-
- private static final Logger logger = LoggerFactory.getLogger(OneWayRpcCallback.class);
-
- @Override
- public void onSuccess(ByteBuffer response) {
- logger.warn("Response provided for one-way RPC.");
- }
-
- @Override
- public void onFailure(Throwable e) {
- logger.error("Error response provided for one-way RPC.", e);
- }
-
- }
-
- }

代码清单1中RpcHandler的各个方法的作用如下:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。