hadoop中的RPC实现机制

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);
}