首页 > 代码库 > RPC实验

RPC实验

package com.rpc;
import java.io.IOException;
import org.apache.hadoop.ipc.VersionedProtocol;
public interface MyRPCProtocol extends VersionedProtocol {
 public static final long versionID = 4L;
 
 String hello(String name);
}
class MyRPCProtocolImpl implements MyRPCProtocol {
 
 @Override
 public long getProtocolVersion(String arg0, long arg1) throws IOException {
  return MyRPCProtocol.versionID;
 }
 @Override
 public String hello(String name) {
  return "hello " + name;
 }
 
}
package com.rpc;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.ipc.RPC;
import org.apache.hadoop.ipc.RPC.Server;
public class MyServer {
 
 public static int PORT = 3333;
 
 public static void main(String[] args) throws Exception {
  final Server server = RPC.getServer(new MyRPCProtocolImpl(), "localhost", MyServer.PORT, new Configuration());
  server.start();
 }
 
}
package com.rpc;
import java.net.InetSocketAddress;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.ipc.RPC;
public class MyClient {
 
 public static void main(String[] args) throws Exception {
  final InetSocketAddress inetSocketAddress = new InetSocketAddress("localhost", MyServer.PORT);
  MyRPCProtocol rpc = (MyRPCProtocol)RPC.getProxy(MyRPCProtocol.class, MyRPCProtocol.versionID, inetSocketAddress, new Configuration());
  String str = rpc.hello("习大大");
  System.out.println(str);
  RPC.stopProxy(rpc);
 }
 
}

依赖包:hadoop-core-1.2.1、commons-configuration-1.6、commons-lang-2.4、commons-logging-1.1.1

RPC实验