标签:
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
标签:
原文地址:http://my.oschina.net/sniperLi/blog/359001