Skip to content

Latest commit

 

History

History
56 lines (45 loc) · 1.57 KB

README.md

File metadata and controls

56 lines (45 loc) · 1.57 KB

Maigo-RPC

A simple RPC framework base on Netty and KryoSerializer.

Usage 1.Start up the server.

JUnitTestInterfaceImpl jUnitTestInterfaceImpl = new JUnitTestInterfaceImpl();
RpcServer rpcServer = RpcServerBuilder.create()
			 	.serviceInterface(JUnitTestInterface.class)
			  	.serviceProvider(jUnitTestInterfaceImpl)
			  	.threads(4)
			  	.bind(3721)
			  	.build();
rpcServer.start();

2.Use in sync way - Build a client proxy

JUnitTestInterface jUnitTestInterface = 
	RpcClientProxyBuilder.create(JUnitTestInterface.class)
	.timeout(2000)
	.threads(4)
	.hook(hook)
	.connect("127.0.0.1", 3721)
	.build();

jUnitTestInterface.methodWithoutArg();
jUnitTestInterface.methodWithArgs("age", 23);
......(use the client proxy just as a simple proxy object)

3.Also support async way - Build an async client proxy. RpcFuture can be used to get result or exception by call RpcFuture.get() or RpcFuture.setRpcFutureListener()

rpcClientAsyncProxy = RpcClientProxyBuilder.create(JUnitTestInterface.class)
	.timeout(2000)
	.threads(4)
	.hook(hook)
	.connect("127.0.0.1", 3721)
	.buildAsyncProxy();

RpcFuture rpcFuture = rpcClientAsyncProxy.call("methodDelayOneSecond");
rpcFuture.setRpcFutureListener(new RpcFutureListener() 
	{			
		public void onResult(Object result) 
		{
			System.out.println("onResult:"+result);
		}
		
		public void onException(Throwable throwable) 
		{
			System.out.println("onException:"+throwable);
		}
	});
String result = rpcFuture.get();

more usage can be seen in com.maigo.rpc.test package