Netty4 + zookeeper rpc 简化版框架(仿dubbo)   

通过本程序你可以了解:

  • netty传输实体对象
  • zookeeper做服务注册以及服务发现
  • netty同步调用原理

使用步骤如下:

定义接口(服务端和客户端共用一份):

public interface HelloService { 
    String hello(String name); 
}

定义接口实现类,并加上@RpcService注解,在服务端实现

@RpcService(HelloService.class)
public class HelloServiceImpl implements HelloService {
    @Override
    public String hello(String name) {
        return "Hello! " + name;
    }        
}

客户端调用代码

ServiceDiscovery serviceDiscovery = new ServiceDiscovery("127.0.0.1:2181");
final RpcClient rpcClient = new RpcClient(serviceDiscovery);
HelloService helloService = rpcClient.create(HelloService.class);
String result = helloService.hello("World");