大資料入門(7)RPC客戶端和RPC服務端通訊
RPC客戶端和RPC服務端通訊:
客戶端:(匯入jar:hdfs,common相關的)
LoginControl:
public class LoginControl {
public static void main(String[] args) throws IOException {
LoginService proxy = RPC.getProxy(LoginService.class, 1L, new InetSocketAddress("192.168.1.114", 10000), new Configuration());
String login = proxy.login("tom", "123456");
System.out.println("+++++++"+login);
}
}
LoginService :
public interface LoginService {
public static final long versionID = 1L;
public String login(String name,String pwd);
}
服務端:(匯入jar,xml檔案)
Start.java:
public class Start {
public static void main(String[] args) throws HadoopIllegalArgumentException, IOException {
Builder build = new RPC.Builder(new Configuration());
build.setBindAddress("192.168.1.114").setPort(10000).setProtocol(LoginService.class).setInstance(new LoginServiceImp());
Server server = build.build();
server.start();
}
}
LoginService.java
public interface LoginService {
public static final long versionID = 1L;
public String login(String name ,String pwd);
}
LoginServiceImp .java
public class LoginServiceImp implements LoginService {
@Override
public String login(String name, String pwd) {
// TODO Auto-generated method stub
String s = name +"------------successful-------- "+pwd;
return s;
}
}
注意:通訊的兩個包名字要相同,否則找不到檔案