rpc hadoop
来源:互联网 发布:最小公倍数算法流程图 编辑:程序博客网 时间:2024/05/02 02:10
RPC概念:
Remote Procedure Call ,远程过程调用,也就是说,调用过程代码不是在调用者本地运行,而是要实现调用者与被调用者二者之间的链接与通信形式
RPC的基本通信模型是基于Client/Server进程间星湖通信的一种同步通信形式,他对Client提供了远程服务的过程抽象,其底层消息传递操作对Client是透明
的。在RPC中,client即是请求服务调用者,而server则是Client的请求而被调用的程序。
RPC协议图:
首先是建立RPC服务,约定底层的RPC传输通道(UDP或者是TCP).客户端的调用参数根据传输前所提供的目的地址及RPC上层应用程序号,通过
底层传输通道转至相应的服务器,即RPC application programme server.客户端随机处于等待状态,以服务器等待应答或者TimeOut超时信号。
当服务器获得了请求消息,会根据注册RPC时告诉RPC系统的程序入口地址执行相应的操作,并将结果返回到客户端。当一次RPC调用结束后,相应
线程发送相应的信号,客户端程序编继续运行。
hadoop中对rpc的实现
客户端代码
package cn.itcast.rpc;
import java.io.IOException;
import java.net.InetSocketAddress;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.ipc.RPC;
/**
* 客户端获得业务类的动态代理对象
* @author Administrator
*
*/
public class RPCClient {
public static void main(String[] args) throws IOException {
Bizable proxy = RPC.getProxy(Bizable.class, 12120L, new InetSocketAddress("192.168.80.100",9527), new Configuration());
String name = proxy.sayHi("Kitty");
System.out.println(name);
}
}
客户端代码
package cn.itcast.rpc;
import java.io.IOException;
import org.apache.hadoop.HadoopIllegalArgumentException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.ipc.RPC;
import org.apache.hadoop.ipc.RPC.Server;
/**
* 服务器端
* @author Administrator
*
*/
public class RPCServer implements Bizable{
public static void main(String[] args) throws Exception{
Server server = new RPC.Builder(new Configuration()).setInstance(new RPCServer()).setProtocol(Bizable.class).setBindAddress("192.168.80.100").setPort(9527).build();
server.start();
}
@Override
public String sayHi(String name) {
return "hello "+ name;
}
}
业务接口
package cn.itcast.rpc;
/**
* 服务器端与客户端都必须要实现的业务接口
* @author Administrator
*
*/
public interface Bizable {
//版本号
public static final long versionID = 12120L;
public String sayHi(String name);
}
0 0
- hadoop RPC
- hadoop RPC
- Hadoop RPC
- Hadoop RPC
- Hadoop RPC
- rpc hadoop
- Hadoop RPC
- Hadoop RPC
- hadoop rpc
- Hadoop RPC
- Hadoop RPC
- Hadoop RPC
- Hadoop RPC
- hadoop rpc
- hadoop RPC
- hadoop RPC
- <hadoop>hadoop RPC框架
- Hadoop RPC 实例
- java中的instanceof用法
- 黑马程序员-银行窗口系统
- 指针的命名
- 软考之数据结构
- 程序员求职之道(《程序员面试笔试宝典》)之面试官箴言?
- rpc hadoop
- POJ 1575 Easier Done Than Said? (简单模拟)
- 程序员求职之道(《程序员面试笔试宝典》)之优秀程序员应该具备哪些素质?
- 闲评好声音那英及杨坤组决赛
- 5款备受关注的开源NoSQL数据库
- 程序员求职之道(《程序员面试笔试宝典》)之海量数据处理(排序问题)?
- 网易2012校园招聘笔试题目
- Check if a binary tree is subtree of another binary tree
- Fixtures在Django测试中的使用