Skip to content

gitstudy007/NettyRpc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

15 Commits

Repository files navigation

NettyRpc

An RPC framework based on Netty, ZooKeeper and Spring
中文详情:Chinese Details

Features:

  • Simple code and framework
  • Non-blocking asynchronous call and Synchronous call support
  • Long lived persistent connection
  • High availability, load balance and failover
  • Service Discovery support by ZooKeeper

How to use

  1. Define an interface:

     public interface HelloService{String hello(String name); String hello(Person person)} 
  2. Implement the interface with annotation @RpcService:

     @RpcService(HelloService.class) public class HelloServiceImpl implements HelloService{@Override public String hello(String name){return "Hello! " + name} @Override public String hello(Person person){return "Hello! " + person.getFirstName() + " " + person.getLastName()} } 
  3. Run zookeeper

  4. Start server:

     RpcBootstrap 
  5. Use the client:

     ServiceDiscovery serviceDiscovery = new ServiceDiscovery("127.0.0.1:2181"); final RpcClient rpcClient = new RpcClient(serviceDiscovery); // Sync call HelloService helloService = rpcClient.create(HelloService.class); String result = helloService.hello("World"); // Async call IAsyncObjectProxy client = rpcClient.createAsync(HelloService.class); RPCFuture helloFuture = client.call("hello", "World"); String result = (String) helloFuture.get(3000, TimeUnit.MILLISECONDS); 

About

An RPC framework based on Netty, ZooKeeper and Spring

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java100.0%