Hadoop源码分析之IPC中Server端的初始化与启动

在上一篇文章Hadoop源码分析之IPC机制中分析了Hadoop IPC中客户端与服务器端交互示例,现在从服务器端的角度来分析服务器端的初始化及启动过程

Hadoop IPC的代码结构

在org.apache.hadoop.ipc包中有如下几个Java文件:

  • Client.java 包含了与IPC客户端相关的代码
  • ConnectionHeader.java 包含了IPC中客户端与服务器建立连接时发送的消息头
  • RemoteException.java 远程异常,应用与IPC客户端,表示远程过程调用的错误
  • RPC.java 包含了实现客户端和服务器端的相关代码,在Client.java和Server.java基础上实现了IPC
  • Server.java 包含了与IPC服务器相关的代码
  • Status.java 枚举类,定义了远程过程调用的返回结果,包括SUCCESS、ERROR和FATAL三种情况
  • VersionedProtocol.java 远程接口,IPC的远程接口都必须继承这个接口

这篇文章主要分析与服务器相关的代码,主要的代码在Server.java和RPC.java这两个文件中。

Server端的初始化

在示例的服务器端代码中有这么一行代码

 Server server = RPC.getServer(queryService, "0.0.0.0", IPC_PORT,  1, true, conf);

这行代码即执行了Server的初始化,在服务器端创建了一个Server对象。Server.getServer()共有三个重载方法

getServer()方法有三个重载方法,分别为:

  /** Construct a server for a protocol implementation instance listening on a
   * port and address.<br/> 
   * @param instance 所要调用接口的实例,即IPC方法调用的目标
   * @param bindAddress 服务器端绑定的IP地址 
   * @param port 监听端口
   * @param conf 配置Server对象的配置参数
   * */
  public static Server getServer(final Object instance, final String bindAddress, final int port, Configuration conf) 
    throws IOException {
    return getServer(instance, bindAddress, port, 1, false, conf);
  }

  /** Construct a server for a protocol implementation instance listening on a
   * port and address. 
   * @see #getServer(Object, String, int, Configuration)
   * @param numHandlers 处理器线程的个数,即Server端的Handler实例(线程)的个数
   * @param verbose 是否打开调用方法日志
   * */
  public static Server getServer(final Object instance, final String bindAddress, final int port,
                                 final int numHandlers,
                                 final boolean verbose, Configuration conf) 
    throws IOException {
    return getServer(instance, bindAddress, port, numHandlers, verbose, conf, null);
  }

  /** Construct a server for a protocol implementation instance listening on a
   * port and address, with a secret manager. 
   * @see #getServer(Object, String, int,
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值