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”

posted @   Tom19971220  阅读(8)  评论(0编辑  收藏  举报  
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
个人网站
点击右上角即可分享
微信分享提示