hadoop中的RPC实现机制
1.生成调用端socket程序动态代理对象;
2.通过proxy调用业务方法;
3.调用socket请求方法;
4.socket发送调用请求;
5.生成业务代理对像;
6.调用具体方法;
7.获取调用结果;
8.socket返回调用结果;
9.返回结果;
RPC代码实现
windows中java中的controller调用linux系统中的service
1.在linux系统中新建service的接口与实现类
public interface LoginServiceInterface{
public String login(String name,String passwod);
}
public class LoginServiceImp implements LoginServiceInterface{
@override
public String login(String name,String password){
return name + "登陆成功!"
}
}
2.新建一个框架把类发布服务
public class starter{
public static void main(String args[]){
Builder builder = new RPC.Builder(new Configuration());
builder.setBindAddress("node002").setPort(10000).setProtocol(LoginServiceInterface.Class).setInstance(new LoginServiceImp());
Service service = builder.build();
service.start();
}
}
3.windowsx下新建一个Controller,把LoginServiceInterface拷到此工程中
public class LoginController{
//获取代理
LoginServiceInterface proxy = RPC.getProxy(LoginServiceInterface.class,1L,newInetSocketAddress("node002",10000),new Configuration());
String res = proxy.login("tom","111");
System.out.println(res);
}