hadoop中的RPC實現機制

遠程過程調用底層實現機制:java

1.生成調用端socket程序動態代理對象;node

2.經過proxy調用業務方法;linux

3.調用socket請求方法;windows

4.socket發送調用請求;框架

5.生成業務代理對像;socket

6.調用具體方法;ide

7.獲取調用結果;ui

8.socket返回調用結果;spa

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);
}
相關文章
相關標籤/搜索