• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

深入解析MapReduce架构设计与实现原理–读书笔记(6)HadoopRPC概

mysql 搞代码 4年前 (2022-01-09) 27次浏览 已收录 0个评论

网络通信模块是分布式系统中最底层的模块。直接支撑了上层分布式环境下复杂的进程间通信(IPC)。是所有分布式系统的基

网络通信模块是分布式系统中最底层的模块。直接支撑了上层分布式环境下复杂的进程间通信(IPC)。是所有分布式系统的基础。远程过程调用RPC是一种常用的分布式网络通信协议。它允许运行于一台计算机的程序调用另外一台计算机的子程序,同时将网络的通信细节隐藏起来。
hadoop RPC特点
1.透明性
当用户在一台计算机的程序调用另外一台计算机上的子程序时,用户自身不会感觉到跨机器之间的调用。
2.高性能
hadoop的各个系统均采用Master/Slave结构,其中,Master实际是一个RPC Server,它负责处理集群中所有的slave发送的服务器请求。为了保证Master的并发能力,RPC Server应是一个高性能服务器,能够有效处理来自多个Client的并发RPC请求。
3.可控性
JDK自带了一个RPC框架RMI,但是hadoop考虑到其太重,所以并没有使用。而是完成了一个轻量级,高性能和可控性强的RPC框架。

hadoop RPC包括四个部分。序列化层,函数调用层,网络传输层,服务器端处理框架。
序列化层:将结构化对象专为字节流以便于通过网络进行传输或者写入持久存储。在RPC框架中,它主要用于将用户请求中的参数或者应答转化成字节流以便跨机器传输。
Hadoop自己实现了序列化框架,一个类只要实现Writable接口,即可支持对象序列化与反序列化。
函数调用层:定位要调用的函数并执行该函数。hadoop RPC采用java反射机制与动态代理实现了函数调用。
网络传输层:Client与Server之间消息传输的方式。Hadoop RPC采用了基于TCP/IP的Socket机制。
服务器端处理框架:网络IO模型。描述了客户端与服务器端信息交互的方式。它的设计直接决定着服务器端的并发处理能力。hadoop RPC采用了基于Reactor设计模式的事件驱动IO模型。

hadoop RPC分为2层。
第一层是一个基于Java NIO实现的客户机/服务器通信模型。
客户端将用本文来源gaodai#ma#com搞*!代#%^码网%户的调用方法及参数封装成请求包后发送到服务器端。服务器端收到请求包后,经解包、调用函数、打包结果等一系列操作后,将结果返回给服务器端。
第二层是供更上层程序直接调用的RPC接口,这些接口底层即为客户机/服务器通信模型。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:深入解析MapReduce架构设计与实现原理–读书笔记(6)HadoopRPC概
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址