RPC
rpc使用:
使用步骤:
(这里server就是被委托类 类似aop,只是前后的事情是server的连接网络,监听,关闭,流等等,最后调用反射调用)
- 定义rpc协议: //定义一个服务端接口(继承Versionedprotocol)
- 实现rpc协议: //实现一个服务端接口
- 实现一个rpc.server: 网络编程服务端监听客户端。
- 实现一个rpc client:rpc.proxy(cprotocol,versionID,addr,conf) //调用java的proxy=》
- 实现invoke 调用网络客户端传输,内容是远程调用的类参数信息等等,仅传输。 下面是详细的调用ipc.client.
抽象序列
上层抽象RPC总体描述:
通信:同步/异步 stub程序:相当’本地调用‘:参数/过程/返回值) 调度:请求和响应的调度
- 上层抽象RPCBinder:(抽象序列化引擎)
- 上层抽象hadoop.RPC: getProxy createServer getServer setEngine
- 上层抽象: 客户端根据协议实现proxy,调用代理方法invoke
- 上层抽象: 使用hadoop.ipc包中reactor模式架构,指定序列化引擎,定义基本reacotor架构 参考hadoop.ipc包
- 上层抽象: 序列化第三方作用socketChangel,和序列化实现
- 上层抽象: nio的socket Client
关于slider的rpc类图:
相关的slider rpc yarnclient的pb上层调用:
参考:
[http://www.jomolangma.com/?p=130] [http://blog.csdn.net/macyang/article/details/8284790] [http://book.51cto.com/art/201312/422048.htm] [http://fengshenwu.com/blog/category/bigdata/hadoop2yarn/]
[http://www.cnblogs.com/dycg/p/3934394.html]