Skip to content

Commit

Permalink
Refactor the project
Browse files Browse the repository at this point in the history
  • Loading branch information
luxiaoxun committed Jul 23, 2020
1 parent 9839602 commit 824db75
Show file tree
Hide file tree
Showing 46 changed files with 217 additions and 159 deletions.
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@ An RPC framework based on Netty, ZooKeeper and Spring
中文详情:[Chinese Details](http://www.cnblogs.com/luxiaoxun/p/5272384.html)
### Features:
* Simple code and framework
* Non-blocking asynchronous call and Synchronous call support
* Asynchronous/synchronous call support
* Long lived persistent connection
* High availability, load balance and failover
* Service Discovery support by ZooKeeper
* Service registry/discovery support by ZooKeeper
### Design:
![design](https://images2015.cnblogs.com/blog/434101/201603/434101-20160316102651631-1816064105.png)
### How to use
### How to use (netty-rpc-test)
1. Define an interface:

public interface HelloService {
Expand Down
21 changes: 21 additions & 0 deletions netty-rpc-client/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>NettyRpc</artifactId>
<groupId>com.netty.rpc</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>

<artifactId>netty-rpc-client</artifactId>

<dependencies>
<dependency>
<groupId>com.netty.rpc</groupId>
<artifactId>netty-rpc-common</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
package com.netty.rpc.client;

import com.netty.rpc.client.proxy.ObjectProxy;
import com.netty.rpc.registry.ServiceDiscovery;
import com.netty.rpc.client.proxy.IAsyncObjectProxy;
import com.netty.rpc.client.proxy.ObjectProxy;
import com.netty.rpc.client.connect.ConnectManage;
import com.netty.rpc.client.discovery.ServiceDiscovery;

import java.lang.reflect.Proxy;
import java.util.concurrent.ArrayBlockingQueue;
Expand All @@ -15,7 +16,6 @@
* @author luxiaoxun
*/
public class RpcClient {

private String serverAddress;
private ServiceDiscovery serviceDiscovery;
private static ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(16, 16,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package com.netty.rpc.client;
package com.netty.rpc.client.connect;

import com.netty.rpc.client.handler.RpcClientHandler;
import com.netty.rpc.client.handler.RpcClientInitializer;
import io.netty.bootstrap.Bootstrap;
import io.netty.channel.ChannelFuture;
import io.netty.channel.ChannelFutureListener;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,20 @@
package com.netty.rpc.registry;
package com.netty.rpc.client.discovery;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ThreadLocalRandom;

import com.netty.rpc.client.ConnectManage;
import com.netty.rpc.client.connect.ConnectManage;
import com.netty.rpc.config.Constant;
import org.apache.zookeeper.KeeperException;
import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.ZooKeeper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ThreadLocalRandom;

/**
* 服务发现
*
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.netty.rpc.client;
package com.netty.rpc.client.handler;

/**
* Created by luxiaoxun on 2016-03-17.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.netty.rpc.client;
package com.netty.rpc.client.handler;

import com.netty.rpc.client.RpcClient;
import com.netty.rpc.protocol.RpcRequest;
import com.netty.rpc.protocol.RpcResponse;
import org.slf4j.Logger;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.netty.rpc.client;
package com.netty.rpc.client.handler;

import com.netty.rpc.protocol.RpcRequest;
import com.netty.rpc.protocol.RpcResponse;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.netty.rpc.client;
package com.netty.rpc.client.handler;

import com.netty.rpc.protocol.RpcDecoder;
import com.netty.rpc.protocol.RpcEncoder;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package com.netty.rpc.client.proxy;

import com.netty.rpc.client.RPCFuture;
import com.netty.rpc.client.handler.RPCFuture;

/**
* Created by luxiaoxun on 2016/3/16.
*/
public interface IAsyncObjectProxy {
public RPCFuture call(String funcName, Object... args);
RPCFuture call(String funcName, Object... args);
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package com.netty.rpc.client.proxy;

import com.netty.rpc.client.ConnectManage;
import com.netty.rpc.client.RPCFuture;
import com.netty.rpc.client.RpcClientHandler;
import com.netty.rpc.client.connect.ConnectManage;
import com.netty.rpc.client.handler.RPCFuture;
import com.netty.rpc.client.handler.RpcClientHandler;
import com.netty.rpc.protocol.RpcRequest;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Expand All @@ -15,7 +15,7 @@
* Created by luxiaoxun on 2016-03-16.
*/
public class ObjectProxy<T> implements InvocationHandler, IAsyncObjectProxy {
private static final Logger LOGGER = LoggerFactory.getLogger(ObjectProxy.class);
private static final Logger logger = LoggerFactory.getLogger(ObjectProxy.class);
private Class<T> clazz;

public ObjectProxy(Class<T> clazz) {
Expand Down Expand Up @@ -46,13 +46,13 @@ public Object invoke(Object proxy, Method method, Object[] args) throws Throwabl
request.setParameterTypes(method.getParameterTypes());
request.setParameters(args);
// Debug
LOGGER.debug(method.getDeclaringClass().getName());
LOGGER.debug(method.getName());
logger.debug(method.getDeclaringClass().getName());
logger.debug(method.getName());
for (int i = 0; i < method.getParameterTypes().length; ++i) {
LOGGER.debug(method.getParameterTypes()[i].getName());
logger.debug(method.getParameterTypes()[i].getName());
}
for (int i = 0; i < args.length; ++i) {
LOGGER.debug(args[i].toString());
logger.debug(args[i].toString());
}

RpcClientHandler handler = ConnectManage.getInstance().chooseHandler();
Expand Down Expand Up @@ -91,13 +91,13 @@ private RpcRequest createRequest(String className, String methodName, Object[] a
// }
// }

LOGGER.debug(className);
LOGGER.debug(methodName);
logger.debug(className);
logger.debug(methodName);
for (int i = 0; i < parameterTypes.length; ++i) {
LOGGER.debug(parameterTypes[i].getName());
logger.debug(parameterTypes[i].getName());
}
for (int i = 0; i < args.length; ++i) {
LOGGER.debug(args[i].toString());
logger.debug(args[i].toString());
}

return request;
Expand Down
15 changes: 15 additions & 0 deletions netty-rpc-common/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>NettyRpc</artifactId>
<groupId>com.netty.rpc</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>

<artifactId>netty-rpc-common</artifactId>


</project>
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.netty.rpc.registry;
package com.netty.rpc.config;

/**
* ZooKeeper constant
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import io.netty.buffer.ByteBuf;
import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.codec.ByteToMessageDecoder;

import java.util.List;

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,12 @@
import com.dyuproject.protostuff.ProtostuffIOUtil;
import com.dyuproject.protostuff.Schema;
import com.dyuproject.protostuff.runtime.RuntimeSchema;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import org.objenesis.Objenesis;
import org.objenesis.ObjenesisStd;

import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

/**
* Serialization Util(Based on Protostuff)
* @author huangyong
Expand Down
22 changes: 22 additions & 0 deletions netty-rpc-server/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>NettyRpc</artifactId>
<groupId>com.netty.rpc</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>

<artifactId>netty-rpc-server</artifactId>

<dependencies>
<dependency>
<groupId>com.netty.rpc</groupId>
<artifactId>netty-rpc-common</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>

</project>
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,12 @@
import io.netty.channel.ChannelFutureListener;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.SimpleChannelInboundHandler;

import java.util.Map;

import net.sf.cglib.reflect.FastClass;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.Map;

/**
* RPC Handler(RPC request processor)
*
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
package com.netty.rpc.server;

import com.netty.rpc.protocol.RpcDecoder;
import com.netty.rpc.protocol.RpcEncoder;
import com.netty.rpc.protocol.RpcRequest;
import com.netty.rpc.protocol.RpcResponse;
import com.netty.rpc.protocol.RpcEncoder;
import com.netty.rpc.registry.ServiceRegistry;
import io.netty.bootstrap.ServerBootstrap;
import io.netty.channel.ChannelFuture;
import io.netty.channel.ChannelInitializer;
Expand All @@ -13,11 +12,6 @@
import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.channel.socket.SocketChannel;
import io.netty.channel.socket.nio.NioServerSocketChannel;

import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.*;

import io.netty.handler.codec.LengthFieldBasedFrameDecoder;
import org.apache.commons.collections4.MapUtils;
import org.slf4j.Logger;
Expand All @@ -27,6 +21,12 @@
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;

import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;

/**
* RPC Server
*
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
package com.netty.rpc.server;

import org.springframework.stereotype.Component;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.springframework.stereotype.Component;

/**
* RPC annotation for RPC service
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,14 @@
package com.netty.rpc.registry;
package com.netty.rpc.server;

import java.io.IOException;
import java.util.concurrent.CountDownLatch;
import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.KeeperException;
import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.ZooDefs;
import org.apache.zookeeper.ZooKeeper;
import com.netty.rpc.config.Constant;
import org.apache.zookeeper.*;
import org.apache.zookeeper.data.Stat;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.IOException;
import java.util.concurrent.CountDownLatch;

/**
* 服务注册
*
Expand Down
35 changes: 35 additions & 0 deletions netty-rpc-test/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>NettyRpc</artifactId>
<groupId>com.netty.rpc</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>

<artifactId>netty-rpc-test</artifactId>

<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>com.netty.rpc</groupId>
<artifactId>netty-rpc-server</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>

<dependency>
<groupId>com.netty.rpc</groupId>
<artifactId>netty-rpc-client</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>

</project>
Loading

0 comments on commit 824db75

Please sign in to comment.