# eyer **Repository Path**: dhd_index/eyer ## Basic Information - **Project Name**: eyer - **Description**: 使用java nio包 书写的RPC - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 15 - **Created**: 2015-11-20 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### 一个简单的服务 (单机版) public class TestServer { public static void main(String[] args) throws IOException { NioConfig.registered(new KryoSerializer()); final ServerHandler handler = new ServerHandler(); NioConfig.registered(handler); NioConfig.initSessionHandler(); //需要导出的服务接口 以及对应的实现类 handler.services.put(UserService.class, new RemoteUserService()); Server server = new Server(new InetSocketAddress("0.0.0.0",6161),new Acceptor("acceptor-1",new ReactorPool(1))); } } ### 服务引用 public class ProxyClientTest { public static void main(String[] args) throws Exception { NioConfig.registered(new KryoSerializer()); final Handler invocationHandler = new ClientHandler(); NioConfig.registered(invocationHandler); NioConfig.registered(new Connector("connector",new ReactorPool(1))); NioConfig.initSessionHandler(); URL url = new URL(); url.setHost("localhost"); url.setPort(6161); Invoker invoker = new SimpleInvoker(url,50); ProxyClient proxyClient = new ProxyClient(invoker); final AtomicLong counter = new AtomicLong(0); UserService userService = proxyClient.refService(UserService.class); userService.save(new User()); clientProxy.close(); } } ### 一个简单的服务 (zookeeper注册中心集群版) ###### 集群版本采用和dubbo一样的基于注册中心无状态的模式。可以说是精简版的dubbo public class ZookeeperServer { public static void main(String[] args) throws IOException { NioConfig.registered(new KryoSerializer()); final ServerHandler handler = new ServerHandler(); NioConfig.registered(handler); NioConfig.initSessionHandler(); handler.services.put(UserService.class, new RemoteUserService()); Server server = new Server(new InetSocketAddress("0.0.0.0", 6161), new Acceptor("acceptor-1", new ReactorPool(1))); ZooKeeperClient zooKeeperClient = new DefaultZookeeperClient("192.168.1.66:2181"); String format = "/eyer/" + URLEncoder.encode(String.format("rpc/%s:%s/Services", "localhost", 6161), "UTF-8"); zooKeeperClient.create(format, true); } } ### 服务引用 public class ZookeeperClient { public static void main(String[] args) throws Exception { NioConfig.registered(new KryoSerializer()); final Handler invocationHandler = new ClientHandler(); NioConfig.registered(invocationHandler); NioConfig.registered(new Connector("ZookeeperProxyServicePerf-connector-1",new ReactorPool(1))); NioConfig.initSessionHandler(); Invoker invoker = new ZookeeperInvoker("192.168.1.66:2181",new PollingBalance(),50); ProxyClient proxyClient = new ProxyClient(invoker); UserService userService = proxyClient.refService(UserService.class); System.out.println(save); clientProxy.close(); } }