Hadoop MapReduce核心技术浅析-----RPC框架解析

1. RPC框架概述

网络通信模块是分布式系统的底层模块,支撑了上层的进程间通信。在hadoop的分布式各个程序间的调用采用了RPC(Remote Procedure Call)是一种常用的网络通信协议。RPC其实就是将分布式环境下的两个程序间的调用的细节封装起来,用户操作起来和调用本地程序没区别。
在Hadoop架构中,master其实就是RPC server,其可以高效处理集群中所有slave节点的RPC请求。
RPC主要分为四个部分,分别是序列化层,函数调用层,网络传输层和服务器处理框架。
序列化层:在Hadoop中只需要实现Writable接口就额可以支持对象的序列化和反序列化,在Hadoop中,对象都是以字节流形式传递的。
函数调用层:函数调用主要通过java的反射机制和动态代理模式实现。
网络传输层:Hadoop RPC采用了socket通信
服务端处理框架:基于Reactor的事件驱动I/O模型,提高了服务器的并发能力。

2. Java基础

2.1 Java反射和动态代理

java反射是java的一个重要特性,同时也是动态代理实现的基础。
“代理”是一个常见的设计模式,是为别的对象提供代理来访问该对象。代理类负责在委托类调用前和执行后进行一些操作。
java动态代理使得用户通过简单指定一组接口及委托类对象,便能动态获得代理类。
在RPC中server要想调用client的一些方法,首先要实现client的代理类,然后再用实例化的代理类来调用对应的方法。

2.2 Java NIO

java NIO是jdk5.0提出的,意思是非阻塞IO(no  blocking IO),为了更好地理解NIO,我们先复习一下java 阻塞IO的模型
java 阻塞IO模型比较常见的就是服务器的传统socket通信,为了更好地服务客户端,服务器会为每个客户端建立一个线程,由于socket连接数有限,如果用户请求的并发数过高会导致无法响应用户请求,同时,由于socket采用阻塞IO,如果后端处理时间较长会导致









  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值