b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

java重试机制代码设计 RPC原理及实例分析(8)

电脑杂谈  发布时间:2018-02-14 21:19:01  来源:网络整理

3.4 ipc.Server源码分析

为了让大家对ipc.Server有个初步的了解,我们先分析一下它的几个内部类吧:

Call :用于存储客户端发来的请求

Listener : 类,用于客户端发来的请求,同时Listener内部还有一个静态类,Listener.Reader,当器到用户请求,便让Reader读取用户请求。

Responder :响应RPC请求类,请求处理完毕,由Responder发送给请求客户端。

Connection :连接类,真正的客户端请求读取逻辑在这个类中。

Handler :请求处理类,会循环阻塞读取callQueue中的call对象,并对其进行操作。

private void initialize(Configuration conf) throws IOException {
   ??????
    // 创建 rpc server
    InetSocketAddress dnSocketAddr = getServiceRpcServerAddress(conf);
    if (dnSocketAddr != null) {
      int serviceHandlerCount =
        conf.getInt(DFSConfigKeys.DFS_NAMENODE_SERVICE_HANDLER_COUNT_KEY,
                    DFSConfigKeys.DFS_NAMENODE_SERVICE_HANDLER_COUNT_DEFAULT);
      //获得serviceRpcServer
      this.serviceRpcServer = RPC.getServer(this, dnSocketAddr.getHostName(), 
          dnSocketAddr.getPort(), serviceHandlerCount,
          false, conf, namesystem.getDelegationTokenSecretManager());
      this.serviceRPCAddress = this.serviceRpcServer.getListenerAddress();
      setRpcServiceServerAddress(conf);
}
//获得server
    this.server = RPC.getServer(this, socAddr.getHostName(),
        socAddr.getPort(), handlerCount, false, conf, namesystem
        .getDelegationTokenSecretManager());

   ??????
    this.server.start();  //启动 RPC server   Clients只允许连接该server
    if (serviceRpcServer != null) {
      serviceRpcServer.start();  //启动 RPC serviceRpcServer 为HDFS服务的server
    }
    startTrashEmptier(conf);
  }

查看Namenode初始化源码得知:RPC的server对象是通过ipc.RPC类的getServer()方法获得的。下面咱们去看看ipc.RPC类中的getServer()源码吧:


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-77937-8.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 一太郎
      一太郎

      军舰发动机造不出来

    • 始皇帝
      始皇帝

      在中国你不和政府好好关系

    热点图片
    拼命载入中...