Hadoop RPC系统


与别的RPC系统相似(主要对比Thrift) Hadoop中也分为了序列化(Transport)、函数调用(Protocol)、传输(Server)和处理(Processor)四层.

序列化层将Request与Response转成字节流便于网络传输

函数调用层

传输层描述Client和Server之间通信方式  也就是TCP Socket

处理层

Client将要调用的方法与方法的参数包装成Request发送到Server

Server接收到请求、解析Request并在Server端处理再将结果封装成Response返回给Client

想到曾经有人问过为啥Hadoop不使用开源的RPC系统  我猜是因为Hadoop项目组高手如云 显然是不屑于使用别人写的东西

org.apache.hadoop.ipc包下面的java文件就是Hadoop

25160649_ipBU.jpg

Hadoop RPC Server中主要含有Listener、Responder和Handler三部分


Hadoop RPC Server中只有一个Listener作为Acceptor接受Client连接

Listener中含有一组Reader用来处理Client连接  每一个Reader即是一个线程

依顺序轮训reader数组  选出一个reader用来处理listener的事件

    currentReader = (currentReader + 1) % readers.length;
    return readers[currentReader];


CallQueueManager作为Hadoop RPC队列抽象,

createCallQueueInstance方法构建了BlockingQueue用来存储事件







转载于:https://my.oschina.net/darionyaphet/blog/371552

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值