From 2fae220bd2d62c4e31f223ead2c0890028f3e5fc Mon Sep 17 00:00:00 2001 From: "shuang.kou" Date: Sun, 31 May 2020 20:05:48 +0800 Subject: [PATCH] [v3.0]use zookeeper save service address and reorganize the package structure --- README.md | 4 + .../github/javaguide/NettyClientMain.java | 9 +- .../RpcFrameworkSimpleClientMain.java | 4 +- .../github/javaguide/HelloServiceImpl2.java | 19 ---- .../github/javaguide/NettyServerMain.java | 10 +- .../RpcFrameworkSimpleServerMain.java | 10 +- ...1\345\235\227\344\273\213\347\273\215.png" | Bin 0 -> 203436 bytes pom.xml | 74 +++++++++++++ rpc-framework-common/pom.xml | 9 -- .../javaguide/utils/zk/CuratorHelper.java | 97 ++++++++++++++++++ .../RpcRequestHandler.java | 12 +-- .../javaguide/provider/ServiceProvider.java | 19 ++++ .../ServiceProviderImpl.java} | 18 ++-- .../{transport => proxy}/RpcClientProxy.java | 3 +- .../javaguide/registry/ServiceRegistry.java | 18 +++- .../javaguide/registry/ZkServiceRegistry.java | 41 ++++++++ .../javaguide/transport/ClientTransport.java | 2 + .../transport/netty/client/NettyClient.java | 6 +- .../client/NettyClientClientTransport.java | 11 +- .../transport/netty/server/NettyServer.java | 24 ++++- .../netty/server/NettyServerHandler.java | 2 +- .../transport/socket/SocketRpcClient.java | 16 ++- .../SocketRpcRequestHandlerRunnable.java | 2 +- .../transport/socket/SocketRpcServer.java | 26 ++++- .../registry/ZkServiceRegistryTest.java | 24 +++++ 25 files changed, 375 insertions(+), 85 deletions(-) delete mode 100644 example-server/src/main/java/github/javaguide/HelloServiceImpl2.java create mode 100644 "images/RPC\346\241\206\346\236\266\345\220\204\344\270\252\346\250\241\345\235\227\344\273\213\347\273\215.png" create mode 100644 rpc-framework-common/src/main/java/github/javaguide/utils/zk/CuratorHelper.java rename rpc-framework-simple/src/main/java/github/javaguide/{transport => handler}/RpcRequestHandler.java (82%) create mode 100644 rpc-framework-simple/src/main/java/github/javaguide/provider/ServiceProvider.java rename rpc-framework-simple/src/main/java/github/javaguide/{registry/DefaultServiceRegistry.java => provider/ServiceProviderImpl.java} (76%) rename rpc-framework-simple/src/main/java/github/javaguide/{transport => proxy}/RpcClientProxy.java (95%) create mode 100644 rpc-framework-simple/src/main/java/github/javaguide/registry/ZkServiceRegistry.java create mode 100644 rpc-framework-simple/src/test/java/github/javaguide/registry/ZkServiceRegistryTest.java diff --git a/README.md b/README.md index ca29546..c2406a3 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,6 @@ # guide-rpc-framework +## 项目模块介绍 + +![](./images/RPC框架各个模块介绍.png) + diff --git a/example-client/src/main/java/github/javaguide/NettyClientMain.java b/example-client/src/main/java/github/javaguide/NettyClientMain.java index dab5d56..ee05469 100644 --- a/example-client/src/main/java/github/javaguide/NettyClientMain.java +++ b/example-client/src/main/java/github/javaguide/NettyClientMain.java @@ -1,24 +1,21 @@ package github.javaguide; -import github.javaguide.transport.RpcClientProxy; import github.javaguide.transport.ClientTransport; +import github.javaguide.proxy.RpcClientProxy; import github.javaguide.transport.netty.client.NettyClientClientTransport; -import java.net.InetSocketAddress; - /** * @author shuang.kou * @createTime 2020年05月10日 07:25:00 */ public class NettyClientMain { public static void main(String[] args) { - ClientTransport rpcClient = new NettyClientClientTransport(new InetSocketAddress("127.0.0.1", 9999)); + ClientTransport rpcClient = new NettyClientClientTransport(); RpcClientProxy rpcClientProxy = new RpcClientProxy(rpcClient); HelloService helloService = rpcClientProxy.getProxy(HelloService.class); String hello = helloService.hello(new Hello("111", "222")); - System.out.println("上面的调用卡住之后,这里也不会调用了"); - helloService.hello(new Hello("111", "222")); //如需使用 assert 断言,需要在 VM options 添加参数:-ea assert "Hello description is 222".equals(hello); + String hello2 = helloService.hello(new Hello("111", "222")); } } diff --git a/example-client/src/main/java/github/javaguide/RpcFrameworkSimpleClientMain.java b/example-client/src/main/java/github/javaguide/RpcFrameworkSimpleClientMain.java index a98ff87..d4f1357 100644 --- a/example-client/src/main/java/github/javaguide/RpcFrameworkSimpleClientMain.java +++ b/example-client/src/main/java/github/javaguide/RpcFrameworkSimpleClientMain.java @@ -1,7 +1,7 @@ package github.javaguide; import github.javaguide.transport.ClientTransport; -import github.javaguide.transport.RpcClientProxy; +import github.javaguide.proxy.RpcClientProxy; import github.javaguide.transport.socket.SocketRpcClient; /** @@ -10,7 +10,7 @@ import github.javaguide.transport.socket.SocketRpcClient; */ public class RpcFrameworkSimpleClientMain { public static void main(String[] args) { - ClientTransport clientTransport = new SocketRpcClient("127.0.0.1", 9999); + ClientTransport clientTransport = new SocketRpcClient(); RpcClientProxy rpcClientProxy = new RpcClientProxy(clientTransport); HelloService helloService = rpcClientProxy.getProxy(HelloService.class); String hello = helloService.hello(new Hello("111", "222")); diff --git a/example-server/src/main/java/github/javaguide/HelloServiceImpl2.java b/example-server/src/main/java/github/javaguide/HelloServiceImpl2.java deleted file mode 100644 index 718f5e5..0000000 --- a/example-server/src/main/java/github/javaguide/HelloServiceImpl2.java +++ /dev/null @@ -1,19 +0,0 @@ -package github.javaguide; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * @author shuang.kou - * @createTime 2020年05月12日 17:36:00 - */ -public class HelloServiceImpl2 { - private static final Logger logger = LoggerFactory.getLogger(HelloServiceImpl2.class); - - public String hello(Hello hello) { - logger.info("HelloServiceImpl2收到: {}.", hello.getMessage()); - String result = "Hello description is " + hello.getDescription(); - logger.info("HelloServiceImpl2返回: {}.", result); - return result; - } -} diff --git a/example-server/src/main/java/github/javaguide/NettyServerMain.java b/example-server/src/main/java/github/javaguide/NettyServerMain.java index 33789ff..bfb017b 100644 --- a/example-server/src/main/java/github/javaguide/NettyServerMain.java +++ b/example-server/src/main/java/github/javaguide/NettyServerMain.java @@ -1,6 +1,5 @@ package github.javaguide; -import github.javaguide.registry.DefaultServiceRegistry; import github.javaguide.transport.netty.server.NettyServer; /** @@ -9,11 +8,8 @@ import github.javaguide.transport.netty.server.NettyServer; */ public class NettyServerMain { public static void main(String[] args) { - HelloServiceImpl helloService = new HelloServiceImpl(); - DefaultServiceRegistry defaultServiceRegistry = new DefaultServiceRegistry(); - // 手动注册 - defaultServiceRegistry.register(helloService); - NettyServer socketRpcServer = new NettyServer(9999); - socketRpcServer.run(); + HelloService helloService = new HelloServiceImpl(); + NettyServer nettyServer = new NettyServer("127.0.0.1", 9999); + nettyServer.publishService(helloService, HelloService.class); } } diff --git a/example-server/src/main/java/github/javaguide/RpcFrameworkSimpleServerMain.java b/example-server/src/main/java/github/javaguide/RpcFrameworkSimpleServerMain.java index 405c7a9..b8df33d 100644 --- a/example-server/src/main/java/github/javaguide/RpcFrameworkSimpleServerMain.java +++ b/example-server/src/main/java/github/javaguide/RpcFrameworkSimpleServerMain.java @@ -1,6 +1,5 @@ package github.javaguide; -import github.javaguide.registry.DefaultServiceRegistry; import github.javaguide.transport.socket.SocketRpcServer; /** @@ -9,11 +8,8 @@ import github.javaguide.transport.socket.SocketRpcServer; */ public class RpcFrameworkSimpleServerMain { public static void main(String[] args) { - HelloServiceImpl helloService = new HelloServiceImpl(); - DefaultServiceRegistry defaultServiceRegistry = new DefaultServiceRegistry(); - // 手动注册 - defaultServiceRegistry.register(helloService); - SocketRpcServer socketRpcServer = new SocketRpcServer(); - socketRpcServer.start(9999); + HelloService helloService = new HelloServiceImpl(); + SocketRpcServer socketRpcServer = new SocketRpcServer("127.0.0.1", 8080); + socketRpcServer.publishService(helloService,HelloService.class); } } diff --git "a/images/RPC\346\241\206\346\236\266\345\220\204\344\270\252\346\250\241\345\235\227\344\273\213\347\273\215.png" "b/images/RPC\346\241\206\346\236\266\345\220\204\344\270\252\346\250\241\345\235\227\344\273\213\347\273\215.png" new file mode 100644 index 0000000000000000000000000000000000000000..5244400c3b35d51bccc81a95edee4119bf15cbbb GIT binary patch literal 203436 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≫Tzgitbd$Ag{GQXsTykD-Gkiapa^E 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 T5%MyN0SG)@{an^LB{Ts5#SG1F literal 0 HcmV?d00001 diff --git a/pom.xml b/pom.xml index c4a9126..4eb5036 100644 --- a/pom.xml +++ b/pom.xml @@ -20,6 +20,9 @@ 4.0.2 29.0-jre + + 5.5.2 + 1.5.2 rpc-framework-simple @@ -30,12 +33,20 @@ rpc-framework-common + org.projectlombok lombok 1.18.8 provided + + + com.google.guava + guava + ${guava.version} + + org.slf4j slf4j-api @@ -46,6 +57,69 @@ slf4j-simple ${slf4j.version} + + + org.junit.jupiter + junit-jupiter-engine + ${junit.jupiter.version} + test + + + org.junit.platform + junit-platform-runner + ${junit.platform.version} + test + + + + org.apache.curator + curator-framework + 4.0.1 + + + org.apache.zookeeper + zookeeper + + + com.google.guava + guava + + + slf4j-api + org.slf4j + + + + + org.apache.curator + curator-recipes + 4.0.1 + + + org.apache.zookeeper + zookeeper + + + com.google.guava + guava + + + slf4j-api + org.slf4j + + + + + org.apache.zookeeper + zookeeper + 3.4.14 + + + netty + io.netty + + + diff --git a/rpc-framework-common/pom.xml b/rpc-framework-common/pom.xml index f9e3e3d..1984663 100644 --- a/rpc-framework-common/pom.xml +++ b/rpc-framework-common/pom.xml @@ -10,13 +10,4 @@ 4.0.0 rpc-framework-common - - - - com.google.guava - guava - ${guava.version} - - - diff --git a/rpc-framework-common/src/main/java/github/javaguide/utils/zk/CuratorHelper.java b/rpc-framework-common/src/main/java/github/javaguide/utils/zk/CuratorHelper.java new file mode 100644 index 0000000..992f88e --- /dev/null +++ b/rpc-framework-common/src/main/java/github/javaguide/utils/zk/CuratorHelper.java @@ -0,0 +1,97 @@ +package github.javaguide.utils.zk; + +import org.apache.curator.RetryPolicy; +import org.apache.curator.framework.CuratorFramework; +import org.apache.curator.framework.CuratorFrameworkFactory; +import org.apache.curator.framework.recipes.cache.PathChildrenCache; +import org.apache.curator.framework.recipes.cache.PathChildrenCacheListener; +import org.apache.curator.retry.RetryNTimes; +import org.apache.zookeeper.CreateMode; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +/** + * @author shuang.kou + * @createTime 2020年05月31日 11:38:00 + */ +public class CuratorHelper { + private static final Logger logger = LoggerFactory.getLogger(CuratorHelper.class); + private static final int SLEEP_MS_BETWEEN_RETRIES = 100; + private static final int MAX_RETRIES = 3; + private static final String CONNECT_STRING = "127.0.0.1:2181"; + private static final int CONNECTION_TIMEOUT_MS = 10 * 1000; + private static final int SESSION_TIMEOUT_MS = 60 * 1000; + public static final String ZK_REGISTER_ROOT_PATH = "/my-rpc"; + private static final Map> serviceAddressMap = new ConcurrentHashMap<>(); + + public static CuratorFramework getZkClient() { + // 重试策略,重试3次,并在两次重试之间等待100毫秒,以防出现连接问题。 + RetryPolicy retryPolicy = new RetryNTimes( + MAX_RETRIES, SLEEP_MS_BETWEEN_RETRIES); + return CuratorFrameworkFactory.builder() + //要连接的服务器(可以是服务器列表) + .connectString(CONNECT_STRING) + .retryPolicy(retryPolicy) + //连接超时时间,10秒 + .connectionTimeoutMs(CONNECTION_TIMEOUT_MS) + //会话超时时间,60秒 + .sessionTimeoutMs(SESSION_TIMEOUT_MS) + .build(); + } + + /** + * 创建临时节点 + * 临时节点驻存在ZooKeeper中,当连接和session断掉时被删除。 + */ + public static void createEphemeralNode(final CuratorFramework zkClient, final String path) { + try { + zkClient.create().creatingParentsIfNeeded().withMode(CreateMode.EPHEMERAL).forPath(path); + } catch (Exception e) { + logger.error("occur exception:", e); + } + } + + /** + * 获取某个字节下的子节点 + */ + public static List getChildrenNodes(final CuratorFramework zkClient, final String serviceName) { + if (serviceAddressMap.containsKey(serviceName)) { + return serviceAddressMap.get(serviceName); + } + List result = Collections.emptyList(); + String servicePath = CuratorHelper.ZK_REGISTER_ROOT_PATH + "/" + serviceName; + try { + result = zkClient.getChildren().forPath(servicePath); + serviceAddressMap.put(serviceName, result); + registerWatcher(zkClient, serviceName); + } catch (Exception e) { + logger.error("occur exception:", e); + } + return result; + } + + /** + * 注册监听 + * + * @param serviceName 服务名称 + */ + private static void registerWatcher(CuratorFramework zkClient, String serviceName) { + String servicePath = CuratorHelper.ZK_REGISTER_ROOT_PATH + "/" + serviceName; + PathChildrenCache pathChildrenCache = new PathChildrenCache(zkClient, servicePath, true); + PathChildrenCacheListener pathChildrenCacheListener = (curatorFramework, pathChildrenCacheEvent) -> { + List serviceAddresses = curatorFramework.getChildren().forPath(servicePath); + serviceAddressMap.put(serviceName, serviceAddresses); + }; + pathChildrenCache.getListenable().addListener(pathChildrenCacheListener); + try { + pathChildrenCache.start(); + } catch (Exception e) { + logger.error("occur exception:", e); + } + } +} diff --git a/rpc-framework-simple/src/main/java/github/javaguide/transport/RpcRequestHandler.java b/rpc-framework-simple/src/main/java/github/javaguide/handler/RpcRequestHandler.java similarity index 82% rename from rpc-framework-simple/src/main/java/github/javaguide/transport/RpcRequestHandler.java rename to rpc-framework-simple/src/main/java/github/javaguide/handler/RpcRequestHandler.java index 03d9d03..40c010d 100644 --- a/rpc-framework-simple/src/main/java/github/javaguide/transport/RpcRequestHandler.java +++ b/rpc-framework-simple/src/main/java/github/javaguide/handler/RpcRequestHandler.java @@ -1,10 +1,10 @@ -package github.javaguide.transport; +package github.javaguide.handler; import github.javaguide.dto.RpcRequest; import github.javaguide.dto.RpcResponse; import github.javaguide.enumeration.RpcResponseCode; -import github.javaguide.registry.DefaultServiceRegistry; -import github.javaguide.registry.ServiceRegistry; +import github.javaguide.provider.ServiceProvider; +import github.javaguide.provider.ServiceProviderImpl; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -17,10 +17,10 @@ import java.lang.reflect.Method; */ public class RpcRequestHandler { private static final Logger logger = LoggerFactory.getLogger(RpcRequestHandler.class); - private static final ServiceRegistry serviceRegistry; + private static final ServiceProvider SERVICE_PROVIDER; static { - serviceRegistry = new DefaultServiceRegistry(); + SERVICE_PROVIDER = new ServiceProviderImpl(); } /** @@ -29,7 +29,7 @@ public class RpcRequestHandler { public Object handle(RpcRequest rpcRequest) { Object result = null; //通过注册中心获取到目标类(客户端需要调用类) - Object service = serviceRegistry.getService(rpcRequest.getInterfaceName()); + Object service = SERVICE_PROVIDER.getServiceProvider(rpcRequest.getInterfaceName()); try { result = invokeTargetMethod(rpcRequest, service); logger.info("service:{} successful invoke method:{}", rpcRequest.getInterfaceName(), rpcRequest.getMethodName()); diff --git a/rpc-framework-simple/src/main/java/github/javaguide/provider/ServiceProvider.java b/rpc-framework-simple/src/main/java/github/javaguide/provider/ServiceProvider.java new file mode 100644 index 0000000..ef918ee --- /dev/null +++ b/rpc-framework-simple/src/main/java/github/javaguide/provider/ServiceProvider.java @@ -0,0 +1,19 @@ +package github.javaguide.provider; + +/** + * 保存和提供服务实例对象。服务端使用。 + * + * @author shuang.kou + * @createTime 2020年05月31日 16:52:00 + */ +public interface ServiceProvider { + /** + * 保存服务提供者 + */ + void addServiceProvider(T service); + + /** + * 获取服务提供者 + */ + Object getServiceProvider(String serviceName); +} diff --git a/rpc-framework-simple/src/main/java/github/javaguide/registry/DefaultServiceRegistry.java b/rpc-framework-simple/src/main/java/github/javaguide/provider/ServiceProviderImpl.java similarity index 76% rename from rpc-framework-simple/src/main/java/github/javaguide/registry/DefaultServiceRegistry.java rename to rpc-framework-simple/src/main/java/github/javaguide/provider/ServiceProviderImpl.java index 788d0f5..1102e6e 100644 --- a/rpc-framework-simple/src/main/java/github/javaguide/registry/DefaultServiceRegistry.java +++ b/rpc-framework-simple/src/main/java/github/javaguide/provider/ServiceProviderImpl.java @@ -1,4 +1,4 @@ -package github.javaguide.registry; +package github.javaguide.provider; import github.javaguide.enumeration.RpcErrorMessageEnum; import github.javaguide.exception.RpcException; @@ -10,16 +10,16 @@ import java.util.Set; import java.util.concurrent.ConcurrentHashMap; /** - * 默认的服务注册中心实现,通过 Map 保存服务信息,可以通过 zookeeper 来改进 - * * @author shuang.kou * @createTime 2020年05月13日 11:23:00 */ -public class DefaultServiceRegistry implements ServiceRegistry { - private static final Logger logger = LoggerFactory.getLogger(DefaultServiceRegistry.class); +public class ServiceProviderImpl implements ServiceProvider { + private static final Logger logger = LoggerFactory.getLogger(ServiceProviderImpl.class); + /** - * 接口名和服务的对应关系,TODO 处理一个接口被两个实现类实现的情况 + * 接口名和服务的对应关系 + * note:处理一个接口被两个实现类实现的情况如何处理? * key:service/interface name * value:service */ @@ -27,11 +27,11 @@ public class DefaultServiceRegistry implements ServiceRegistry { private static final Set registeredService = ConcurrentHashMap.newKeySet(); /** - * TODO 修改为扫描注解注册 + * note:可以修改为扫描注解注册 * 将这个对象所有实现的接口都注册进去 */ @Override - public synchronized void register(T service) { + public void addServiceProvider(T service) { String serviceName = service.getClass().getCanonicalName(); if (registeredService.contains(serviceName)) { return; @@ -48,7 +48,7 @@ public class DefaultServiceRegistry implements ServiceRegistry { } @Override - public synchronized Object getService(String serviceName) { + public Object getServiceProvider(String serviceName) { Object service = serviceMap.get(serviceName); if (null == service) { throw new RpcException(RpcErrorMessageEnum.SERVICE_CAN_NOT_BE_FOUND); diff --git a/rpc-framework-simple/src/main/java/github/javaguide/transport/RpcClientProxy.java b/rpc-framework-simple/src/main/java/github/javaguide/proxy/RpcClientProxy.java similarity index 95% rename from rpc-framework-simple/src/main/java/github/javaguide/transport/RpcClientProxy.java rename to rpc-framework-simple/src/main/java/github/javaguide/proxy/RpcClientProxy.java index f541718..a9d135c 100644 --- a/rpc-framework-simple/src/main/java/github/javaguide/transport/RpcClientProxy.java +++ b/rpc-framework-simple/src/main/java/github/javaguide/proxy/RpcClientProxy.java @@ -1,6 +1,7 @@ -package github.javaguide.transport; +package github.javaguide.proxy; import github.javaguide.dto.RpcRequest; +import github.javaguide.transport.ClientTransport; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/rpc-framework-simple/src/main/java/github/javaguide/registry/ServiceRegistry.java b/rpc-framework-simple/src/main/java/github/javaguide/registry/ServiceRegistry.java index dfae061..d97ea49 100644 --- a/rpc-framework-simple/src/main/java/github/javaguide/registry/ServiceRegistry.java +++ b/rpc-framework-simple/src/main/java/github/javaguide/registry/ServiceRegistry.java @@ -1,5 +1,7 @@ package github.javaguide.registry; +import java.net.InetSocketAddress; + /** * 服务注册中心接口 * @@ -7,7 +9,19 @@ package github.javaguide.registry; * @createTime 2020年05月13日 08:39:00 */ public interface ServiceRegistry { - void register(T service); + /** + * 注册服务 + * + * @param serviceName 服务名称 + * @param inetSocketAddress 提供服务的地址 + */ + void registerService(String serviceName, InetSocketAddress inetSocketAddress); - Object getService(String serviceName); + /** + * 查找服务 + * + * @param serviceName 服务名称 + * @return 提供服务的地址 + */ + InetSocketAddress lookupService(String serviceName); } diff --git a/rpc-framework-simple/src/main/java/github/javaguide/registry/ZkServiceRegistry.java b/rpc-framework-simple/src/main/java/github/javaguide/registry/ZkServiceRegistry.java new file mode 100644 index 0000000..09ae06f --- /dev/null +++ b/rpc-framework-simple/src/main/java/github/javaguide/registry/ZkServiceRegistry.java @@ -0,0 +1,41 @@ +package github.javaguide.registry; + +import github.javaguide.utils.zk.CuratorHelper; +import org.apache.curator.framework.CuratorFramework; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.net.InetSocketAddress; + +/** + * 基于 zookeeper 实现服务注册中心 + * + * @author shuang.kou + * @createTime 2020年05月31日 10:56:00 + */ +public class ZkServiceRegistry implements ServiceRegistry { + private static final Logger logger = LoggerFactory.getLogger(CuratorHelper.class); + private final CuratorFramework zkClient; + + public ZkServiceRegistry() { + zkClient = CuratorHelper.getZkClient(); + zkClient.start(); + } + + @Override + public void registerService(String serviceName, InetSocketAddress inetSocketAddress) { + //根节点下注册子节点:服务 + StringBuilder servicePath = new StringBuilder(CuratorHelper.ZK_REGISTER_ROOT_PATH).append("/").append(serviceName); + //服务子节点下注册子节点:服务地址 + servicePath.append(inetSocketAddress.toString()); + CuratorHelper.createEphemeralNode(zkClient, servicePath.toString()); + logger.info("节点创建成功,节点为:{}", servicePath); + } + + @Override + public InetSocketAddress lookupService(String serviceName) { + String serviceAddress = CuratorHelper.getChildrenNodes(zkClient, serviceName).get(0); + logger.info("成功找到服务地址:{}", serviceAddress); + return new InetSocketAddress(serviceAddress.split(":")[0], Integer.parseInt(serviceAddress.split(":")[1])); + } +} diff --git a/rpc-framework-simple/src/main/java/github/javaguide/transport/ClientTransport.java b/rpc-framework-simple/src/main/java/github/javaguide/transport/ClientTransport.java index 0c65bb8..8d7f960 100644 --- a/rpc-framework-simple/src/main/java/github/javaguide/transport/ClientTransport.java +++ b/rpc-framework-simple/src/main/java/github/javaguide/transport/ClientTransport.java @@ -3,6 +3,8 @@ package github.javaguide.transport; import github.javaguide.dto.RpcRequest; /** + * 传输 RpcRequest。 + * * @author shuang.kou * @createTime 2020年05月29日 13:26:00 */ diff --git a/rpc-framework-simple/src/main/java/github/javaguide/transport/netty/client/NettyClient.java b/rpc-framework-simple/src/main/java/github/javaguide/transport/netty/client/NettyClient.java index 280ec90..4712f42 100644 --- a/rpc-framework-simple/src/main/java/github/javaguide/transport/netty/client/NettyClient.java +++ b/rpc-framework-simple/src/main/java/github/javaguide/transport/netty/client/NettyClient.java @@ -29,6 +29,9 @@ public class NettyClient { private static final Bootstrap b; private static final EventLoopGroup eventLoopGroup; + private NettyClient() { + } + // 初始化相关资源比如 EventLoopGroup、Bootstrap static { eventLoopGroup = new NioEventLoopGroup(); @@ -55,9 +58,6 @@ public class NettyClient { }); } - private NettyClient() { - } - public static void close() { logger.info("call close method"); eventLoopGroup.shutdownGracefully(); diff --git a/rpc-framework-simple/src/main/java/github/javaguide/transport/netty/client/NettyClientClientTransport.java b/rpc-framework-simple/src/main/java/github/javaguide/transport/netty/client/NettyClientClientTransport.java index b033cb5..89e1c30 100644 --- a/rpc-framework-simple/src/main/java/github/javaguide/transport/netty/client/NettyClientClientTransport.java +++ b/rpc-framework-simple/src/main/java/github/javaguide/transport/netty/client/NettyClientClientTransport.java @@ -2,6 +2,8 @@ package github.javaguide.transport.netty.client; import github.javaguide.dto.RpcRequest; import github.javaguide.dto.RpcResponse; +import github.javaguide.registry.ServiceRegistry; +import github.javaguide.registry.ZkServiceRegistry; import github.javaguide.transport.ClientTransport; import github.javaguide.utils.checker.RpcMessageChecker; import io.netty.channel.Channel; @@ -14,21 +16,24 @@ import java.net.InetSocketAddress; import java.util.concurrent.atomic.AtomicReference; /** + * 基于 Netty 传输 RpcRequest + * * @author shuang.kou * @createTime 2020年05月29日 11:34:00 */ public class NettyClientClientTransport implements ClientTransport { private static final Logger logger = LoggerFactory.getLogger(NettyClientClientTransport.class); - private InetSocketAddress inetSocketAddress; + private ServiceRegistry serviceRegistry; - public NettyClientClientTransport(InetSocketAddress inetSocketAddress) { - this.inetSocketAddress = inetSocketAddress; + public NettyClientClientTransport() { + this.serviceRegistry = new ZkServiceRegistry(); } @Override public Object sendRpcRequest(RpcRequest rpcRequest) { AtomicReference result = new AtomicReference<>(null); try { + InetSocketAddress inetSocketAddress = serviceRegistry.lookupService(rpcRequest.getInterfaceName()); Channel channel = ChannelProvider.get(inetSocketAddress); if (channel.isActive()) { channel.writeAndFlush(rpcRequest).addListener((ChannelFutureListener) future -> { diff --git a/rpc-framework-simple/src/main/java/github/javaguide/transport/netty/server/NettyServer.java b/rpc-framework-simple/src/main/java/github/javaguide/transport/netty/server/NettyServer.java index 9c4d4ef..ef21748 100644 --- a/rpc-framework-simple/src/main/java/github/javaguide/transport/netty/server/NettyServer.java +++ b/rpc-framework-simple/src/main/java/github/javaguide/transport/netty/server/NettyServer.java @@ -2,6 +2,10 @@ package github.javaguide.transport.netty.server; import github.javaguide.dto.RpcRequest; import github.javaguide.dto.RpcResponse; +import github.javaguide.provider.ServiceProvider; +import github.javaguide.provider.ServiceProviderImpl; +import github.javaguide.registry.ServiceRegistry; +import github.javaguide.registry.ZkServiceRegistry; import github.javaguide.serialize.kyro.KryoSerializer; import github.javaguide.transport.netty.codec.NettyKryoDecoder; import github.javaguide.transport.netty.codec.NettyKryoEncoder; @@ -18,6 +22,8 @@ import io.netty.handler.logging.LoggingHandler; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.net.InetSocketAddress; + /** * 服务端。接收客户端消息,并且根据客户端的消息调用相应的方法,然后返回结果给客户端。 * @@ -26,15 +32,27 @@ import org.slf4j.LoggerFactory; */ public class NettyServer { private static final Logger logger = LoggerFactory.getLogger(NettyServer.class); + private final String host; private final int port; private final KryoSerializer kryoSerializer; + private final ServiceRegistry serviceRegistry; + private final ServiceProvider serviceProvider; - public NettyServer(int port) { + public NettyServer(String host, int port) { + this.host = host; this.port = port; kryoSerializer = new KryoSerializer(); + serviceRegistry = new ZkServiceRegistry(); + serviceProvider = new ServiceProviderImpl(); + } + + public void publishService(Object service, Class serviceClass) { + serviceProvider.addServiceProvider(service); + serviceRegistry.registerService(serviceClass.getCanonicalName(), new InetSocketAddress(host, port)); + start(); } - public void run() { + private void start() { EventLoopGroup bossGroup = new NioEventLoopGroup(); EventLoopGroup workerGroup = new NioEventLoopGroup(); try { @@ -58,7 +76,7 @@ public class NettyServer { .option(ChannelOption.SO_BACKLOG, 128); // 绑定端口,同步等待绑定成功 - ChannelFuture f = b.bind(port).sync(); + ChannelFuture f = b.bind(host, port).sync(); // 等待服务端监听端口关闭 f.channel().closeFuture().sync(); } catch (InterruptedException e) { diff --git a/rpc-framework-simple/src/main/java/github/javaguide/transport/netty/server/NettyServerHandler.java b/rpc-framework-simple/src/main/java/github/javaguide/transport/netty/server/NettyServerHandler.java index 0c56e83..85581dc 100644 --- a/rpc-framework-simple/src/main/java/github/javaguide/transport/netty/server/NettyServerHandler.java +++ b/rpc-framework-simple/src/main/java/github/javaguide/transport/netty/server/NettyServerHandler.java @@ -2,7 +2,7 @@ package github.javaguide.transport.netty.server; import github.javaguide.dto.RpcRequest; import github.javaguide.dto.RpcResponse; -import github.javaguide.transport.RpcRequestHandler; +import github.javaguide.handler.RpcRequestHandler; import github.javaguide.utils.concurrent.ThreadPoolFactory; import io.netty.channel.ChannelFuture; import io.netty.channel.ChannelFutureListener; diff --git a/rpc-framework-simple/src/main/java/github/javaguide/transport/socket/SocketRpcClient.java b/rpc-framework-simple/src/main/java/github/javaguide/transport/socket/SocketRpcClient.java index 0b249a6..7bf050d 100644 --- a/rpc-framework-simple/src/main/java/github/javaguide/transport/socket/SocketRpcClient.java +++ b/rpc-framework-simple/src/main/java/github/javaguide/transport/socket/SocketRpcClient.java @@ -3,6 +3,8 @@ package github.javaguide.transport.socket; import github.javaguide.dto.RpcRequest; import github.javaguide.dto.RpcResponse; import github.javaguide.exception.RpcException; +import github.javaguide.registry.ServiceRegistry; +import github.javaguide.registry.ZkServiceRegistry; import github.javaguide.transport.ClientTransport; import github.javaguide.utils.checker.RpcMessageChecker; import lombok.AllArgsConstructor; @@ -12,21 +14,29 @@ import org.slf4j.LoggerFactory; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; +import java.net.InetSocketAddress; import java.net.Socket; /** + * 基于 Socket 传输 RpcRequest + * * @author shuang.kou * @createTime 2020年05月10日 18:40:00 */ @AllArgsConstructor public class SocketRpcClient implements ClientTransport { private static final Logger logger = LoggerFactory.getLogger(SocketRpcClient.class); - private String host; - private int port; + private final ServiceRegistry serviceRegistry; + + public SocketRpcClient() { + this.serviceRegistry = new ZkServiceRegistry(); + } @Override public Object sendRpcRequest(RpcRequest rpcRequest) { - try (Socket socket = new Socket(host, port)) { + InetSocketAddress inetSocketAddress = serviceRegistry.lookupService(rpcRequest.getInterfaceName()); + try (Socket socket = new Socket()) { + socket.connect(inetSocketAddress); ObjectOutputStream objectOutputStream = new ObjectOutputStream(socket.getOutputStream()); // 通过输出流发送数据到服务端 objectOutputStream.writeObject(rpcRequest); diff --git a/rpc-framework-simple/src/main/java/github/javaguide/transport/socket/SocketRpcRequestHandlerRunnable.java b/rpc-framework-simple/src/main/java/github/javaguide/transport/socket/SocketRpcRequestHandlerRunnable.java index cba7d98..a569863 100644 --- a/rpc-framework-simple/src/main/java/github/javaguide/transport/socket/SocketRpcRequestHandlerRunnable.java +++ b/rpc-framework-simple/src/main/java/github/javaguide/transport/socket/SocketRpcRequestHandlerRunnable.java @@ -2,7 +2,7 @@ package github.javaguide.transport.socket; import github.javaguide.dto.RpcRequest; import github.javaguide.dto.RpcResponse; -import github.javaguide.transport.RpcRequestHandler; +import github.javaguide.handler.RpcRequestHandler; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/rpc-framework-simple/src/main/java/github/javaguide/transport/socket/SocketRpcServer.java b/rpc-framework-simple/src/main/java/github/javaguide/transport/socket/SocketRpcServer.java index d55434b..4c13e9c 100644 --- a/rpc-framework-simple/src/main/java/github/javaguide/transport/socket/SocketRpcServer.java +++ b/rpc-framework-simple/src/main/java/github/javaguide/transport/socket/SocketRpcServer.java @@ -1,10 +1,15 @@ package github.javaguide.transport.socket; +import github.javaguide.provider.ServiceProvider; +import github.javaguide.provider.ServiceProviderImpl; +import github.javaguide.registry.ServiceRegistry; +import github.javaguide.registry.ZkServiceRegistry; import github.javaguide.utils.concurrent.ThreadPoolFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.IOException; +import java.net.InetSocketAddress; import java.net.ServerSocket; import java.net.Socket; import java.util.concurrent.ExecutorService; @@ -17,14 +22,29 @@ public class SocketRpcServer { private final ExecutorService threadPool; private static final Logger logger = LoggerFactory.getLogger(SocketRpcServer.class); + private final String host; + private final int port; + private final ServiceRegistry serviceRegistry; + private final ServiceProvider serviceProvider; - public SocketRpcServer() { + + public SocketRpcServer(String host, int port) { + this.host = host; + this.port = port; threadPool = ThreadPoolFactory.createDefaultThreadPool("socket-server-rpc-pool"); + serviceRegistry = new ZkServiceRegistry(); + serviceProvider = new ServiceProviderImpl(); } - public void start(int port) { + public void publishService(Object service, Class serviceClass) { + serviceProvider.addServiceProvider(service); + serviceRegistry.registerService(serviceClass.getCanonicalName(), new InetSocketAddress(host, port)); + start(); + } - try (ServerSocket server = new ServerSocket(port)) { + private void start() { + try (ServerSocket server = new ServerSocket()) { + server.bind(new InetSocketAddress(host, port)); logger.info("server starts..."); Socket socket; while ((socket = server.accept()) != null) { diff --git a/rpc-framework-simple/src/test/java/github/javaguide/registry/ZkServiceRegistryTest.java b/rpc-framework-simple/src/test/java/github/javaguide/registry/ZkServiceRegistryTest.java new file mode 100644 index 0000000..c7af864 --- /dev/null +++ b/rpc-framework-simple/src/test/java/github/javaguide/registry/ZkServiceRegistryTest.java @@ -0,0 +1,24 @@ +package github.javaguide.registry; + +import org.junit.jupiter.api.Test; + +import java.net.InetSocketAddress; + +import static org.junit.jupiter.api.Assertions.assertEquals; + + +/** + * @author shuang.kou + * @createTime 2020年05月31日 16:25:00 + */ +class ZkServiceRegistryTest { + + @Test + void should_register_service_successful_and_lookup_service_by_service_name() { + ZkServiceRegistry zkServiceRegistry = new ZkServiceRegistry(); + InetSocketAddress givenInetSocketAddress = new InetSocketAddress("127.0.0.1", 9333); + zkServiceRegistry.registerService("github.javaguide.registry.ZkServiceRegistry", givenInetSocketAddress); + InetSocketAddress acquiredInetSocketAddress = zkServiceRegistry.lookupService("github.javaguide.registry.ZkServiceRegistry"); + assertEquals(givenInetSocketAddress.toString(), acquiredInetSocketAddress.toString()); + } +} -- GitLab