hadoop ipc原理简介

一、为什么不使用RMI

     最最主要还是因为RMI的可控性不够灵活,其次数据序列化格式不够精简。

     这两点可以在实际编程中慢慢体会,ipc例子可以在网上搜到。

二、主要技术元素

    包含四点:1、序列化对象(数据传输的核心)

                  2、反射

                  3、动态代理

                  4、Socket传输

三、原理

     主要说明实现原理,忽略网络异常处理机制、权限、版本校验。

     客户端调用远程方法时,通过动态代理运用反射机制将所需参数以及方法等封装成序列化对象通过Socket传输给服务端,在没有接受到返回值时一直Wait。服务端获取到序列化对象后通过反射机制调用指定的方法得到返回值,然后将返回值传输给客户端。客户端接受到返回值后被Notify。

四、代码

    主要分为Client 与Server。

    Client并不复杂,主要任务是封装方法参数,等待返回值。

    Server相对复杂一点,包含一个Listener、多个Reader、多个Handler、一个Responder,并使用了多路复用Selector机制。Listener复则接受来自各个客户端的连接请求,Reader负责读取客户端连接的数据并放入阻塞队列中供Handler处理,Handler从阻塞队列中获取数据解析成方法请求通过反射调用方法得到返回值后,将值放入阻塞队列中供Responder处理,Responder从阻塞队列中获取返回值后传输给客户端,至此整个流程完毕!

五、Hadoop ipc缺点

    不适合流式数据的传输,也不适合大数据的传输,鉴于此创建了一个流式RPC的组件,具体参考开源软件中的“流式RPC”

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值