<dependency>
<groupId>org.apache.tajo</groupId>
<artifactId>tajo-core</artifactId>
<version>0.12.0</version>
</dependency>
properties
tajo.rpc.protocol.class=avro
tajo.rpc.client.class=org.apache.tajo.rpc.AsyncRpcClient
tajo.rpc.server.class=org.apache.tajo.rpc.AsyncRpcServer
avdl
protocol MyRpcServiceProtocol {
int add(int a, int b);
double multiply(double a, double b);
}
public class MyRpcServiceImpl implements MyRpcServiceProtocol {
@Override
public int add(int a, int b) {
return a + b;
}
@Override
public double multiply(double a, double b) {
return a * b;
}
}
public class RpcServerExample {
public static void main(String[] args) {
try {
Configuration conf = new Configuration();
MyRpcServiceImpl serviceImpl = new MyRpcServiceImpl();
TajoAsyncRpcServer rpcServer = new TajoAsyncRpcServer(conf, "localhost", 12345);
rpcServer.addHandler(MyRpcServiceProtocol.class, serviceImpl);
rpcServer.start();
} catch (Exception e) {
e.printStackTrace();
}
}
}
public class RpcClientExample {
public static void main(String[] args) {
try {
InetSocketAddress serverAddr = new InetSocketAddress("localhost", 12345);
TajoAsyncRpcClient rpcClient = new TajoAsyncRpcClient(new Configuration(), serverAddr);
MyRpcServiceProtocol proxy = rpcClient.getStub(MyRpcServiceProtocol.class);
int result1 = proxy.add(10, 20);
double result2 = proxy.multiply(3.14, 2.0);
System.out.println("Result1: " + result1);
System.out.println("Result2: " + result2);
rpcClient.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}