hadoop中的RPC实现机制

不羁的心 提交于 2020-03-05 22:27:28

远程过程调用底层实现机制:

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!